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创建类的实例时指定要执行的代码(主要是初始化的东西)。
如果构造函数中有代码,则该代码将在行时执行
HelloWorldV3 hello = new HelloWorldV3( );
执行。
用一个问题来回答你的问题,如果没有那行,那么你怎么会调用printTwoLines()
方法?