动物乐园包括的成员:猫、鸭子……

属性:名称、腿            方法:叫

设计类图

再加入一个海豚类:

需求说明:

1. 分别创建Cat、Duck、Dolphin对象并放到一个数组中,编写方法对数组进行遍历输出各种动物如何叫

2. 对数组进行遍历输出各种动物腿的条数

3. 增加修改功能,使用户可以修改三种动物的信息

4. 如果腿的条数不符合客观条件则手动抛出异常,调用此方法时捕捉异常

编程实现:

1. 动物类

//动物类
public abstract class Animal {//定义名字和腿数类型private String name;private int legNum;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getLegNum() {return legNum;}public void setLegNum(int legNum) {this.legNum = legNum;}public Animal() {}public Animal(String name, int legNum) {this.name = name;this.legNum = legNum;}
//动物叫的抽象方法public abstract String shout();
}

2. 子类猫类

//子类猫类
public class Cat extends Animal {public Cat(){}public Cat(String name,int legNum){super(name,legNum);}public String shout() {return "喵喵喵...";}}

3. 子类鸭子类

//子类鸭子类
public class Duck extends Animal {public Duck(){}public Duck(String name,int legNum){super(name,legNum);}public String shout() {return "嘎嘎嘎...";}
}

4. 子类海豚类

//子类海豚类
public class Dolphin extends Animal {public Dolphin(){}public Dolphin(String name,int legNum){super(name,legNum);}public String shout() {return "海豚音...";}}

5. 用户类:定义显示、修改、判断等方法

import java.util.Scanner;
//用户类:定义显示、修改、判断等方法
public class Custom {Scanner input = new Scanner(System.in);int xiugai;//判断是否修改String newName;//修改后的新名字Animal cat = new Cat();Animal duck = new Duck();Animal dolphin = new Dolphin();//定义Animal数组存进去各种动物信息Animal[] animal ={new Cat("加菲猫",4),new Duck("唐小鸭",2),new Dolphin("海豚奇奇",0)};//输出所有动物信息public void xianshi(){System.out.println("动物名字\t腿的条数\t动物叫");for(int i=0;i<animal.length;i++){System.out.println(animal[i].getName()+"\t"+animal[i].getLegNum()+"\t"+animal[i].shout());}}//修改想要修改的动物信息public void xiugai(String oldName,String newName,int legNum) throws Exception{if(oldName.equals(animal[0].getName())){if(legNum==4){animal[0].setName(newName);}else{throw new Exception("猫有4条腿");}}else if(oldName.equals(animal[1].getName())){if(legNum==2){animal[1].setName(newName);  }else{throw new Exception("鸭有2条腿");}}else if(oldName.equals(animal[2].getName())){if(legNum==0){animal[2].setName(newName);}else{throw new Exception("海豚没有腿");}}System.out.println("是否要继续修改数据:按0进行修改,其他任意数字键退出");xiugai= input.nextInt();}//判断想要填入的新的动物信息是否重复public void panduan(){boolean pan = false;String new1Name;do{System.out.println("请输入修改后的动物名称:");new1Name=input.next();for(int i = 0;i<animal.length;i++){if(animal[i].getName().equals(new1Name)){System.out.println("输入错误请重新输入");pan = true;}else{pan = false;}}}while(pan == true);newName = new1Name;}
}

6. 测试类

import java.util.Scanner;
//测试类
public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);Custom c = new Custom();do{c.xianshi();System.out.println("请输入要修改的动物姓名:");String oldName=input.next();c.panduan();System.out.println("这个动物有几条腿:");int legNum=input.nextInt();try {c.xiugai(oldName, c.newName, legNum);} catch (Exception e) {e.printStackTrace();}}while(c.xiugai==0);if(c.xiugai !=0 ){System.out.println("谢谢使用!");}}
}

