public class Test{
static int a;
int b;
public static void main(String[]args){
Test.a=10;
Test ob1=new Test();
Test ob2=new Test();
System.out.println(ob1.a);
ob1.a=20;
System.out.println(ob2.a);
ob2.a=30;
System.out.println(Test.a);
}
}
我是刚开始学习JAVA 啊,谁能帮我说说 为什么输出结果 会 是10,20,30 呢,这三个数是竖着排列的,我不懂啊?
static int a;
int b;
public static void main(String[]args){
Test.a=10;
Test ob1=new Test();
Test ob2=new Test();
System.out.println(ob1.a);
ob1.a=20;
System.out.println(ob2.a);
ob2.a=30;
System.out.println(Test.a);
}
}
我是刚开始学习JAVA 啊,谁能帮我说说 为什么输出结果 会 是10,20,30 呢,这三个数是竖着排列的,我不懂啊?
因为这句
static int a;
他不属于类的变量,静态的(楼主可以去看看static的用法)
所有类共享的
给你举个简单的例子吧public class testStatic { public static void main(String[] args) {
System.out.println(test.a); //实例化前
test t = new test(); //实例化
System.out.println(t.a); //实例化后
}}
class test {
static int a = 10;
}System.out.println(test.a); //实例化前
test t = new test(); //实例化
System.out.println(t.a); //实例化后
体会这三句代码System.out.println(ob1.a); 是换行
System.out.print(ob1.a);是不换行,楼主可以试下
----------------------------------華麗的個性簽名----------------------------------------
500人的编程群期待大家的加入,一起交流探讨软件开发
群名:程序人生大联盟主群
群号:49282233
10
20
30
因为 你的a是用static修饰的,所以一开始你可以用Test.a=10,所以a的值变为了10,然后呢 你实例化了一个ob1 调用a 此时a的值仍未10,随后ob1.a=20,此时 你将a的值变为了 20 然后呢用实例化的ob2 调用 a 所以输出的值是20 接着ob2.a=30 将a的值变为了30 你用类直接调用a的值,无所谓了,输出的值当然是30了!