java宠物练习

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

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--退出");

   }
}

  

时间: 2024-10-10 22:56:28

java宠物练习的相关文章

梦断编码阅读笔记02

曾经,史蒂夫.乔布斯游说时任百事可乐首席执行官的约翰.史考利加入苹果公司时,问后者是愿意毕生“卖甜汽水”呢,还是愿意过来制造电脑.改变世界呢.听得多了,你可能会感觉这话天真的就像是天方夜谭一样,可是程序员们却需要这样的鼓励.或许,这种现象的原因就是编程的辛劳以及挫败感吧.与令人畏惧的抽象建模较劲,或许面对蜂拥而至的缺陷的大军,唯有万丈雄心能助你艰难前行.所以说,程序员需要梦想,在我们的编程道路上,我们也可以把我们战胜C++哥布林,驯服java宠物的事迹写进我们的日记里,这样我们可以走的更远,看得

面向接口编程的小例子

以前学习Java的时候,就听过面向接口编程,可惜当时水平太低不理解(当然,现在水平还是很低),现在学习了一点.接下来,我们通过一个小例子学习面向接口编程. 背景:假设每个单身狗都喜欢和蚊子玩,蚊子有一个唱歌的方法.代码如下: //Mosquito.java //蚊子类,拥有一个唱歌的方法 package project.app.service; public class Mosquito { public String sing() { return "You have to admit tha

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

代码分析 Cat.java 1 package com.ftl.petshop; 2 3 class Cat implements Pet 4 { 5 private String name; 6 private String color; 7 private int age; 8 public Cat(String name, String color, int age) 9 { 10 this.name = name; 11 this.color = color; 12 this.age =

java的类和对象

创建狗狗类: 1 /** 2 * 狗狗类 3 * @author Administrator 4 * 5 */ 6 public class Dog { 7 String name="无名氏"; //姓名 8 int health=0; //健康值 9 int love=0; //亲密度度 10 String strain="聪明的拉布拉多犬"; //品种 11 12 /** 13 * 输出狗狗信息 14 */ 15 public void print(){ 16

Java之接口

1.接口概述 我们知道一般狗就是看门,而猫一般是作为宠物的.但是,现在有很多的驯养员和驯兽师,可以训练出:猫钻火圈和狗跳高以及狗做计算等.而这些额外的动作,并不是所有猫或狗一开始就具备的.这应该属于经过特殊的培训训练出来的.所以,这些额外的动作定义到动作类中就不合适,也不适合直接定义到猫或狗中,因为只有部分猫狗具备这些功能.所以,为了体现事物功能的扩展性,Java就提供了接口来定义这些额外的功能,并不给出具体实现,将来那些猫狗需要被训练,只要将这部分猫和狗实现这部分额外的功能即可. 2.接口的特

Java从零开始学十六(多态)

一.什么是多态 多态性是指允许不同类的对象对同一消息作出响应.多态性包括参数化多态性和包含多态性.多态性语言具有灵活.抽象.行为共享.代码共享的优势,很好的解决了应用程序函数同名问题.多态有两种表现形式:重载和覆盖首先说重载(overload),是发生在同一类中.与什么父类子类.继承毫无关系.标识一个函数除了函数名外,还有函数的参数(个数和类型).也就是说,一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同.他们之间毫无关系,是不同的函数,只是可能他们的功能类似,所以才命名一样,增加可

java面向对象编程(七)--四大特征之多态

1.多态概念 多态性是对象多种表现形式的体现.比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫.小狗.蜥蜴等等.那么我到宠物店说"请给我一只宠物",服务员给我小猫.小狗或者蜥蜴都可以,我们就说"宠物"这个对象就具备多态性. java中的多态,就是指一个引用(类型)在不同情况下的多种状态.也可以理解成,多态是指通过指向父类的指针,来调用在不同子类中实现的方法.也可以理解为"一个接口,多个方法". 实现多态有两种

java 翻盖hashCode()深入探讨 代码示例

package org.rui.collection2.hashcode; /** * 覆盖hashcode * 设计HashCode时最重要的因素 就是:无论何时,对同一个对象调用HashCode都应该产生同样的值, * 如果你的HashCode方法依赖于对象中易变的数据,用户就要当心了,因为此数据发生变化 时 * HashCode就会生成一个不同的散列码,相当于产生一个不同的健 * 此外 也不应该使HashCode依赖于具有唯一性的对象信息,尤其是使用this的值,这只能很糟糕, * 因为这

第6篇-JAVA面向对象Ⅱ

第6篇-JAVA面向对象Ⅱ 每篇一句 :敢于向黑暗宣战的人,心中必定充满光明 初学心得: 面向对象 春暖花开 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-05| JAVA面向对象 Ⅱ] 1.JAVA面向对象三大特征 1.封装(Encapsulation); 2.继承(Inheritance); 3.多态(Polymorphism) 2.面向对象 之 封装 什么是封装? 封装就是隐藏实现细节,仅对外提供访问接口 封装的类型有:属性封装.方法封装.类封装.组件封装.模块化封装