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

package backing2;

abstract public class pet {
private String name;
private String sex;
private int age;
private int helthy;
private int happy;
private int hungry;
private boolean alive; public abstract void play();
public abstract void yiyuango();
public abstract void youeryuango();
public abstract void youlechanggo();
public abstract void eat(); public pet(String name, String sex) {
super();
this.name = name;
this.sex = sex;
this.age=1;
this.helthy=100;
this.happy=80;
this.hungry=70;
System.out.println("宠物名字:"+this.name+"\n"+" 性别:"+this.sex+"\t"+"年龄"+this.age+"健康值"+this.helthy+"饥饿值"+this.hungry);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getHelthy() {
return helthy;
}
public void setHelthy(int helthy) {
this.helthy = helthy;
}
public int getHappy() {
return happy;
}
public void setHappy(int happy) {
this.happy = happy;
}
public int getHungry() {
return hungry;
}
public void setHungry(int hungry) {
this.hungry = hungry;
}
public boolean isAlive() {
return alive;
}
public void setAlive(boolean alive) {
this.alive = alive;
}
}

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

package backing2;

public class qie extends pet {
public qie(String name, String sex) {
super(name, sex);
// TODO Auto-generated constructor stub
} @Override
public void play() {
System.out.println("小企鹅蹦蹦跳跳的玩去了");
this.setHappy(getHappy()+5);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void yiyuango() {
System.out.println("小企鹅蔫蔫的去医院了");
this.setHelthy(getHelthy()+20);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void youeryuango() {
System.out.println("小企鹅高高兴兴去上学");
this.setHungry(getHungry()+10);
this.setHappy(getHappy()+5);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void youlechanggo() {
System.out.println("小企鹅欢欢乐乐的去游乐场");
this.setHappy(getHappy()+10);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void eat() {
System.out.println("小企鹅吃鱼<。)#)))≦了");
this.setHungry(getHungry()-30);
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
}
public void check(){ if(this.getHappy()<5||this.getHungry()>90||this.getHelthy()<5){
System.out.println("您的宠物该去医院了") ;
}
this.getAge();
}
} package backing2; public class tuzi extends pet { public tuzi(String name, String sex) {
super(name, sex);
// TODO Auto-generated constructor stub
} @Override
public void play() {
check();
System.out.println("小兔子蹦蹦跳跳的玩去了");
this.setHappy(getHappy()+5);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void yiyuango() {
check();
System.out.println("小兔子蔫蔫的去医院了");
this.setHelthy(getHelthy()+20);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void youeryuango() {
check();
System.out.println("小兔子高高兴兴去上学");
this.setHungry(getHungry()+10);
this.setHappy(getHappy()+5);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void youlechanggo() {
check();
System.out.println("小兔子欢欢乐乐的去游乐场");
this.setHappy(getHappy()+10);
check();
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry());
} @Override
public void eat() {
check();
System.out.println("小兔子吃萝卜了");
this.setHungry(getHungry()-30);
System.out.println("健康值"+this.getHelthy()+"心情值"+this.getHappy()+"饥饿值"+this.getHungry()); }
public void check(){ if(this.getHappy()<5||this.getHungry()>90||this.getHelthy()<5){
System.out.println("您的宠物该去医院了") ;
}
this.getAge();
}
}

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

package backing2;

import java.util.Scanner;

public class testpet {

	public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入您要选择的宠物");
System.out.println("1--兔子");
System.out.println("2--企鹅");
pet p=null;
String s1=s.nextLine();
if("1".equals(s1)){
System.out.print("请输入您的宠物名字");
String s2=s.nextLine();
System.out.print("请输入您的宠物性别");
String s3=s.nextLine();
p=new tuzi(s2,s3);
}else if("2".equals(s1)){
System.out.print("请输入您的宠物名字");
String s2=s.nextLine();
System.out.print("请输入您的宠物性别");
String s3=s.nextLine();
p=new tuzi(s2,s3);
}else{
System.out.println("其他宠物正在孵化中。。");
}
boolean falg=true;
while(falg){
testpet.tishi();
String s5=s.nextLine();
if("1".equals(s5)){
p.play();
}else if("2".equals(s5)){
p.yiyuango();
}else if("3".equals(s5)){
p.youlechanggo();
}else if("4".equals(s5)){
p.eat();
}else if("5".equals(s5)){
p.youeryuango();
}else if("exit".equals(s5)){
falg=false;
}else{
System.out.println("请按要求来好吗");
}
}s.close();
}
public static void tishi(){
System.out.println("跟宠物进行友好的交流。。");
System.out.println("1--与宠物玩");
System.out.println("2--陪宠物去医院");
System.out.println("3--陪宠物去游乐场");
System.out.println("4--陪宠物去吃饭饭");
System.out.println("5--送宠物去幼儿园");
System.out.println("exit--退出"); }
}

  

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. 框架和css基础

    框架:一.框架集:1.<frameset></frameset>不能有<body>标签 属性:1)cols:把网页拆分成几列(左右拆分)eg:<framese ...

  2. (转)java web 学习之路(学习顺序)

    第一步:学习HTML和CSS HTML(超文本标记语言)是网页的核心,学好HTML是成为Web开发人员的基本条件.HTML很容易学习的,但也很容易误用,要学精还得费点功夫. 随着HTML5的发展和普及 ...

  3. Mybatis配置(一)

    1.导入Mybatis包 2.得到SqlSession来访问数据库 /** * 访问数据库 */public class DBAccess {          public SqlSession g ...

  4. 对于JSONObject,我只是临时抱佛脚

    说起JSON,大家就谈不上陌生了,因为对于数据传输语言,各位只认json,即使有XML语言,但是各位很少用吧.我也是,但是之前用过的json转换工具各种各样,我记忆中有过GSON(google).fa ...

  5. 如何在phpstorm中安装xdebug调试工具

    用习惯了Visio Studio的调试工具,如果写个php用phpstorm没有调试工具,觉得还缺点什么.接下来就讲解一下如果安装xdebug,最好发现这个插件真好用! 1.下载xdebug.tar: ...

  6. Docker Machine 详解

    笔者在<Docker Machine 简介>一文中简单介绍了 Docker Machine 及其基本用法,但是忽略的细节实在是太多了.比如 Docker 与 Docker Machine ...

  7. Linux编程之有限状态机FSM的理解与实现

    有限状态机(finite state machine)简称FSM,表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用.FSM是一种逻辑单元内部的一种高效编程方法,在 ...

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

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

  9. 使用zabbix_agent监控第一台linux服务器

    添加zabbix用户和组 groupadd zabbix useradd -g zabbix zabbix 解压并编译安装 tar xf zabbix-3.2.1.tar.gz cd zabbix-3 ...

  10. H5个性三级联动日期插件(一)

    1. 先看效果:如图 2.如果跟你的需求一样的话,那就抓紧down(当)起来吧! 首先你的页面可能需要很多的开发需求文件: jquery,mobiscroll 等js框架插件等 自己参照官方的demo ...