HellodWorld程序段解读

疑问一:main函数只包含一个System.out.println(),为何上面三个也能显示
疑问二:我在电脑上只显示三个,不知为什么
public class Hello {
String s = "Hello";

public Hello(String s) {
   System.out.println("s = " + s);
   System.out.println("1 -> this.s = " + this.s);
   this.s = s;//把参数值赋给成员变量,成员变量的值改变
   System.out.println("2 -> this.s = " + this.s);
}

public static void main(String[] args) {
   Hello x = new Hello("HelloWorld!");
   System.out.println("s=" + x.s);//验证成员变量值的改变
}

}

2个回答

Hello x = new Hello("HelloWorld!");
这个对象声明的时候调用了构造函数,也就是
public Hello(String s) {
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;//把参数值赋给成员变量,成员变量的值改变
System.out.println("2 -> this.s = " + this.s);
}
所以会有四个println

sinat_26191921
sinat_26191921 你好,我在电脑上实际只显示了后面三个又是什么原因呢,运行环境myeclipse8.5
5 年多之前 回复

第一个问题很好解释,就是因为你实例化的时候自动调用了构造方法。
第二个问题你可以尝试多加几个输出语句,是不是都只是显示三个,然后或许你就可以发现问题所在了。

sinat_26191921
sinat_26191921 好,谢谢,搞懂了
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