早教吧作业答案频道 -->其他-->
怎么用JAVA编写宠物进笼那道题啊?题目如下;急需谢谢,有很多地方不明白。Annie的宠物小屋里有12个笼子,每个笼子可以放不同的动物,包括猫,狗和蛇,但同一时刻一个笼子只能放0只
题目详情
怎么用JAVA 编写 宠物进笼 那道题啊?题目如下;急需谢谢,有很多地方不明白。
Annie的宠物小屋里有12个笼子,每个笼子可以放不同的动物,包括猫,狗和蛇,但同一时刻一个笼子只能放0只或1只宠物,本题要求完成:(1)定义抽象基类Animal,至少包含抽象方法ShowMe;(2)定义派生类Cat,Dog,Snake,具体实现上述抽象方法ShowMe,显示该宠物的种类,名称和喜欢的食物。(3)定义笼子类,能放0只或1只宠物,可以增加,移除指定笼子中的宠物,查询每个笼子中存放宠物的情况;(4)定义描述宠物小屋的类Shelves,其中包括12个笼子用于存放各种宠物;可统计宠物的种类和数量。(5)实现一个简单的控制类,测试上述类
Annie的宠物小屋里有12个笼子,每个笼子可以放不同的动物,包括猫,狗和蛇,但同一时刻一个笼子只能放0只或1只宠物,本题要求完成:(1)定义抽象基类Animal,至少包含抽象方法ShowMe;(2)定义派生类Cat,Dog,Snake,具体实现上述抽象方法ShowMe,显示该宠物的种类,名称和喜欢的食物。(3)定义笼子类,能放0只或1只宠物,可以增加,移除指定笼子中的宠物,查询每个笼子中存放宠物的情况;(4)定义描述宠物小屋的类Shelves,其中包括12个笼子用于存放各种宠物;可统计宠物的种类和数量。(5)实现一个简单的控制类,测试上述类
▼优质解答
答案和解析
abstract class Animal{
String kind,name,food;
abstract void ShowMe();
}
class Cat extends Animal{
Cat(String na,String fo)
{
kind="Cat"; name=na; food=fo;
}
void ShowMe(){
System.out.println("kind="+kind+",name="+name+",food="+food);
}
}
class Dog extends Animal{
Dog(String na,String fo)
{
kind="Dog"; name=na; food=fo;
}
void ShowMe(){
System.out.println("kind="+kind+",name="+name+",food="+food);
}
}
class Snake extends Animal{
Snake(String na,String fo)
{
kind="Snake"; name=na; food=fo;
}
void ShowMe(){
System.out.println("kind="+kind+",name="+name+",food="+food);
}
}
class Longzi{
int cnt;
Animal ai;
Longzi()
{
cnt=0;
}
void add(Animal a)//增加
{
if(cnt!=0) System.out.println("笼子已满!");
else {
ai=a;
cnt=1;
}
}
void del()//删除
{
cnt=0;
}
void check()//查询
{
if(cnt==0) System.out.println("笼子为空");
else ai.ShowMe();
}
String getKind()//获取种类
{
if(cnt==0) return "";
else return ai.kind;
}
}
class Shelves{
Longzi lz[]=new Longzi[12];
Shelves()
{
for(int i=0;i<12;i++) lz[i]=new Longzi();
}
void cal()//统计
{
String s[]={"Cat","Dog","Snake"};
int cnt[]={0,0,0};
for(int i=0;i<12;i++)
{
String ki=lz[i].getKind();
for(int j=0;j<3;j++)
{
if(ki.equals(s[j])) cnt[j]++;
}
}
for(int i=0;i<3;i++)
{
System.out.println(s[i]+"有"+cnt[i]+"只");
}
}
}
public class Test{
public static void main(String []args){
Shelves sl=new Shelves();
Animal ai;
ai=new Cat("小白","鱼");
sl.lz[3].add(ai);//第4个笼子放只猫
sl.lz[3].check();
ai=new Dog("小黑","屎");
sl.lz[2].add(ai);//第3个笼子放只狗
sl.lz[2].check();
ai=new Snake("小青","老鼠");
sl.lz[8].add(ai);//第9个笼子放只蛇
sl.lz[8].check();
sl.cal();//统计
}
}
String kind,name,food;
abstract void ShowMe();
}
class Cat extends Animal{
Cat(String na,String fo)
{
kind="Cat"; name=na; food=fo;
}
void ShowMe(){
System.out.println("kind="+kind+",name="+name+",food="+food);
}
}
class Dog extends Animal{
Dog(String na,String fo)
{
kind="Dog"; name=na; food=fo;
}
void ShowMe(){
System.out.println("kind="+kind+",name="+name+",food="+food);
}
}
class Snake extends Animal{
Snake(String na,String fo)
{
kind="Snake"; name=na; food=fo;
}
void ShowMe(){
System.out.println("kind="+kind+",name="+name+",food="+food);
}
}
class Longzi{
int cnt;
Animal ai;
Longzi()
{
cnt=0;
}
void add(Animal a)//增加
{
if(cnt!=0) System.out.println("笼子已满!");
else {
ai=a;
cnt=1;
}
}
void del()//删除
{
cnt=0;
}
void check()//查询
{
if(cnt==0) System.out.println("笼子为空");
else ai.ShowMe();
}
String getKind()//获取种类
{
if(cnt==0) return "";
else return ai.kind;
}
}
class Shelves{
Longzi lz[]=new Longzi[12];
Shelves()
{
for(int i=0;i<12;i++) lz[i]=new Longzi();
}
void cal()//统计
{
String s[]={"Cat","Dog","Snake"};
int cnt[]={0,0,0};
for(int i=0;i<12;i++)
{
String ki=lz[i].getKind();
for(int j=0;j<3;j++)
{
if(ki.equals(s[j])) cnt[j]++;
}
}
for(int i=0;i<3;i++)
{
System.out.println(s[i]+"有"+cnt[i]+"只");
}
}
}
public class Test{
public static void main(String []args){
Shelves sl=new Shelves();
Animal ai;
ai=new Cat("小白","鱼");
sl.lz[3].add(ai);//第4个笼子放只猫
sl.lz[3].check();
ai=new Dog("小黑","屎");
sl.lz[2].add(ai);//第3个笼子放只狗
sl.lz[2].check();
ai=new Snake("小青","老鼠");
sl.lz[8].add(ai);//第9个笼子放只蛇
sl.lz[8].check();
sl.cal();//统计
}
}
看了 怎么用JAVA编写宠物进笼那...的网友还看了以下:
2011CET6考试估分CET考试听力选择对19道填词3道句子0道快速阅读9道简答1道仔细阅读8道 2020-04-26 …
关于1s、2s、3s、4s原子轨道的说法,正确的是()关于1s、2s、3s、4s原子轨道的说法,正 2020-05-14 …
同一轨道上前后两列车,前车V1=10m/s,后车V2=20m/s,间距S=100m,后车刹车a2最 2020-05-21 …
设函数y=ln√[(1-x)/(1+x)],求y''│(x=0)?(注:√[(1-x)/(1+x) 2020-07-19 …
某同学进行一项闯关游戏,规则如下:游戏共三道关,闯每一道关通过,方可去闯下一道关,否则停止;同时规 2020-07-29 …
关于x的方程axpingfang+2x+1=0的两个跟同号.从这句话能知道a>0吗?如果能.是怎么 2020-07-30 …
氢原子处于基态时,原子能量E1=-13.6eV,已知电子电量e=1.6×10-19C,电子质量m=0 2020-11-06 …
关于1s、2s、3s、4s原子轨道的说法,正确的是()A.电子只能在电子云轮廓图中运动B.能层不同, 2020-11-11 …
在同一轨道上能不能有多个天体?在同一轨道上能不能有两个或者两个以上的天体.比如:在一个相当空旷的空间 2020-12-04 …
“同在跑道上赛跑,总有一个第一”。这告诉我们一个道理[]A、共同努力就能同时同步富裕B、共同富裕、全 2021-01-13 …