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

时间:2014-11-15 17:04:13

标签: java constructor

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();"如果构造函数中确实存在某些内容,会发生什么。

4 个答案:

答案 0 :(得分:1)

在:

HelloWorldV3 hello=new HelloWorldV3();

行生成一个名为hello的变量。 Hello是一个不同于你可能习惯的变量类型,并且不存储数字,整数或类似的东西,而是一个对象(实际上是对象的位置,但不要担心现在)。你也可以把它写成:

HelloWorldV3 hello;
hello=new HelloWorldV3();

就像你写的那样:

int i;
i=5;

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

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

时,会调用构造函数中的任何内容
new HelloWorldV3();

已执行。所以你可以在构造函数中放入一些代码:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

构造函数将初始化“HelloWorldV3”类型的对象“hello”。 如果构造函数中有代码,则在方法的第一行代码中调用“new HelloWorldV3()”时将执行该代码。所以它将在方法“printTwoLines”之前执行。 我希望我很清楚:) 感谢。

答案 3 :(得分:0)

你需要一行

HelloWorldV3 hello = new HelloWorldV3( ); 

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

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

如果构造函数中有代码,那么代码将在行

时执行
HelloWorldV3 hello = new HelloWorldV3( ); 

执行。

要回答一个问题的问题,如果没有该行,那么您将如何调用printTwoLines()方法?