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

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. Ch2. Loop Structure

    Ex Input some integers and output their min, max and average values (keep three decimal places). It ...

  2. Android Studio的两种模式及签名配置

    我们使用Android Studio 运行我们的app,无非两种模式:debug和release模式. debug模式 debug模式使用一个默认的debug.keystore进行签名. 这个默认签名 ...

  3. GPUImage的filter 响应处理链 的理解笔记

    GPUImage的filter的textures处理链式结构 两个最重要的的地方: 最重要的一个类GPUImageOutput(所有的filter的父类,其他也有继承它的,如GPUImageUIEle ...

  4. 原生ajax异步请求基础知识

    一.同步交互与异步交互的概念: * 同步交互:客户端向服务器端发送请求,到服务器端进行响应,这个过程中,用户不能做任何其他事情(只能等待响应完才能继续其他请求). * 异步交互:客户端向服务器端发送请 ...

  5. php 数据访问基础

    <?php // 创建数据库连接 $con = mysql_connect("localhost",'root','') or die('error:'.mysql_erro ...

  6. Jquery取属性值(复选框、下拉列表、单选按钮)、做全选按钮、JSON存储、去空格

    1.jquery取复选框的值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  7. springmvc 之 深入核心研究

    一.前言:二.核心类与接口:三.核心流程图四.DispatcherServlet说明五.双亲上下文的说明六.springMVC-mvc.xml 配置文件片段讲解 七.如何访问到静态的文件,如jpg,j ...

  8. 关于TAR ZXVF命令解释

    分别是四个参数x : 从 tar 包中把文件提取出来z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压v : 显示详细信息f xxx.tar.gz : 指定被处理的 ...

  9. 版本控制工具svn的安装与简单使用

    版本控制工具多用于多人协作开发项目中,这不同于个人开发项目,想把自己代码怎样放置都可以,而且删除了代码很难查找. 版本控制工具类似于个人处理钱的过程,放于自己口袋管理类似于个人开发情形,如果自己钱丢了 ...

  10. CSS Why

    前面的话 在CSS学习目录中,已经详细地介绍了CSS如何使用.知其然,还要知其所以然.本文将介绍CSS各部分出现的原因,仅限个人理解,如有不妥,欢迎交流 Why CSS 早期的大多数网站标记几乎完全由 ...