早教吧 育儿知识 作业答案 考试题库 百科 知识分享

怎么用JAVA编写宠物进笼那道题啊?题目如下;急需谢谢,有很多地方不明白。Annie的宠物小屋里有12个笼子,每个笼子可以放不同的动物,包括猫,狗和蛇,但同一时刻一个笼子只能放0只

题目详情
怎么用JAVA 编写 宠物进笼 那道题啊?题目如下;急需谢谢,有很多地方不明白。
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();//统计
}
}