java类的设计动物类Word文档格式.docx
- 文档编号:20331841
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:18
- 大小:170.50KB
java类的设计动物类Word文档格式.docx
《java类的设计动物类Word文档格式.docx》由会员分享,可在线阅读,更多相关《java类的设计动物类Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
抽象父类A:
实现接口Animal
1.私有属性
privateStringname;
privateintage;
privateStringvoice;
privateStringbeizhu;
//备注
共同属性
staticStringhouse="
KFC"
;
staticintnum=200;
2.构造方法
3.抽象方法
publicabstractStringprint();
4.重写接口的部分抽象方法
5.对于封装的属性对外提供函数
Dog类:
继承A类
1.privateStringspec;
//这个对象含有自己独特属性
3.重写父类的方法:
publicStringtalk()
重写父类的抽象方法:
publicStringprint()
Cat类:
1.构造方法
2.重写父类的抽象方法:
MyTh类(实现Runnable):
进行多线程售卖动物
Company类:
单态设计模式
T类:
测试功能(主函数)
四.其他函数功能块
1.publicstaticvoidanlyage(ArrayListage)//对年龄进行分析
2.publicstaticvoidrandonsale(Listname,Dogd)//随即卖掉X只动物
3.publicstaticvoidduosale(intnum)//开创3个窗口,多线程同步售卖
4.publicstaticvoidcampare(Stringa,Stringb)//两个实例的对比
publicstaticvoidcampare(inta,intb)//方法的重载
五.全部代码块
importjava.util.*;
//...........................................总接口.............................................
interfaceAnimal//总接口
{
Stringprint();
Stringtalk();
Stringall();
voidinput();
}
//...........................................动物的父类.............................................
abstractclassAimplementsAnimal//动物的父类
{privateStringname;
staticintnum=200;
//父类的构造方法
publicA(){}
publicA(Stringname){setname(name);
}
publicA(Stringname,intage)
{setname(name);
setage(age);
publicA(Stringname,intage,Stringvoice,Stringbeizhu)
setvoice(voice);
setbeizhu(beizhu);
//重写抽象方法
publicabstractStringprint();
//留给子类喜欢独自扩充的抽象方法
publicStringtalk()
{returngetname()+"
"
+getvoice();
};
publicStringall()
+getage()+"
+getvoice()+"
+
getbeizhu()+"
+this.house;
}
publicvoidinput()//输入数据
{Scannerinput1=newScanner(System.in);
try//this.name=input1.next();
{setname(input1.next());
setage(input1.nextInt());
setvoice(input1.next());
setbeizhu(input1.next());
A.num++;
}
catch(Exceptione)
{System.out.println(e);
setage(1000000);
System.out.println("
输入有误"
);
//A.num--;
//封装
voidsetname(Stringname){this.name=name;
Stringgetname(){returnname;
voidsetage(intage)
{this.age=-999999;
if(age>
=0)
this.age=age;
else
{A.num--;
try{thrownewIllegalArgumentException("
年龄输入有误,不能为负数"
}//在方法内部抛出异常IllegalArgumentException
catch(IllegalArgumentExceptione){System.out.println(e.getMessage());
intgetage(){returnage;
voidsetvoice(Stringvoice){this.voice=voice;
Stringgetvoice(){returnvoice;
voidsetbeizhu(Stringbeizhu){this.beizhu=beizhu;
Stringgetbeizhu(){returnbeizhu;
//...........................................单态设计模式.............................................
classCompany//单态设计模式
{staticStringcname;
privateCompany(Stringcname){ame=cname;
}//单态设计模式核心
staticCompanyp=newCompany("
CKFC"
staticpublicCompanygetC()
{returnp;
//..........................................大狗类.............................................
classDogextendsA//继承
{privateStringspec;
voidsetspec(Stringspec){this.spec=spec;
Stringgetspec(){returnspec;
Companyp1=Company.getC();
//小狗的构造方法
publicDog(){}
publicDog(Stringname)
{super(name);
publicDog(Stringname,intage)
{super(name,age);
publicDog(Stringname,intage,Stringvoice,Stringbeizhu)
{super(name,age,voice,beizhu);
publicDog(Stringname,intage,Stringvoice,Stringbeizhu,Stringspec)
setspec(spec);
publicStringtalk()//子类“重写”父类的方法
:
"
+getspec()+"
+ame;
publicStringprint()
+getage();
//...........................................猫咪类.............................................
classCatextendsA
{publicCat(){}
publicCat(Stringname)
publicCat(Stringname,intage)
publicCat(Stringname,intage,Stringvoice,Stringbeizhu)
+getbeizhu();
//..........................................多线程.............................................
classMyThimplementsRunnable
{intnum;
MyTh(){};
MyTh(intnum)
{this.num=num;
publicvoidrun()
{while(num>
0)
{
sale();
System.out.println("
salestop!
synchronizedvoidsale()//同步方法
{if(num>
{try{Thread.sleep(0,1);
}catch(Exceptione){}
sale:
+Thread.currentThread().getName()+"
:
+num--);
classT
{//...........................................主函数.............................................
publicstaticvoidmain(String[]args)
{System.out.println("
输出动物的部分或全部信息"
姓名"
+"
年龄"
声音"
备注"
公司"
Dogd1=newDog("
dwangcai"
6,"
wanwan"
"
nothing"
iamagooddog!
Dogd2=newDog("
dxiaohei"
9,"
weakness"
Dogd3=newDog("
dxiaocai"
3,"
young"
Dogd4=newDog("
dming"
Catc1=newCat("
cmiao"
5,"
miaomiao"
Catc2=newCat("
cxiaomi"
1,"
Catc3=newCat("
capple"
Catc4=newCat("
cwindy"
4,"
Catc5=newCat("
cmm"
2,"
//信息数组
Listname=newArrayList();
name.add(d1.all());
name.add(d2.all());
name.add(d3.all());
name.add(d4.all());
name.add(c1.all());
name.add(c2.all());
name.add(c3.all());
name.add(c4.all());
name.add(c5.all());
for(inti=0;
i<
name.size();
i++)
System.out.println(name.get(i));
//测试输入对象
\n~~~~~~~~~~~~~~~~增加动物数量~~~~~~~~~~~~~~~"
intflag=0;
System.out.print("
输入0拒绝添加,输入1增加:
Scannerinput1=newScanner(System.in);
try{flag=input1.nextInt();
System.out.println(e);
intj=flag;
if(j==1)
{Catc10=newCat();
c10.input();
System.out.println(c10.all());
{System.out.println("
NoNeed!
//年龄数组
ArrayListage=newArrayList();
age.add(d1.getage());
age.add(d2.getage());
age.add(d3.getage());
age.add(d4.getage());
age.add(c1.getage());
age.add(c2.getage());
age.add(c3.getage());
age.add(c4.getage());
age.add(c5.getage());
//对年龄进行分析
anlyage(age);
//随即卖掉X只动物
randonsale(name,d1);
//多线程
duosale(d1.num);
//...........................................函数功能块.............................................
//方法的重载
publicstaticvoidcampare(Stringa,Stringb)
{System.out.println(a.equals(b));
publicstaticvoidcampare(inta,intb)
较大的值:
+Math.max(a,b));
较小的值:
+Math.min(a,b));
//多线程
publicstaticvoidduosale(intnum)
{
System.out.print("
~~~~~~~~多线程需要买所有的动物吗?
按0否认,其他数字确定:
inti=0;
try{i=input1.nextInt();
intj=i;
if(j!
{Runnabler=newMyTh(num);
newThread(r).start();
over!
//卖多少只动物(随即抽取)
publicstaticvoidrandonsale(Listname,Dogd)
{System.out.print("
\n~~~~~~~~~需要卖多少只动物,请输入:
(数量少于"
+d.num+"
):
intnum=0;
try{num=input1.nextInt();
d.num=d.num-num;
卖"
+num+"
只动物:
Collections.shuffle(name);
try
for(inti=0;
num;
catch(Exceptione)
最后剩余的数目为:
\n\n"
//对动物年龄进行分析
publicstaticvoidanlyage(ArrayListage)
\n~~~~~~~~~~~~~~~~对动物年龄进行分析~~~~~~~~~~~~~~~"
Collections.sort(age);
\n对动物年龄从低到高排序结果:
age.size();
System.out.print(age.get(i)+"
"
System.out.println("
\n动物最大的是年龄:
+Collections.max(age));
//最大数值
\n动物最小的是年龄:
+Collections.min(age));
//最小数值
\n综合分析“"
/*inta=(int)Collections.max(age);
=a;
System.out.println("
年龄为"
+i+"
岁的有:
+Collections.frequency(age,i));
*/
/*//增加动物数量
publicstaticvoidaddanimal()
请输入需要添加的数目:
for(intj=0;
j<
i;
j++)
System.out.println(c10.all())
}*/
/*//输出两个实例比较
~~~~~~~~~~~~~~~~~~~输出两个实例比较~~~~~~~~~~~~~~"
campare(d1.getname(),c1.getname());
campare(d1.getage(),c1.getage());
System.out.println();
/*//测试单态设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 设计 物类