JAVA大学题目,求完整答案

 我来答
LMLU23
2015-01-07 · TA获得超过901个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:360万
展开全部
  1. 图形界面都需要显示出来,因此所有是图形界面的元素都有display()方法

    定义Component作为图形界面组件接口,含有通用的display()方法。

    定义AbstractButton抽象类实现Component接口,本来Button应该还有其他方法的(Click什么的),这里信息太少就不用管它了。

    定义LoginForm类实现Component接口,并含有成员button:AbstractButton。

    分别定义CircleButton类和RectangleButton继承AbstractButton。

  2. 这道题信息太少了,很多东西都要假设...暂时先假设公司在某一段时间只能生产一种盘子...在这里圆形盘子和方形盘子貌似是考察多态的点,就只能按着题目来了...(实际生活中公司可能会有多条生产线同时生产不同的盘子,盘子对于公司来说无论是圆的还是方的,都没有关系,所以没有必要进行抽象...因为盘子本身没有行为)

  定义Plate抽象类,木有行为(好奇怪啊),属性给个编号,生产日期。

  定义CirclePlate类和SquarePlate类,继承Plate类。CirclePlate类里给个半径属性,SquarePlate给个英寸属性吧,代表对角线长度。(注意,这里不同属性并不代表着一定要进行抽象,使用一个Map来存储一样是可以的。)

  定义单例的抽象工厂AbstractPlateFactory:

  public abstract class AbstractPlateFactory{
        private static AbstractPlateFactory instance;
      public synchronized static AbstractPlateFactory getInstance(){
          if (instance == null){
              instance = newInstance();
          }
          return instance;
      }
  
      private AbstractPlateFactory getInstance(){
          //从系统属性中读取工厂类名
          String factoryClassName = System.getProperty("company.plate.factory.class");
          return Class.forName(factoryClassName).newInstance();
      }
  
      public abstract Plate newPlate();
  }

  定义具体的工厂类CirclePlateFactory和SquarePlateFactory继承AbstractPlateFactory类,各自实现newPlate()方法,按照上面从系统属性中读取具体的半径和英寸值作为生产指标。

  最后写个main方法,先用System.setProperty(String name, String value)初始化系统属性(别漏了),然后获取Factory:AbstractPlateFactory.getInstance(),循环调用factory.newPlate()生产盘子就OK了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式