我有以下java程序,
class A{
int a=100;
A(int i){
}
{
a=300;
}
void printA(){
System.out.println("a : "+a);
}
}
class Demo{
public static void main(String args[]){
A a1=new A(200);
a1.printA(); //300
}
}
但我不明白为什么 main 方法 'a1.printA(); ' as 300 你能解释一下吗?
最佳答案
class A{
A(int i){
}
int a=100;
{
a=300;
}
void printA(){
System.out.println("a : "+a);
}
}
class Demo{
public static void main(String args[]){
A a1=new A(200);
a1.printA(); //300
}
}
好的,您将该实例变量的值设置两次:
int a = 100;
这是第一个执行的。所以,这就是一切的开始。
然后,初始化类,因此将执行初始化 block ,其中包含:
a=300;
这将覆盖以前的值。
您还向构造函数传递了一个参数,但您没有使用它。所以这不会改变 a 的值。
关于java - 为什么java程序中的输出打印值300,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60563113/