代码改变生活,代码改变世界!

OOP编程特性综合项目

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条腿


 


 

posted @ 2016-04-14 21:26  EnjoyLifeXK  阅读(260)  评论(0编辑  收藏  举报