java“ void”和“ non void”构造函数
我用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);
}
}
此代码的输出是:
0
那么,为什么void
在构造函数方法声明中使用时,类的静态字段不再更改?
回答:
在Java中,构造函数不是方法。它仅具有类的名称和特定的可见性。如果它声明返回一个值,则它不是构造函数,即使它声明返回一个void
。注意这里的区别:
public class SomeClass { public SomeClass() {
//constructor
}
public void SomeClass() {
//a method, NOT a constructor
}
}
另外,如果类未定义构造函数,则编译器将自动为你添加默认构造函数。
以上是 java“ void”和“ non void”构造函数 的全部内容, 来源链接: utcz.com/qa/418152.html