java Runable接口

分手后的思念是犯贱 2024-04-18 11:12 148阅读 0赞
  1. package Test;
  2. import org.omg.CORBA.PUBLIC_MEMBER;
  3. //对象实现Runable接口
  4. /*
  5. 创建类Battle,实现Runnable接口
  6. 启动的时候,首先创建一个Battle对象,然后再根据该battle对象创建一个线程对象,并启动
  7. battle1 对象实现了Runnable接口,所以有run方法,但是直接调用run方法,并不会启动一个新的线程。
  8. 必须,借助一个线程对象的start()方法,才会启动一个新的线程。
  9. 所以,在创建Thread对象的时候,把battle1作为构造方法的参数传递进去,这个线程启动的时候,就会去执行battle1.run()方法了。
  10. */
  11. public class Damo2 {
  12. public static void main(String[] args) {
  13. Hero xiangyu = new Hero();
  14. xiangyu.name = "项羽";
  15. xiangyu.hp = 616;
  16. xiangyu.damage = 50;
  17. Hero zhuangzhou = new Hero();
  18. zhuangzhou.name = "庄周";
  19. zhuangzhou.hp = 300;
  20. zhuangzhou.damage = 30;
  21. Hero diaochan = new Hero();
  22. diaochan.name = "貂蝉";
  23. diaochan.hp = 500;
  24. diaochan.damage = 65;
  25. Hero houyi = new Hero();
  26. houyi.name = "后羿";
  27. houyi.hp = 455;
  28. houyi.damage = 80;
  29. Battle battle=new Battle(xiangyu, houyi);
  30. new Thread(battle).start();
  31. Battle battle2=new Battle(diaochan, houyi);
  32. new Thread(battle).start();
  33. }
  34. }
  35. //设置英雄类模型
  36. class Hero{
  37. public String name;
  38. public float hp;
  39. public int damage;
  40. public void attack(Hero h) {
  41. //为了表示攻击需要的时间,每次攻击暂停1000毫秒
  42. try {
  43. Thread.sleep(1000);
  44. } catch (InterruptedException e) {
  45. e.printStackTrace();
  46. }
  47. h.hp-=damage;
  48. System.out.format("%s正在被攻击%s,%s的血变成了%.0f%n", name,h.name,h,name,h.hp);
  49. if (h.isDead()) {
  50. System.out.println(h.name+"嗝屁了");
  51. }
  52. }
  53. public boolean isDead() {
  54. return 0>=this.hp? true:false;
  55. }
  56. }
  57. class Battle implements Runnable{
  58. private Hero h1;
  59. private Hero h2;
  60. public Battle(Hero h1,Hero h2) {
  61. this.h1=h1;
  62. this.h2=h2;
  63. }
  64. public void run() {
  65. while(!h2.isDead()) {
  66. h1.attack(h2);
  67. }
  68. }
  69. }

发表评论

表情:
评论列表 (有 0 条评论,148人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java Thread与Runable

    1.线程的定义 线程是一个程序的多个执行路径,执行调度的单元,依托于进程的存在。线不仅可以共享进程的内在,而且还拥有一个属于自己的内存空间,这段内存空间就是线程栈,是在建