我用 java 编写了这个简单的类,只是为了测试它的一些功能。
public class class1 {
public static Integer value=0;
public class1() {
da();
}
public int da() {
class1.value=class1.value+1;
return 5;
}
public static void main(String[] args) {
class1 h = new class1();
class1 h2 = new class1();
System.out.println(class1.value);
}
}
输出是:
2
但在这段代码中:
public class class1 {
public static Integer value=0;
public void class1() {
da();
}
public int da() {
class1.value=class1.value+1;
return 5;
}
public static void main(String[] args) {
class1 h = new class1();
class1 h2 = new class1();
System.out.println(class1.value);
}
}
这段代码的输出是:
那为什么不呢,当我使用时void
在构造函数方法声明中,类的静态字段不再改变?
在Java中,构造函数is not一个方法。它只有类的名称和特定的可见性。如果它声明返回一些东西,那么它不是一个构造函数,即使它声明返回一个void
。请注意这里的区别:
public class SomeClass {
public SomeClass() {
//constructor
}
public void SomeClass() {
//a method, NOT a constructor
}
}
另外,如果一个类没有定义构造函数,那么编译器会自动为您添加一个默认构造函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)