先定一个宠物的抽象类,把所有共有的属性方法放到次类中,用于子类去继承实现。

  1. package backing2;
  2.  
  3. abstract public class pet {
  4. private String name;
  5. private String sex;
  6. private int age;
  7. private int helthy;
  8. private int happy;
  9. private int hungry;
  10. private boolean alive;
  11.  
  12. public abstract void play();
  13. public abstract void yiyuango();
  14. public abstract void youeryuango();
  15. public abstract void youlechanggo();
  16. public abstract void eat();
  17.  
  18. public pet(String name, String sex) {
  19. super();
  20. this.name = name;
  21. this.sex = sex;
  22. this.age=1;
  23. this.helthy=100;
  24. this.happy=80;
  25. this.hungry=70;
  26. System.out.println("宠物名字:"+this.name+"\n"+" 性别:"+this.sex+"\t"+"年龄"+this.age+"健康值"+this.helthy+"饥饿值"+this.hungry);
  27. }
  28. public String getName() {
  29. return name;
  30. }
  31. public void setName(String name) {
  32. this.name = name;
  33. }
  34. public String getSex() {
  35. return sex;
  36. }
  37. public void setSex(String sex) {
  38. this.sex = sex;
  39. }
  40. public int getAge() {
  41. return age;
  42. }
  43. public void setAge(int age) {
  44. this.age = age;
  45. }
  46. public int getHelthy() {
  47. return helthy;
  48. }
  49. public void setHelthy(int helthy) {
  50. this.helthy = helthy;
  51. }
  52. public int getHappy() {
  53. return happy;
  54. }
  55. public void setHappy(int happy) {
  56. this.happy = happy;
  57. }
  58. public int getHungry() {
  59. return hungry;
  60. }
  61. public void setHungry(int hungry) {
  62. this.hungry = hungry;
  63. }
  64. public boolean isAlive() {
  65. return alive;
  66. }
  67. public void setAlive(boolean alive) {
  68. this.alive = alive;
  69. }
  70. }

  再分别定义宠物继承小类,子类实现重写父类的所有方法,注意:方法的权限修饰符不能小于父类的权限修饰符,在子类中再定义一个方法在每次使用每个方法的时候去判断一下宠物的几个属性值

  1. package backing2;
  2.  
  3. public class qie extends pet {
  4. public qie(String name, String sex) {
  5. super(name, sex);
  6. // TODO Auto-generated constructor stub
  7. }
  8.  
  9. @Override
  10. public void play() {
  11. System.out.println("小企鹅蹦蹦跳跳的玩去了");
  12. this.setHappy(getHappy()+5);
  13. check();
  14. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  15. }
  16.  
  17. @Override
  18. public void yiyuango() {
  19. System.out.println("小企鹅蔫蔫的去医院了");
  20. this.setHelthy(getHelthy()+20);
  21. check();
  22. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  23. }
  24.  
  25. @Override
  26. public void youeryuango() {
  27. System.out.println("小企鹅高高兴兴去上学");
  28. this.setHungry(getHungry()+10);
  29. this.setHappy(getHappy()+5);
  30. check();
  31. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  32. }
  33.  
  34. @Override
  35. public void youlechanggo() {
  36. System.out.println("小企鹅欢欢乐乐的去游乐场");
  37. this.setHappy(getHappy()+10);
  38. check();
  39. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  40. }
  41.  
  42. @Override
  43. public void eat() {
  44. System.out.println("小企鹅吃鱼<。)#)))≦了");
  45. this.setHungry(getHungry()-30);
  46. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  47. }
  48. public void check(){
  49.  
  50. if(this.getHappy()<5||this.getHungry()>90||this.getHelthy()<5){
  51. System.out.println("您的宠物该去医院了") ;
  52. }
  53. this.getAge();
  54. }
  55. }
  56.  
  57. package backing2;
  58.  
  59. public class tuzi extends pet {
  60.  
  61. public tuzi(String name, String sex) {
  62. super(name, sex);
  63. // TODO Auto-generated constructor stub
  64. }
  65.  
  66. @Override
  67. public void play() {
  68. check();
  69. System.out.println("小兔子蹦蹦跳跳的玩去了");
  70. this.setHappy(getHappy()+5);
  71. check();
  72. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  73. }
  74.  
  75. @Override
  76. public void yiyuango() {
  77. check();
  78. System.out.println("小兔子蔫蔫的去医院了");
  79. this.setHelthy(getHelthy()+20);
  80. check();
  81. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  82. }
  83.  
  84. @Override
  85. public void youeryuango() {
  86. check();
  87. System.out.println("小兔子高高兴兴去上学");
  88. this.setHungry(getHungry()+10);
  89. this.setHappy(getHappy()+5);
  90. check();
  91. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  92. }
  93.  
  94. @Override
  95. public void youlechanggo() {
  96. check();
  97. System.out.println("小兔子欢欢乐乐的去游乐场");
  98. this.setHappy(getHappy()+10);
  99. check();
  100. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  101. }
  102.  
  103. @Override
  104. public void eat() {
  105. check();
  106. System.out.println("小兔子吃萝卜了");
  107. this.setHungry(getHungry()-30);
  108. System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
  109.  
  110. }
  111. public void check(){
  112.  
  113. if(this.getHappy()<5||this.getHungry()>90||this.getHelthy()<5){
  114. System.out.println("您的宠物该去医院了") ;
  115. }
  116. this.getAge();
  117. }
  118. }

 最后定义一个运行类,运行类里定义一个静态方法用来输出提示信息 

  1. package backing2;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class testpet {
  6.  
  7. public static void main(String[] args) {
  8. Scanner s=new Scanner(System.in);
  9. System.out.println("请输入您要选择的宠物");
  10. System.out.println("1--兔子");
  11. System.out.println("2--企鹅");
  12. pet p=null;
  13. String s1=s.nextLine();
  14. if("1".equals(s1)){
  15. System.out.print("请输入您的宠物名字");
  16. String s2=s.nextLine();
  17. System.out.print("请输入您的宠物性别");
  18. String s3=s.nextLine();
  19. p=new tuzi(s2,s3);
  20. }else if("2".equals(s1)){
  21. System.out.print("请输入您的宠物名字");
  22. String s2=s.nextLine();
  23. System.out.print("请输入您的宠物性别");
  24. String s3=s.nextLine();
  25. p=new tuzi(s2,s3);
  26. }else{
  27. System.out.println("其他宠物正在孵化中。。");
  28. }
  29. boolean falg=true;
  30. while(falg){
  31. testpet.tishi();
  32. String s5=s.nextLine();
  33. if("1".equals(s5)){
  34. p.play();
  35. }else if("2".equals(s5)){
  36. p.yiyuango();
  37. }else if("3".equals(s5)){
  38. p.youlechanggo();
  39. }else if("4".equals(s5)){
  40. p.eat();
  41. }else if("5".equals(s5)){
  42. p.youeryuango();
  43. }else if("exit".equals(s5)){
  44. falg=false;
  45. }else{
  46. System.out.println("请按要求来好吗");
  47. }
  48. }s.close();
  49. }
  50. public static void tishi(){
  51. System.out.println("跟宠物进行友好的交流。。");
  52. System.out.println("1--与宠物玩");
  53. System.out.println("2--陪宠物去医院");
  54. System.out.println("3--陪宠物去游乐场");
  55. System.out.println("4--陪宠物去吃饭饭");
  56. System.out.println("5--送宠物去幼儿园");
  57. System.out.println("exit--退出");
  58.  
  59. }
  60. }

  

