黑马程序员技术交流社区
标题:
线程问题
[打印本页]
作者:
霍明波
时间:
2012-8-23 00:31
标题:
线程问题
class Ticket implements Runnable
{
private int tick = 100;
public void run()
{
while(true)
{
if(tick>0)
System.out.println(Thread.currentThread().getName()+"...sale:"+tick--);
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket();
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
t1.start();
t2.start();
t3.start();
}
}
求帮改个类,由于红色区域
private int tick = 100;
能单独封装在一个类中,求大侠帮改个完整版,多谢
作者:
李知伦
时间:
2012-8-23 01:31
一个变量不用建一个类吧,直接封装不就好了
private int tick = 0;
public void setTicket(int tick) {
this.tick=tick;
}
再在main方法里加入:
t.setTicket(100);
作者:
牛杨
时间:
2012-8-23 02:28
本帖最后由 牛杨 于 2012-8-23 02:31 编辑
已经帮楼主修改好 完整版的 。蓝色的地方为添加或修改的地方。请楼主欣赏哦!{:soso_e181:}
class Ticket100
//这个类就是封装好的票类 ,把操作票的功能都封装在了这个类里面。
{
private int tick = 100;
public int getTick()
{
return tick;
}
public void subTick()
{
tick=tick-1;
}
}
class Ticket implements Runnable
{
// private int tick = 100;
private Ticket100 tic;
public Ticket(Ticket100 tic) //
自定义Ticket类的构造函数,用于接收Ticket100 票类对象 tic。
{
this.tic=tic;
}
public void run()
{
while(true)
{
if(
tic.getTick()>0
)
{
System.out.println(Thread.currentThread().getName()+"...sale:"+
tic.getTick()
);
tic.subTick();
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket( new Ticket100() );
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
t1.start();
t2.start();
t3.start();
}
}
希望对楼主有帮助!
作者:
霍明波
时间:
2012-8-23 09:25
谢谢,欣赏一下。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2