java程序设计

时间:2022-05-20 00:34:16 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
一、

用户封装手机的基本属性和功能,要求手机既可以使用移动公司的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类。

下图是MobileTelephoneSIMSIMOFChinaMobileSIMOFChinaUnicom类的UML图。

二、

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

PC类与CPUHardDisk类关联的UML图如下。

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

主类Test的要求

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

2 main()方法中创建一个HardDisk对象diskdisk将自己的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类型。即参数animalAnimalcry()getAnimalName()方法显示动物种类的名称。

编写Animal类的子类:DogCat

下图是SimulatorAnimalDogCatUML图。 编写主类Application(用户程序)

在主类Applicationmain方法中至少包含如下代码。 Simulator simulator=new Simulator() Simulator. playSound(new Dog()); Simulator. playSound(new Cat());

四、

使用接口实现下题。

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

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

编写模拟器类Simulator

该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animalAnimalcry()getAnimalName()方法显示动物种类的名称。

编写Animal类的子类:DogCat

下图是SimulatorAnimalDogCatUML图。 编写主类Application(用户程序)

在主类Applicationmain方法中至少包含如下代码。 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)方法,该方法的参数adverAdvertisement接口类型(就像人们常说的,广告牌对外留有(接口)显然,该参数sdver可以存放任何实现Advertisement接口的类的对象的引用,并回调类重


showAdvertisement()广getCorpName()来显示公司的名称。


本文来源:https://www.wddqw.com/doc/32d7c92f964bcf84b9d57bd4.html