面向对象思想设计简单动物乐园Java程序相关推荐

  1. 面向对象综合练习题(动物乐园)

    动物乐园 任务描述: 以面向对象思想设计动物乐园系统 动物乐园包括的成员:猫.鸭子,海豚,-- 属性:名称.腿 方法:叫 设计类图 使用多态.接口优化设计 编码实现 分别创建Cat.Duck.Dolp ...

  2. 面向对象思想设计原则及常见设计模式

    面向对象思想设计原则 •在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 •单一职责原则 •开闭原则 •里氏替换原则 •依赖注入原则 •接口分离原则 • ...

  3. java编写动物乐园_Java面向对象的练习。动物乐园

    本次项目是:以面向对象的思想设计动物乐园系统. 动物乐园中有猫,狗,鸭子等成员,还可以增加新成员. 猫和鸭子都有自己的名字,都有自己的腿,但腿的条数不同,猫和鸭子会发出叫声,猫的叫声是:喵喵喵--,鸭 ...

  4. 用面向对象思想实现计算器功能(Java版)

    /*** 使用面向对象思想实现计算器的功能,要求实现加减乘除*/ import java.util.Scanner; public class TestCalculator {public stati ...

  5. 用面向对象思想设计一个中国邮政储蓄银行类

    定义一个中国邮政储蓄银行类, 属性:账号.密码.存款余额,银行名称. 方法:注册账号.存款.取款.查询. 创建该类对象并测试注册账号,存钱,取钱查询操作 要求:使用面向对象思想设计程序 public ...

  6. 如何设计java线程安全类_如何设计线程安全的Java程序

    什么是线程安全的(thread-safe)? 在java中,线程安全的指的是代码可以在并发的或者多线程的环境下安全的使用或者共享,并且它们都将按照期望的方式运行.任何代码,类或者对象,如果它们在并发的 ...

  7. 面向对象思想设计原则

    设计模式:经验的总结,本质是一个思想,和具体的语言无关 分为创建型设计模式.结构型设计模式.行为型设计模式,共23个模式 创建型设计模式: 创建对象  6个   如简单工厂模式.工厂模式.单例模式 结 ...

  8. 动物乐园java_利用面向对象、接口编写动物乐园

    动物园的管理:1.初始化数据2.展示动物信息3.修改动物信息 /** * 动物园的管理:1.初始化数据2.展示动物信息3.修改动物信息 * **/ import java.util.*; public ...

  9. java编写动物乐园_编写动物乐园java,满意会加分的!!!

    展开全部 public class Animal { public String name; public int legs; public String sound; public Animal(S ...

最新文章

  1. 为什么交叉熵和KL散度在作为损失函数时是近似相等的
  2. where()函数的用法
  3. Dubbo架构设计详解--转载
  4. #1413 : Rikka with String 后缀自动机 + 二级差分
  5. 记一次对某企业的渗透测试实战
  6. 360漏洞更新后系统进不去
  7. Qt 独立运行时伴随CMD命令窗口
  8. vueh5调用摄像头拍照_潜望式拍照5G手机盘点:售价相差数千元 究竟怎么选?
  9. ICP算法与Kdtree
  10. python修改字体无效_matplotlib中修改默认字体
  11. windows ghost系统下载
  12. 有人在远程使用计算机是什么意思,如何远程控制计算机,计算机远程控制有什么用途...
  13. SQL存储过程对象名无效
  14. 世界各国GDP排名(1960-2018)
  15. 深度:蚂蚁金融科技全面开放战略背后的技术布局
  16. 递归计算 1 - 100 的和
  17. 简化版SAAS——业务开单选择材料,选择的是库存是40的货品,实际出库的是-38的货品
  18. php工单流程图,工单管理系统的业务流程是怎样的?
  19. 使用反射生成 JDK 动态代理
  20. Android4.1 如何实现状态栏上信号图标有SIM卡1,2标记,并且当处于2G状态显示“G”,处于3G状态显示“3G”

热门文章

  1. 阿里面试官:双亲委派都不懂就来面Java?
  2. 听觉漫游·全情沉浸: 诺音曼携手杜比实验室开启沉浸声体验之旅
  3. 【数据聚类|深度聚类】Contrastive Clustering(CC)论文研读
  4. 弘辽科技:新宝贝如何快速打爆手淘首页流量。
  5. GOM-设置人物伤害吸收
  6. 学会“放弃与妥协”,学会“自我牺牲”,学会“善待痛苦”
  7. httpie 101
  8. 【页面不丢失】 三传参 随便传
  9. 【2022最新Java面试宝典】—— SpringCloud面试题(49道含答案)
  10. 初学java-----画板