就是给类的属性设值,其他没什么好解释
Container容器
comp组件
addComponent添加一个comp组件的方法
Component类
myContainer容器
Component给容器赋值的方法
给容器添加组件,以及在组件中记录它位于哪个容器中
像这种代码很有意思:相互嵌套定义,可以说你中有我,我中有你。容器中存放组件,组件记录容器~进一步还可以看看Java swing的内容哦~
1、Component类拥有一个成员属性:Container myContainer,并且构造Component类的时候需要传入一个Container对象c,让myContainer引用c。
2、Container类拥有一个成员属性:Component comp,并且提供了一个方法addComponent()来实构造comp;由1可知,构造comp需要需要传入一个Container对象,而addComponent()是Container的成员方法,所以this代表当前的Container对象,所以调用addComponent(this)即可。
刚学Java不懂这两段代码帮忙解析一下
package d;
public class SellTickt {public static void main(String[] args) {
SellTicktDemo std = new SellTicktDemo();
Thread t1 = new Thread(std,"售票窗口1");
Thread t2 = new Thread(std,"售票窗口2");
Thread t3 = new Thread(std,"售票窗口3");
Thread t4 = new Thread(std,"售票窗口4");
t1.start();
t2.start();
t3.start();
t4.start();
}
}
package d;
public class SellTicktDemo implements Runnable{ private int total = 100;
private int no = total+1;
private Object obj = new Object();
public void run() {
while(true){
synchronized(this.obj){
if(this.total > 0){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
String msg = Thread.currentThread().getName()+" 售出第 "+(this.no -this.total) +" 张票";
System.out.println(msg);
this.total--;
}else{
System.out.println("票已售完,请下次再来!");
System.exit(0);
}
}
}
}
}