整理出我对Java不确定的几个问题
上述代码的输出为: 打印20整理出我对Java不确定的几个问题,java,Java,上述代码的输出为: 打印20打印809010090100 有人能帮我理解为什么我会得到: 9010090 一百 静态变量可以通过多种方式访问 静态变量可以通过静态/非静态方法直接访问。 此外,还可以从对象访问静态变量 package Day4; public class clasAndobjDemo { static int a = 90; //Data memeber ,Properties static int b = 100; // Data Memeber Poper
打印80
90
100
90
100
有人能帮我理解为什么我会得到: 90
100
90
一百
静态变量可以通过多种方式访问 静态变量可以通过静态/非静态方法直接访问。 此外,还可以从对象访问静态变量
package Day4;
public class clasAndobjDemo {
static int a = 90; //Data memeber ,Properties
static int b = 100; // Data Memeber Poperties
public static void main(String[] args) {
clasAndobjDemo obj1 = new clasAndobjDemo();
obj1.sub();
obj1.sum();
System.out.println(obj1.a);
System.out.println(obj1.b);
System.out.println(a);
System.out.println(b);
}
public void sub() {
int x = 80, y = 100, z = x - y;
System.out.println("Print" + z);
}
public void sum() {
int x = 80, y = 100, z = x + y;
System.out.println("Print" + z);
}
}
但是,不鼓励采用上述方法
由于静态变量归类所有(所有对象只有一个副本),因此无需使用实例引用即可访问它们
i、 e。
直接(在类本身内)
或者使用类名
System.out.println(a);
引用:因为您先打印
a
,然后打印b
(作为对象的变量),然后再打印a
,然后再打印b
(这一次作为静态变量从静态方法调用类)。您的sub
和sum
方法不会更改对象中的数据字段a
和b
。因此,obj1.a
和obj2.a
与a
和b
是相同的。你的问题是什么?它是否像“为什么可以通过对象访问静态成员”?如果是这样,答案是这样的
System.out.println(a);
clasAndobjDemo.a