我是 Java 的新手。我刚刚写了一个小例子来观察访问修饰符的效果。也许代码没有多大意义,因为我只是在测试。
第一个代码片段如下所示:
class Tet {
static double a;
double b;
public Tet(double a, double b){
this.a=a;
this.b=b;
}
public void get(){
a=5;
}
public static void main(String[] args){
Tet tet1 = new Tet(2, 5);
Tet tet2 = new Tet(4, 5);
System.out.println(tet1.a);
a=4;
System.out.println(tet1.a);
tet1.get();
System.out.println(tet1.a);
System.out.println(a);
}
}
在此之后,我对代码进行了一些修改并再次编译:
class Tet {
static double a;
double b;
public Tet(double a, double b){
this.a=a;
this.b=b;
}
public static void get(){
a=5;
}
public static void main(String[] args){
Tet tet1 = new Tet(2, 5);
Tet tet2 = new Tet(4, 5);
System.out.println(a);
get();
System.out.println(tet1.a);
System.out.println(a);
System.out.println(tet2.a);
}
}
运行后,cmd 如下所示: enter image description here
我真的不知道4号是从哪里来的。
最佳答案
每个类只有一个静态字段实例。
在这种情况下,有一个 a
实例。因此,当您创建 tet2
实例 Tet tet2 = new Tet(4, 5);
时,只需将其值设置为 4。
关于java - 努力理解访问修饰符和关键字 "static"的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73589165/