【发布时间】:2019-05-19 00:28:53
【问题描述】:
我需要了解构造函数和实例变量。我的问题是构造函数是在第 1 行初始化的,而我可以通过在第 2 行创建实例变量来做到这一点。为什么我需要使用构造函数来初始化值,而我可以使用实例变量来初始化值?
class ExampleConstructor{
int value;
ExampleConstructor(int value){
this.value=value;
}
}
public class Main{
public static void main(String[] args){
ExampleConstructor constructor=new ExampleConstructor(100);/*line 1*/
System.out.println(constructor.value);
constructor.value=10;/*line 2*/
System.out.println(constructor.value);
}
}
【问题讨论】:
-
你在问为什么你不能只做
int value = 10;?因为你能。构造函数只允许您在创建对象时初始化值 -
你绝对可以做到。只需使用一个空的构造函数。您需要使用构造函数来实例化实例,因为您的类不是静态类,而是从静态方法(main)调用它。
-
你可以看到它就像生了一些东西,或者创造了它。要创造一些东西,显然你需要成分,否则你的创造将丢失重要的东西。而且你不能在生成它之前编辑创建属性(神奇的
new运算符)。就是这样。 -
你应该阅读这篇关于封装的文章:stackoverflow.com/questions/1568091/…
-
我认为您应该从班级名称中删除“构造函数”一词。当您询问有关 Constructor 构造函数的问题时,它只会引起混淆和误解。
标签: java constructor instance-variables