早教吧作业答案频道 -->其他-->
怎么用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编写宠物进笼那...的网友还看了以下:
狗的起源⑴关于狗的起源,至今没有定论。多年前,劳伦兹认为狗可能是多种犬科野生动物杂交的结果。但随着 2020-06-15 …
六年难度题,有一只狗,被绑在一处建筑物的墙角上,这个建筑物是边长6米的正方形,绑狗绳子长20米.现 2020-06-25 …
狗为什么用条做量词?人们经常说一条可几条狗,可是狗的近亲狼却是用头的,而且狮子、老虎、熊什么的也是 2020-06-30 …
关于狗的英语作文狗可以在很多方面为我们服务,请写一篇关于狗的文章.例如:宠物狗,导盲犬,搜救犬等等 2020-07-08 …
如图,一只狗用绳子被拴在一建筑物的墙角,这个建筑物是个长8米、宽6米的长方形,绳长10米,小狗可在 2020-07-11 …
请把“我最喜欢的的礼物是一条小狗,因为小狗很可爱,而且可以在我难过的时候逗我开心。小狗可请把“我最 2020-07-12 …
狗对人类非常忠诚,然而为什么带“狗”字的词几乎全是贬义词?如题,狗可以算得上是陪伴人类发展时间最长 2020-07-24 …
现在养宠物狗已成为很多人生活中的一部分,请你写一篇短文谈一谈对养宠物狗的看法,内容须含利弊两方面.提 2020-11-03 …
英语翻译1、假如我在孤岛上生存5天,我会带刀,狗和火.刀可以让我捕杀猎物或者切割东西,狗可以为我带路 2020-11-05 …
张华家的院内有一间边长是5米的正方形杂物间,他用一条长16米的绳子将狗栓杂物间的一角(O点),现在狗 2020-11-05 …