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