java程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、

用户封装手机的基本属性和功能,要求手机既可以使用移动公司的SIM卡也可以使用联通公司的SIM卡(可以使用任何公司提供的SIM卡)。

1.问题的分析

如果设计的手机类中用某个具体的公司,比如移动公司,声明了对象,那么手机就缺少弹性,无法使用其他公司的SIM卡,因为一旦用户需要使用其他公司的SIM卡,需要修改手机的代码,比如增加用其他公司声明的成员变量。

如果每当用户有新的需求,就会导致修改类的某部分代码,那么就应当将这部分代码从该类中分割出去,使它和类中其他稳定的代码之间是松耦合关系(否则系统缺乏弹性,难以维护),即将每种可能的变化对应地提交给抽象类的子类负责完成。

2.设计抽象类

根据以上对问题的分析,首先设计一个抽象类SIM,该抽象类有三个抽象方法giveNumber()、setNumber()和giveCorpName(),那么SIM的子类必须实现giveNumber()、setNumber()和giveCorpName()方法。

3.设计手机类

设计MobileTelephone类(模拟手机),该类有一个useSIM(SIM card)方法,该方法的参数是SIM类型。显然,参数card可以是抽象类SIM的任何一个子类对象的上转型对象,即参数card可以调用SIM的子类重写的giveNumber()方法显示手机所使用的号码,调用子类重写的giveCorpName()方法显示该号码所属的公司。

除了子类外,还有SIM类及子类:SIMOFChinaMobile(模拟移动公司提供的卡)、SIMOFChinaUnicom(模拟联通公司提供的卡)和MobileTelephone类。

下图是MobileTelephone、SIM、SIMOFChinaMobile和SIMOFChinaUnicom类的UML 图。

二、

用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。

PC类与CPU和HardDisk类关联的UML图如下。

其中,CPU类要求getSpeed()返回speed的值,要求setSpeed(int m)方法将参数m的值赋值给speed。HardDisk类要求getAmount()返回amount的值。要求setAmount(int m)方法将参数的值赋值给amount。PC类要求setCPU(CPU c)将参数c的值赋值给cpu,,要求setHardDisk(HardDisk h)方法将参数h的值赋值给HD。Y要求show()方法能显示cpu的速度和硬盘的容量。

主类Test的要求

(1)main()方法中创建一个CPU对象cpu。cpu将自己的speed设置为2200;

(2)main()方法中创建一个HardDisk对象disk。disk将自己的amount设置为2200;

(3)main()方法中创建一个PC对象pc;

(4)pc调用setCPU(CPU c)方法,调用时实参是cpu;

(5)pc调用setHardDisk(HardDisk h)方法,调用时实参是disk;

(6)pc调用show()方法。

三、

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下。

编写抽象类Animal

Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。

编写模拟器类Simulator

该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal 可以调用Animal的子类重写的cry()方法播放具体动物的声音,调用子类重写的getAnimalName()方法显示动物种类的名称。

编写Animal类的子类:Dog和Cat类

下图是Simulator、Animal、Dog、Cat的UML图。

编写主类Application(用户程序)

在主类Application的main方法中至少包含如下代码。

Simulator simulator=new Simulator();

Simulator. playSound(new Dog());

Simulator. playSound(new Cat());

四、

使用接口实现下题。

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下。

编写抽象类Animal

Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。

编写模拟器类Simulator

该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal 可以调用Animal的子类重写的cry()方法播放具体动物的声音,调用子类重写的getAnimalName()方法显示动物种类的名称。

编写Animal类的子类:Dog和Cat类

下图是Simulator、Animal、Dog、Cat的UML图。

编写主类Application(用户程序)

在主类Application的main方法中至少包含如下代码。

Simulator simulator=new Simulator();

Simulator. playSound(new Dog());

Simulator. playSound(new Cat());

五、

设计一个广告牌,希望所设计的广告牌可以展示许多公司的广告词。

1.设计接口

首先设计一个接口Advertisement,该接口有2个方法show-Advertisement()和getCorpName(),那么实现Advertisement接口的类必须重写show-Advertisement()和getCorpName()方法,即要求各个公司给出具体的广告词和公司名称。

2.设计广告牌类

然后我们设计AdvertisementBoard类(广告牌),该类有一个show(Advertisement adevr)方法,该方法的参数adver是Advertisement接口类型(就像人们常说的,广告牌对外留有(接口)。显然,该参数sdver可以存放任何实现Advertisement接口的类的对象的引用,并回调类重

相关文档
最新文档