关于static 的使用

/*
 * 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
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值