了解构造函数(非常简单的代码)


public class HelloWorldV3 
{ 
 //default constructor 
 HelloWorldV3() 
 { 
 } 
 //print two lines of text 
 public void printTwoLines( ) 
 { 
   System.out.println("Hello, Virtual World!"); 
   System.out.println("It is a great day for programming."); 
 } 
 //main method 
 public static void main(String [] args) 
 { 
   HelloWorldV3 hello = new HelloWorldV3( ); 
   hello.printTwoLines(); 
 } 

嗨,我开始学习构造函数,但我在理解一些代码时遇到了困难。在上面的程序中,我知道创建了一个构造函数,但它是空的。printTwoLines() 函数打印这两行,main 方法使用构造函数调用函数。我有关于为什么需要"HelloWorldV3 hello = new HelloWorldV3();"行的问题,以及如果构造函数中确实有东西会发生什么。

The:

HelloWorldV3 hello=new HelloWorldV3();

line 创建一个名为 hello 的变量。Hello是一种与您可能习惯的不同类型的变量,它不存储数字,整数或类似的东西,而是一个对象(实际上是对象的位置,但现在不要担心)。您也可以将其写为:

HelloWorldV3 hello;
hello=new HelloWorldV3();

就像你会写的那样:

int i;
i=5;

然后,您可以访问 hello 变量或 i 变量。

至于你问题的第二部分,当代码:

new HelloWorldV3();

被执行。所以你可以像这样在构造器中放置一些代码:

public HelloWorldV3() {
    System.out.println("In the constuctor");
}

只是你用 new 运算符为 HelloWorldV3 对象分配了空间。

在构造函数中定义状态总是好的。我的意思是,如果你有 int 字段,你可以初始化它以说出创建对象时可能合适的默认值(比如值 10)

构造函数将启动类型为"HelloWorldV3"的对象"hello"。如果构造函数中有代码,则在方法的第一行代码中调用"new HelloWorldV3( )"时将执行该代码。因此,它将在方法"printTwoLines"之前执行。我希望我清楚:)谢谢。

你需要这条线

HelloWorldV3 hello = new HelloWorldV3( ); 

因为这是创建类HelloWorldV3的实例(对象)的原因,允许您调用其方法并访问其字段(如果有)。

Java在

幕后做一些事情来实例化一个对象,构造函数的概念允许你在Java创建类的实例时指定要执行的代码(主要是初始化的东西)。

如果构造函数中有代码,则该代码将在行时执行

HelloWorldV3 hello = new HelloWorldV3( ); 

执行。

用一个问题来回答你的问题,如果没有那行,那么你怎么会调用printTwoLines()方法?