java宠物练习的更多相关文章

  1. java 宠物商店代码

    Pet.java interface Pet{ public String getName(); public String getColor(); public int getAge(); publ ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. Java实验项目三——宠物商店

    Program:宠物商店的设计(继承,接口,线性线性表) Description:本题未实现图形用户界面,项目结构描述如下: classes.Pet:定义宠物接口,只要实现该接口的宠物类,都可存储进宠 ...

  4. Java实例分析:宠物商店

    设计一个“宠物商店”,在宠物商店中可以有多种宠物,试表示出此种关系,并要求可以根据宠物的关键字查找相应的宠物信息. //======================================== ...

  5. Java实例---简单的宠物管理系统

    代码分析 Cat.java package com.ftl.petshop; class Cat implements Pet { private String name; private Strin ...

  6. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:宠物商店实例分析

    interface Pet{ // 定义宠物接口 public String getName() ; public String getColor() ; public int getAge() ; ...

  7. 使用Java实现数据库编程 项目(宠物商店)

    创建数据库代码: DROP DATABASE IF EXISTS petShop; CREATE DATABASE petShop; USE petShop; /*创建表*/ CREATE TABLE ...

  8. java基础知识总结(1)

    定义类: 访问修饰符 class 类名{ }   访问修饰符如:public .priate是可选的 class是声明类的关键字 按照命名规范,类名首字母大写   例:创建“人”类,关键代码: pub ...

  9. Java中PreparedStatement与Statement的总结

    概要: PreparedStatement 接口继承自 Statement 接口,PreparedStatement 比普通Statement 对象使用起来更加灵活,更有效率. 一.PreparedS ...

随机推荐

  1. spring异常处理器

    一.本篇文章旨在讨论异常处理器: 1.因为异常处理器在实战中通常用来处理开发人员自定义的运行时异常,所以如果要了解如何自定义运行时异常,请自行搜索相关资料. 2.本文的demo用IndexOutOfB ...

  2. 如何添加自己封装的代码到Cocoapod

    这两天学习了如何添加自己封装的代码到Cocoapod中 以下是我这两天遇到的各种坑: 旧的方法:  http://my.oschina.net/u/727843/blog/392784 这个看看可以大 ...

  3. JDBC的批处理操作三种方式

    SQL批处理是JDBC性能优化的重要武器,批处理的用法有三种. package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import ...

  4. zookeeper源码分析-版本生成

    zookeeper版本生成规则: min - minor version number micro - minor minor version number qualifier - optional ...

  5. 20+行代码使用es5 Object.defineProperty 实现简单的watch功能

    /** * 一个简单的demo 帮助理解defineProperty,只对Object类型参数有效 */ $watch=function(myObject,callback){ function in ...

  6. js中的函数

    [函数的声明及调用] 基础知识 1.函数声明的格式: function 函数名(参数1,参数2,....){ //函数体 return 结果: } >>>函数调用的格式: 直接调用: ...

  7. 【JavaScript学习】-JS内置对象2-Data对象

    Date对象: Data对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义: //默认初始值定义: var dataName=new Date(); /*使用关键字new;Da ...

  8. 架构漫谈系列(2) 封装(Encapsulation)

    这是这个系列的第二篇.在第二篇里,我决定讲一讲封装. 程序的不同部分应该用封装去互相隔离,模块之间应该不应该产生很随意的关联. 可能有的人觉得不解,又或觉得是有道理的废话,不急,先一步一步来. 我们先 ...

  9. json字符串转成数组

    $hour_23 json_decode($hour_23,true);//(第二个参数为true的时候)

  10. html页面多个a标签点击时显示不同的样式

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...