Java面向對象的練習。動物樂園


本次項目是:以面向對象的思想設計動物樂園系統。 動物樂園中有貓,狗,鴨子等成員,還可以增加新成員。 貓和鴨子都有自己的名字,都有自己的腿,但腿的條數不同,貓和鴨子會發出叫聲,貓的叫聲是:喵喵喵……,鴨子的,本文添加的是貓,狗,海豚

首先先建立一個父類(動物類),定義的是姓名,

/**
* 父類,動物類
* @author liuchunyong
*
*/
public abstract class Animal {
private String name;

public Animal() {

}
public Animal(String name){
this.name=name;
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
public abstract String shout();//動物叫
}

/**

*再次定義一個接口,定義腿的數量,接口的作用為規范你使用這個接口那就必須存在他定義的方法

 

*/

public interface Terrestrial {//關於腿的定義

public int gerLegNum() ;


}

//下面就是定義貓,狗,繼承父類並且繼承接口,海豚沒腿所以只是繼承父類

 

/*
* 貓類
*/
public class Cat extends Animal implements Terrestrial {
private int LegNum;
public Cat(){

}
public Cat(String name,int LegNum) {
super(name);
this.LegNum=LegNum;

}

public int getLegNum() {
return LegNum;
}

public void setLegNum(int legNum) {
LegNum = legNum;
}


public String shout() {
return "喵喵喵.......";
}
public int gerLegNum() {

return LegNum;
}

}

 

 

//狗

public class Dog extends Animal implements Terrestrial {
private int LegNum;
public Dog(){

}
public Dog(String name,int LegNum) {
super(name);
this.LegNum=LegNum;
}

public int getLegNum() {
return LegNum;
}

public void setLegNum(int legNum) {
LegNum = legNum;
}

public String shout() {
return "汪汪汪........ ";
}
@Override

public int gerLegNum() {

return LegNum;
}

}

 

//海豚類

public class Dolphin extends Animal {
private static int legNum=0;

public static int getLegNum() {
return legNum;
}
public static void setLegNum(int legNum) {
Dolphin.legNum = legNum;
}
public Dolphin(String name){
super(name);

}
public String shout() {
return "海豚叫.......";
}

}

 

 

 

/**

*下面我們在定義一個類,存放我們的數字,並且定義顯示動物方法,修改方法

*/

import java.util.*;

public class AnimalMgr {

Scanner input=new Scanner(System.in);

Animal[] an=new Animal[3];

//初始化數據

int choose;//定義是否輸入為零,退出

public void init(){//動物信息

//Animal[] an=new Animal[3];
an[0]=new Cat("加菲貓",4);
an[1]=new Dog("旺財",4);
an[2]=new Dolphin("海豚奇奇");
}

//展示所有動物的信息

public void showAnimals(){

System.out.println("動物名字"+"\t\t腿的條數:"+"\t\t動物叫");
for(int i=0;i<an.length;i++){
if(an[i] instanceof Cat){
Cat aa=(Cat)an[i];
System.out.println(aa.getName()+"\t\t"+aa.getLegNum()+"\t\t"+aa.shout());
}else if(an[i] instanceof Dog){
Dog bb=(Dog)an[i];
System.out.println(bb.getName()+"\t\t"+bb.getLegNum()+"\t\t"+bb.shout());

}else if(an[i] instanceof Dolphin){
Dolphin cc=(Dolphin)an[i];

System.out.println(cc.getName()+"\t\t"+cc.getLegNum()+"\t\t"+cc.shout());

}

}

System.out.println("是否要繼續操作:按0進行修改操作,其它任意數字退出");

choose=input.nextInt();

}
//修改數據
public void ModifyAnimal() throws Exception {//自定義手動拋出異常

String[] names=new String[3];

int[] nums=new int[2];

System.out.println("請輸入貓的名字:");

names[0]=input.next();

System.out.println("請輸入貓的腿數:");

nums[0]=input.nextInt();

if(nums[0]!=4){

throw new Exception("貓只有四條腿");

}

System.out.println("請輸入狗的名字:");

names[1]=input.next();

System.out.println("請輸入狗的腿數:");

nums[1]=input.nextInt();

if(nums[1]!=4){

throw new Exception("狗只有四條腿");

}
System.out.println("請輸入海豚的名字:");
names[2]=input.next();
//接受鍵盤輸入的值
an[0]=new Cat(names[0],nums[0]);
an[1]=new Dog(names[1],nums[1]);
an[2]=new Dolphin(names[2]);


}

}

//最后建立一個測試的類,來顯示給用戶

import java.util.Scanner;

public class Test {

public static void main(String[] args){
AnimalMgr am=new AnimalMgr();
am.init();
//循環數據
do{
am.showAnimals();//顯示數據
if(am.choose==0)
try {
am.ModifyAnimal();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}while(am.choose==0);
System.out.println("謝謝使用,退出程序!!");


}

}

 

有參考博客: https://blog.csdn.net/ruiguang21/article/details/52793839


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM