package SourceFile;
//创建动物类(父类).
public abstract class CAnimal
{
public boolean
mammal; //是不是哺乳动物
public boolean
carnivorous; //是不是食肉动物
public int
mood; //动物当前的心情(0表示心情正常,1表示心情高兴,2表示心情烦躁)
//返回boolean值表示是不是哺乳动物
public boolean isMammal(boolean flag)
{
if(flag == true)
{
System.out.println("是哺乳动物");
}else if(flag == false)
{
System.out.println("不是哺乳动物");
}
return flag;
}
//返回boolean值表示是不是食肉动物
public boolean isCarnivorous(boolean flag)
{
if(flag == true)
{
System.out.println("是食肉动物");
}else if(flag == false)
{
System.out.println("不是食肉动物");
}
return flag;
}
//改变动物当前心情的方法
public void setMood(int newValue)
{
mood = newValue;
}
//返回int表示动物当前的心情
public int getMood()
{
return mood;
}
//动物打招呼的方法,会根据心情做不同的实现
public abstract void sayHello();
//根据传入表示心情的参数作对应输出
public abstract void sayHello(int mood);
}
package SourceFile;
//创建猫类(动物类的子类属于陆行动物)
public class CCat extends CAnimal
{
public int
numberOfLegs; //表示拥有腿的数量
//两种构造方法
public CCat()
{
super();
}
public CCat(int numberOfLegs)
{
this.numberOfLegs =
numberOfLegs;
}
//重写父类的方法,会根据动物当前的心情作对应的输出
public void sayHello()
{
if(mood == 0)
{
System.out.println("猫通常情况下,和人打招呼的方式为:竖竖耳朵");
}else if(mood == 1)
{
System.out.println("猫心情好的情况下,和人打招呼的方式为:喵喵叫");
}else if(mood == 2)
{
System.out.println("猫心情烦躁的时候,会哇哇叫");
}
}
//方法重载,根据传入表示心情的参数作对应输出
public void sayHello(int
newMood)
{
if(newMood == 0)
{
System.out.println("猫通常情况下,和人打招呼的方式为:竖竖耳朵");
}else if(newMood == 1)
{
System.out.println("猫心情好的情况下,和人打招呼的方式为:喵喵叫");
}else if(newMood == 2)
{
System.out.println("猫心情烦躁的时候,会哇哇叫");
}
}
//返回int表示动物拥有腿的数量
public int
getNumberOfLegs()
{
return numberOfLegs;
}
}
package SourceFile;
//创建狗类(动物类的子类属于陆行动物)
public class CDog extends CAnimal
{
public int
numberOfLegs; //表示拥有腿的数量
//两种构造方法
public CDog()
{
super();
}
public CDog(int numberOfLegs)
{
this.numberOfLegs =
numberOfLegs;
}
//重写父类的方法,会根据动物当前的心情做对应的输出
public void sayHello()
{
if(mood == 0)
{
System.out.println("狗通常情况下,和人打招呼的方式为:摇摇尾巴");
}else if(mood == 1)
{
System.out.println("狗心情好的情况下,和人打招呼的方式为:旺旺叫");
}else if(mood == 2)
{
System.out.println("狗心情烦躁的时候,会呜呜叫");
}
}
//方法重载,根据传入表示心情的参数作对应输出
public void sayHello(int newMood)
{
if(newMood == 0)
{
System.out.println("狗通常情况下,和人打招呼的方式为:摇摇尾巴");
}else if(newMood == 1)
{
System.out.println("狗心情好的情况下,和人打招呼的方式为:旺旺叫");
}else if(newMood == 2)
{
System.out.println("狗心情烦躁的时候,会呜呜叫");
}
}
//返回int表示动物拥有腿的数量
public int getNumberOfLegs()
{
return numberOfLegs;
}
}
package SourceFile;
//创建蛙类(动物类的子类属于陆行动物和水生动物)
public class CFrog extends CAnimal
{
public int
numberOfLegs; //表示拥有腿的数量
public boolean
hasGills; //表示有没有腮
//两种构造方法
public CFrog()
{
super();
}
public CFrog(int numberOfLegs,boolean
hasGills)
{
this.numberOfLegs =
numberOfLegs;
this.hasGills = hasGills;
}
//重写父类的方法,会根据动物当前的心情作对应的输出
public void
sayHello()
{
if(mood == 0)
{
System.out.println("青蛙通常情况下,和人打招呼的方式为:眨眼睛");
}else if(mood == 1)
{
System.out.println("青蛙心情好的情况下,和人打招呼的方式为:呱呱叫");
}else if(mood == 2)
{
System.out.println("青蛙心情烦躁的时候,跳入水中");
}
}
//方法重载,根据传入表示心情的参数作对应输出
public void sayHello(int
newMood)
{
if(newMood == 0)
{
System.out.println("青蛙通常情况下,和人打招呼的方式为:眨眼睛");
}else if(newMood == 1)
{
System.out.println("青蛙心情好的情况下,和人打招呼的方式为:呱呱叫");
}else if(newMood == 2)
{
System.out.println("青蛙心情烦躁的时候,跳入水中");
}
}
//返回int表示动物拥有腿的数量
public int
getNumberOfLegs()
{
return numberOfLegs;
}
//表示水生动物的产卵方法
public void laysEggs()
{
System.out.println("产卵");
}
//返回boolean表示是不是有腮
public boolean isHasGills(boolean hasGills)
{
if(hasGills == true)
{
System.out.println("有腮");
}else if(hasGills ==
false)
{
System.out.println("没有腮");
}
return hasGills;
}
}
package SourceFile;
//创建陆行动物接口
public interface ILandAnimal
{
//返回int表示陆行动物腿的数量
int getNumberOfLegs();
}
package SourceFile;
//创建水生动物接口
public interface IWaterAnimal
{
//方法:表示能够产卵
public void laysEggs();
}
package SourceFile;
import java.util.Scanner;
public class Main
{
public static void main(String args[])
{
Scanner s = new
Scanner(System.in);
boolean flag = true;
int choice = 0;
while(flag != false)
{
System.out.println("请输入要查找的动物名称编号(1狗,2猫,3青蛙,4退出):");
choice =
s.nextInt();
if(choice ==
1)
{
//创建一个狗类的实例对象
CDog
d = new CDog(4);
System.out.print("狗");
d.isMammal(true);
System.out.print("狗");
d.isCarnivorous(true);
d.sayHello();
d.sayHello(1);
d.sayHello(2);
System.out.println("狗有"
+ d.getNumberOfLegs() + "条腿" + "\n");
}else
if(choice == 2)
{
//创建一个猫类的实例对象
CCat
c = new CCat(4);
System.out.print("猫");
c.isMammal(true);
System.out.print("猫");
c.isCarnivorous(true);
c.sayHello();
c.sayHello(1);
c.sayHello(2);
System.out.println("猫有"
+ c.getNumberOfLegs() + "条腿" + "\n");
}else
if(choice == 3)
{
//创建一个蛙类的实例对象
CFrog
f = new CFrog(4,true);
System.out.print("青蛙");
f.isMammal(false);
System.out.print("青蛙");
f.isCarnivorous(false);
f.sayHello();
f.sayHello(1);
f.sayHello(2);
System.out.print("青蛙");
f.laysEggs();
System.out.print("青蛙");
f.isHasGills(true);
System.out.println("青蛙有"
+ f.getNumberOfLegs() + "条腿" + "\n");
}else
if(choice == 4)
{
System.exit(0);
flag
= false;
}else{System.out.println("请输入1-4之间的操作编号!");}
}
}
}
项目要求:
类表述如下:
动物类: Animal
属性:
mammal
表示是不是哺乳动物boolean类型
carnivorous 表示是不是食肉动物boolean类型
mood
表示动物当前的心情int类型,0表示心情正常,1表示心情高兴,2表示心情烦躁
方法:
public boolean isMammal()
返回boolean值表示是不是哺乳动物
public boolean isCarnivorous()
返回boolean值表示是不是食肉动物
public void setMood(int newValue)
改变动物当前心情的方法
public int getMood()
返回int表示动物当前的心情
abstract public void sayHello()
动物打招呼的方法,会根据心情做不同的实现
abstract public void sayHello(int mood) 根据传入表示心情的参数作对应输出
陆行动物接口:LandAnimal
方法: int
getNumberOfLegs()
返回int表示陆行动物腿的数量
水生动物接口:WaterAnimal
方法: void
laysEggs()
表示能够产卵
狗类:Dog
是动物类的子类并属于陆行动物
属性:
int numberOfLegs
表示拥有腿的数量
方法:
Dog()
构造方法,可以自行重载
void sayHello()
重写父类的方法,会根据动物当前的心情做对应的输出
void sayHello(int newMood) 方法重载,根据传入表示心情的参数作对应输出
int getNumberOfLegs()
返回int表示动物拥有腿的数量
猫类:Cat
是动物类的子类并属于陆行动物
属性:
int numberOfLegs
表示拥有腿的数量
方法:
Cat()
构造方法,可以自行重载
void sayHello()
重写父类的方法,会根据动物当前的心情作对应的输出
void sayHello(int newMood) 方法重载,根据传入表示心情的参数作对应输出
int getNumberOfLegs()
返回int表示动物拥有腿的数量
蛙类:Frog
是动物类的子类,属于陆行动物同时也属于水生动物
属性:
int numberOfLegs
表示拥有腿的数量
boolean hasGills
表示有没有腮
方法:
Frog ()
构造方法,可以自行重载
void sayHello()
重写父类的方法,会根据动物当前的心情作对应的输出
void sayHello(int newMood) 方法重载,根据传入表示心情的参数作对应输出
int getNumberOfLegs()
返回int表示动物拥有腿的数量
void laysEggs()
表示水生动物的产卵方法
boolean isHasGills()
返回boolean表示是不是有腮
类图表述如下:
问题描述:
1. 实现各个类,及他们之间的关系
2. 创建各个类(猫,狗,青蛙)输出他们的状态及不同心情下打招呼的行为
3. 创建程序使用编写的各个类,将结果输出。效果如下:
狗是哺乳动物
狗是食肉动物
狗通常情况下,和人打招呼的方式为:摇摇尾巴
狗心情好的情况下,和人打招呼的方式为:旺旺叫
狗心情烦躁的时候,会呜呜叫
狗有4条退
如果是蛙类则输出:
青蛙不是哺乳动物
青蛙不是食肉动物
青蛙通常情况下,和人打招呼的方式为:眨眼睛
青蛙心情好的情况下,和人打招呼的方式为:呱呱叫
青蛙心情烦躁的时候,跳入水中
青蛙产卵
青蛙有腮
青蛙有4条腿