本文共 1198 字,大约阅读时间需要 3 分钟。
/* * static属性i是属于类本身的,或者讲没有对象我们可以直接用类名调用 * 这个程序的结果是20,20.因为static是一个静态的,所有的对象共用这个一个 * 另外,在main函数里又把i的值改变了,最终大家共用20 * 若果再写个aa2.i=30.则最终结果会为30.以最后的i为准,前面的都会被覆盖*/public class A { public static int i=10; public void show(){ System.out.printf("%d\n",i); }}class tttttt{ public static void main(String[] agrs){ A aa1=new A(); A aa2=new A(); aa1.i=20; aa2.i=23; aa1.show(); aa2.show(); } }
二。
/* 2009年5月29日15:14:29 本程序证明了: 只有非private的static成员才可以通过类名的方式访问 static只是表明了该成员具有了可以通过类名访问的潜在特征 但是否可以通过类名访问,还必须满足一个条件: 该成员必须是非private */public class A { private static int i = 10; private static void f() { System.out.printf("2009年5月29日15:15:50\n"); }}class tttttt { public static void main(String[] args) { A.f();// 这里会报错 A.i = 22;// 这里会报错 }}
三。
/*2009年5月29日15:14:29本程序证明了: 静态方法不能访问非静态成员 非静态方法可以访问静态成员 */class A { private static int i = 10; public int j = 99; public static void f() { // g(); //error 静态方法不能访问非静态成员 // j = 22; //error System.out.printf("FFFF\n"); } public void g() { // f(); //OK 说明非静态方法可以访问静态成员 System.out.printf("GGGG\n"); System.out.printf("%d\n", i); }}class tttttt { public static void main(String[] args) { A aa = new A(); // aa.g(); aa.f(); // A.g(); //error }}
转载地址:http://wmrqj.baihongyu.com/