java类的设计(动物类)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java大作业实践》
报告
Animal公司的分析与设计
广东药学院
一.Animal类的设计要求:
根据实际需求设计Animal类,并完成以下功能:
1.输出全部信息
2.对2个实例进行比较
3.使用static对共同的属性进行修饰
4.实现从键盘输入的功能
5.实现单态设计模式
6.加异常信息
7.加入多线程
8.使用集合(可选)
二.设计场景,实现其要求
场景设计在一间公司,拥有很多的小猫小狗等宠物可以出卖。
1.输出9只动物的全部信息,举例代表全部动物的信息,并用List
集合存放所有信息。
2.可以选择输入动物的信息来增加动物的数量,其中输入错误不能
添加,并且进行了异常处理。
3.可以对动物的属性进行比较,例如年龄,名字等。用到了方法的
重载。
4.公司的动物的总数为共同属性和来源,用static修饰。
5.公司实现单态模式设计,所有动物都是属于这间公司的。
6.可以从键盘输入许多不同的选择,选择对动物进行不同的操作,
并且所有的输入都进行了异常的处理。
7.采用多线程售卖动物,实现三个窗口同时售卖,并且进行了同步
设计,保证安全。
8.利用ArrayList集合收集动物的年龄信息,并对其进行分析。
三.接口与类的基本设计
接口Animal(包涵四个抽象方法):String print();//姓名+年龄
String talk();//姓名+他的声音
String all();//全部信息
void input();//输入数据
抽象父类A:实现接口Animal
1.私有属性
private String name;
private int age;
private String voice;
private String beizhu;//备注
共同属性
static String house="KFC";
static int num=200;
2.构造方法
3.抽象方法
public abstract String print();
4. 重写接口的部分抽象方法
5.对于封装的属性对外提供函数Dog类:继承A类
1.private String spec;//这个对象含有自己独特属性
2.构造方法
3.重写父类的方法:public String talk()
重写父类的抽象方法:public String print()
Cat类:继承A类
1.构造方法
2.重写父类的抽象方法:public String print()
MyTh类(实现Runnable):进行多线程售卖动物
Company类:单态设计模式
T类:测试功能(主函数)
四.其他函数功能块
1. public static void anlyage(ArrayList age) //对年龄进行分析
2. public static void randonsale(List name,Dog d)//随即卖掉X 只动物
3. public static void duosale(int num) //开创3个窗口,多线程
同步售卖
4. public static void campare(String a,String b) //两个实例的对比
public static void campare(int a,int b)// 方法的重载五.全部代码块
import java.util.*;
//...........................................总接口............................................. interface Animal//总接口
{
String print();//姓名+年龄
String talk();//姓名+他的声音
String all();//全部信息
void input();//输入数据
}
//...........................................动物的父类............................................. abstract class A implements Animal//动物的父类
{ private String name;
private int age;
private String voice;
private String beizhu;//备注
static String house="KFC";
static int num=200;
//父类的构造方法
public A() {}
public A(String name) { setname(name); }
public A(String name,int age)
{ setname(name);
setage(age);
}
public A(String name,int age,String voice,String beizhu)
{ setname(name);
setage(age);
setvoice(voice);
setbeizhu(beizhu);
}
//重写抽象方法
public abstract String print();//留给子类喜欢独自扩充的抽象方法public String talk()