A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄云南 中级黑马   /  2012-3-25 02:42  /  2136 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. ————————————————————————路的对象设计:——————————————————————————————
  2. class Road
  3. {
  4.         List  car= new ArrayList<String>();
  5.         String name=null;路线名
  6. 1,在构造方法中让单独开一个线程向集合中加入元素,
  7.         表示此路线随机增加一辆车
  8. 2,再在构造方法中另开一个线程定义一个定时器定义每隔1秒检查自己的路线的灯是否是绿灯,如果是绿的就将集合的第一个元素删除。
  9. 表示此路线为绿灯时一秒钟减少一辆车。
  10.         Road(String name)
  11.         {
  12.                 this.name=name;
  13.                 单独一个线程让此路线进入车辆随机增加元素
  14.                 ———开一个线程,让线程随机休眠几秒钟达到随机增加车辆的效果
  15.                         {               
  16.                                                 for (int i=1;i<1000 ;i++ )
  17.                                         {
  18.                                                 让此线程sleep();时间1到10秒。醒了就在集合中加入字符串。
  19.                                                 car.add(name+"-"+i);//表示某一路线加入了第i辆车。
  20.                                         }
  21.                         }
  22.                 ————另开一个线程,定义一个定时器实现线程在规定的时间了循环做某事
  23.                         {
  24.                                        
  25.                                         定义一个定时器定义每隔1秒检查自己的路线的灯是否是绿灯,如果是绿的就将集合的第一个元素删除
  26.                         }               
  27.                 }
  28.         }
  29. }

  30. ————————————————————————灯面向对象的设计—————————————————————————————

  31. public enum Lamp()
  32. {
  33.         1,12方向的灯的元素;
  34.                 S2N("N2S","S2W",false);N2S(null,null,false) ;
  35.                 共12个灯,其他8个灯是两对应的,4个有对应灯和下一个灯传入,这4个灯的对应灯的对应灯和下一个灯为null。
  36.                 S2E(null,null,true)

  37.                 4个右转湾的对应灯和下一个灯为null,而且全部长亮。

  38.         2, boolean lingthed;表示等的亮暗状态
  39.        
  40.         3, public method1()
  41.                 {
  42.                         返回灯的亮暗状态;
  43.                 }
  44.         4,public void light(){

  45.                 4.1,把自己的灯变亮,
  46.                         if (有对应的灯?)//把对应的灯变亮
  47.                         {
  48.                         4.1.2,通过对应灯对象名的Lamp.ValueOf(String duiyingdeng);获取对应灯的对象
  49.                         4.1.3,让后用对应的灯的对象调用light();这个方法把自己变亮
  50.                         }
  51.                 4.2,if (有下一个灯?)//把下一个灯变红
  52.                 {
  53.                                 4.2.1, 通过下一个灯对象名的Lamp.ValueOf(String duiyingdeng);获取对应灯的对象
  54.                                 4.2.2,让后下一个灯的对象调用blackout();这个方法把自己变红
  55.                 }
  56.        
  57.         }
  58.         5,public Lamp blackout()
  59.         {
  60.                 5.1,把自己灯变红
  61.                         if (有没对应灯?)
  62.                         {
  63.                                 5.1.2,通过对应灯对象名的Lamp.ValueOf(String duiyingdeng);获取对应灯的对象
  64.                                 5.1.3,让后用对应的灯的对象调用light();这个方法把自己变红
  65.                         }       
  66.                 5.2,if (有下一个灯?)//把下一个灯变红
  67.                 {
  68.                                 4.2.1, 通过下一个灯对象名的Lamp.ValueOf(String duiyingdeng);获取对应灯的对象
  69.                                 4.2.2,让后下一个灯的对象调用blackout();这个方法把自己变绿
  70.                 }
  71.                                 return 下一个灯;//把自己变红,把下一个灯变绿,然后返回这个变绿的灯。
  72.         }



  73.         6,String duiyingdeng;定义一个字符串存储对象的名字,将对应灯的对象名传入构造函数
  74.        
  75.         7,String naxtlamp;定义一个字符变量存储下一个灯的对象名,在自己变暗时把下一个灯变亮;
  76.        
  77.         8 ,private Lamp(String lampname,String naxtlamp,boolean flag )
  78.                 {
  79.                 duiyingdeng=lampname;//把对应灯对象名传给当前灯的duiyindeng中
  80.                 this.naxtlamp=naxtlamp;
  81.                 lingthed=flag;//传入亮暗状态
  82.                 }

  83. }
  84. ————————————————————灯控制系统的面向对象的设计——————————————————————————————
  85. 灯控制系统:
  86. class LampController()
  87. {
  88.         private Lamp currentlamp;定义一个灯类储存当前灯
  89.        
  90.         public  lampyunxing()
  91.         {
  92.                 currentlamp=Lemp.S2N;//获取一个灯的对象
  93.                 currentlamp.light();让当前灯亮起来
  94.                
  95.                 定义一个计时器让当前灯隔一段时间就变红,把下一个灯变绿
  96.                 这需要用多线程实现;
  97.                 注意:当当前灯变红,下一个灯变绿;然后这个绿灯要变成当前灯,让它循环起来,
  98.                         所以最好的方法是在当前灯变红的方法中返回下一个灯,
  99.                
  100.         }
  101. }


  102. ——————————————主函数实现交通系统运行————————————

  103. 让此系统运转起来的主函数:
  104. class MainClass()
  105. {
  106.         public static void main(String[] ages)
  107.         {
  108.                 1,new 出12条路线;让车跑起来
  109.                 2,调用灯控系统;让车有规则的跑       
  110.         }
  111. }
复制代码

4 个回复

倒序浏览
哪天计算机听得懂人话的话,编程会是多么简单的一件事呢!
回复 使用道具 举报
  1. package org.it;


  2. public class 汽车
  3. {
  4.         钥匙 我的钥匙 = null;
  5.         public 汽车(钥匙 我的钥匙)
  6.         {
  7.                 this.我的钥匙 = 我的钥匙;
  8.         }
  9.        
  10.         private void 打火(钥匙 我的钥匙)
  11.         {
  12.                
  13.         }
  14.        
  15.         private class 钥匙
  16.         {
  17.                
  18.         }
  19. }
复制代码
事实上你这么写绝对不会出错,完全可以运行,不过你要是发给老外看看估计他们全懵
回复 使用道具 举报
了无尘 发表于 2012-3-25 03:53
事实上你这么写绝对不会出错,完全可以运行,不过你要是发给老外看看估计他们全懵 ...

我以前怎么没想过要试下能不能运行啊!一直以为不行啊!!唉!!
回复 使用道具 举报
若果计算机是中国的 开发语言也许就会像易语言那样了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马