静态总结

书中常看到static Test t = new Test();  不理解static是修饰谁的。

问师兄知道 static是修饰t代表的这个对象的。

 

通过一个例子理解:

package cn.itcast.deadlock;

class YuShi {
	public synchronized void say(FuXie f) {
		System.out.println("玉史:给我 30 亿欧圆,放了你儿子。");
		f.get();
	}

	public synchronized void get() {
		System.out.println("玉史终于得到了赎金,放了儿子,为了下次继续绑架。");
	}
}

class FuXie {
	public synchronized void say(YuShi y) {
		System.out.println("付谢:放了我儿子,我给你 30 亿欧圆,不见人不给钱。");
		y.get();
	}

	public synchronized void get() {
		System.out.println("付谢救回了自己的儿子,于是开始哭那 30 亿。");
	}
}

public class DeadLock implements Runnable {
	static YuShi ys = new YuShi();//static的理解
	static FuXie fs = new FuXie();//static的理解

	@Override
	public void run() {
		// TODO Auto-generated method stub
		fs.say(ys);
	}

	public static void main(String[] args) {
		DeadLock dl = new DeadLock();
		new Thread(dl).start();
		ys.say(fs);
	}
} 

在main方法中要用ys 和 fs时,需要用到DeadLock类的成员变量ys,fs。

若将这两行的static去掉,则需要在main方法里,用dl调用它们。

 

加了静态后用类名调用即可,默认这里不写类名也可以

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值