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

回到顶部