抽象类实现宠物管理

通过抽象类,抽象方法实现
宠物类 属性(昵称(String) 健康值(int) 亲密度(int)),方法(吃饭,输出宠物信息),
狗狗 属性:(品种)方法(吃饭,玩飞盘)和企鹅 属性:(性别) 方法(吃饭,游泳)的父类
创建管理员类,主人领养宠物通过键盘输入数字领养宠物(1、狗狗 2、企鹅)
并实现给庞物喂食(创建喂食方法)和主人与庞物玩耍(创建玩耍方法)
其中,每次喂食健康值不能超过100(吃饱),不足100每次喂养加5,
与宠物玩耍健康值减5,亲密度加3,
//宠物类 属性(昵称(String) 健康值(int) 亲密度(int)),方法(吃饭,输出宠物信息)

abstract class Pet{
//	属性(昵称(String) 健康值(int) 亲密度(int))
	private String name;
	private int health;
	private int init;
	final static int HEA=5;
	final static int INIT=3;
	public Pet(String name, int health, int init) {
		super();
		this.name = name;
		this.health = health;
		this.init = init;
	}	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getHealth() {
		return health;
	}
	public void setHealth(int health) {
		this.health = health;
	}
	public int getInit() {
		return init;
	}
	public void setInit(int init) {
		this.init = init;
	}
	abstract public void eat();
	abstract public void show();
}
//狗狗 属性:(品种)方法(吃饭,玩飞盘)
class Dog extends Pet{
	String var;
	public Dog(String name,int health,int init,String var) {
		super(name,health,init);
		this.var = var;
	}
	public void eat() {
		 System.out.println("喜欢吃狗粮!");
	 }
	public void play() {
		System.out.println("喜欢玩飞盘!");
	}
	 public void show() {
		 System.out.println("宠物信息为:"+"\n姓名:"+getName()+"品种等级:"+var+"\n健康值:"+getHealth()+"\n亲密度:"+getInit());
		 eat();
		 play();
	 }
}
//企鹅 属性:(性别) 方法(吃饭,游泳)的父类
class Penguin extends Pet{
	private String var;
	public Penguin(String name,int health,int init,String var) {
		super(name,health,init);
		this.var = var;
	}
	
	public String getVar() {
		return var;
	}

	public void setVar(String var) {
		this.var = var;
	}

	public void eat() {
		 System.out.println("喜欢吃鱼!");
	 }
	public void play() {
		System.out.println("喜欢游泳!");
	}
	 public void show() {
		 System.out.println("宠物信息为:"+"\n姓名:"+getName()+"品种等级:"+var+"\n健康值:"+getHealth()+"\n亲密度:"+getInit());
		 eat();
		 play();
	 }
}
//创建管理员类
class Administ extends Pet{
	Dog d=new Dog("小猪",40,70,"A");
	Penguin p=new Penguin("小猪",40,70,"A");
	public Administ(String name, int health, int init) {
		super(name, health, init);
	}
//	主人领养宠物通过键盘输入数字领养宠物(1、狗狗 2、企鹅)
	public void adopt() {
		Scanner input=new Scanner(System.in);
		System.out.println("请主人通过键盘输入数字领养宠物(1、狗狗 2、企鹅)");
		int a=input.nextInt();
		if(a==1) {
			System.out.println("恭喜您成功领养A级宠物狗:"+getName());
			d.show();
			Scanner i=new Scanner(System.in);
			System.out.println("是否改名(1、是 2、否)");
			int b=i.nextInt();
			if(b==1) {
				Scanner n=new Scanner(System.in);
				System.out.println("请输入姓名:");
				String c=i.next();
				setName(c);
				System.out.println("您的宠物成功改名为:"+getName());
			}
		}else if(a==2){
			System.out.println("恭喜您成功领养A级宠物企鹅:"+getName());
			p.show();
			Scanner i=new Scanner(System.in);
			System.out.println("是否改名(1、是 2、否)");
			int b=i.nextInt();
			if(b==1) {
				Scanner n=new Scanner(System.in);
				System.out.println("请输入姓名:");
				String c=i.next();
				setName(c);
				System.out.println("您的宠物成功改名为:"+getName());
			}
		}else {
			System.out.println("选择出错!");
		}
	}
	public void eat() {
		if(getHealth()==100) {
			System.out.println("您的宠物十分健康,请勿重复投食!");
		}else if(getHealth()>=0&&getHealth()<100) {
			System.out.println("您的宠物处于饥饿状态,请输入投食次数");
			Scanner input=new Scanner(System.in);
			int a=input.nextInt();
			for(int i=0;i<a;i++) {
				if(getHealth()<100) {
					setHealth(getHealth()+HEA);
					System.out.println(getHealth());
				}else {
					System.out.println("您的宠物已经满状态!");
					break;
				}
			}
		}else if(getHealth()<0) {
			System.out.println("您的宠物已经被你玩死了");
		}
	}
	public void play() {
		if(getInit()==100) {
			System.out.println("您与宠物亲密度已满!");
		}else if(getInit()>=0&&getInit()<100) {
			System.out.println("您的宠物处于无聊状态,请输入玩耍次数:");
			Scanner input=new Scanner(System.in);
			int a=input.nextInt();
			for(int i=0;i<a;i++) {
				if(getInit()<100) {
					if(getHealth()>0) {
					setInit(getInit()+INIT);
					setHealth(getHealth()-HEA);
					System.out.println("亲密度:"+getInit());
					System.out.println("健康值:"+getHealth());
					}else {
						System.out.println("您的宠物极度疲劳,自动停止游戏!");
						break;
					}
				}else {
					System.out.println("您的宠物亲密度已满,自动停止游戏!");
					break;
				}
			}
		}else if(getInit()<0) {
			System.out.println("您的宠物已经离开您了");
		}
	}
	public void show() {
		System.out.println("您当前宠物信息:"+"健康值:"+getHealth()+"亲密度:"+getInit());
	}
}
public class WorkPet {
	public static void main(String[] args) {
		Administ a=new Administ("小猪",40,70);
		a.adopt();
		a.eat();
		a.play();
		a.show();
	}
}
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
课程目标 1、精通JavaEE平台开发的JAVA软件工程师,能够胜任各种行业的企业级软件开发工作; 2、具备一年以上软件开发经验; 3、熟悉java软件开发流程;具备解决目前主要问题的能力; 4、良好的语言表达、沟通能力、工作责任心和团队意识。 课程针对就业岗位 java软件工程师系统设计师系统分析师 课程目录 [第1节] 1.面向对象开发 [第2节] 2.定义类 [第3节] 3.创建对象 [第4节] 4.类成员之成员方法 [第5节] 5.类成员之成员变量 [第6节] 6.构造方法 [第7节] 7.案例:影片播放机 [第8节] 8.小结 [第9节] 1.2.1为什么需要封装1 [第10节] 1.2.1为什么需要封装2 [第11节] 1.2.2如何实现封装2 [第12节] 1.2.3如何使用包1 [第13节] 1.2.3如何使用包2 [第14节] 1.2.4类成员的访问控制1 [第15节] 1.2.4类成员的访问控制2 [第16节] 1.2.4类成员的访问控制3 [第17节] 1.3.1 如何实现继承1 [第18节] 1.3.1 如何实现继承2 [第19节] 1.3.2 不同权限分配下的继承1 [第20节] 1.3.2 不同权限分配下的继承2 [第21节] 1.3.3 如何实现方法重写1 [第22节] 1.3.3 如何实现方法重写2 [第23节] 1.3.4 继承条件下的构造方法的执行1 [第24节] 1.3.4 继承条件下的构造方法的执行2 [第25节] 1.3.5 如何重写equals()方法1 [第26节] 1.3.5 如何重写equals()方法2 [第27节] 1.3.5 如何重写equals()方法3 [第28节] 1.4.1 未使用多态实现不同宠物看病1 [第29节] 1.4.1 未使用多态实现不同宠物看病2 [第30节] 1.4.2 使用多态实现不同宠物看病1 [第31节] 1.4.2 使用多态实现不同宠物看病2 [第32节] 1.4.3 向下转型1 [第33节] 1.4.3 向下转型2 [第34节] 1.4.4 instanceof运算符的用法1 [第35节] 1.4.4 instanceof运算符的用法2 [第36节] 1.4.5 多态的使用:父类作为形参1 [第37节] 1.4.5 多态的使用:父类作为形参2 [第38节] 1.4.6 多态的使用:父类作为返回2 [第39节] 1.4.6 多态的使用:父类作为返回3 [第40节] 1.5.1 汽车租赁运行效果2 [第41节] 1.5.2 汽车租赁框架1 [第42节] 1.5.2 汽车足联框架2 [第43节] 1.5.3 处理空指针异常1 [第44节] 1.5.3 处理空指针异常2 [第45节] 1.6.1 如何定义和使用抽象类和接口1 [第46节] 1.6.1 如何定义和使用抽象类和接口2 [第47节] 1.6.2 使用抽象类的好处1 [第48节] 1.6.2 使用抽象类的好处2 [第49节] 1.6.3 使用接口的好处(一)1 [第50节] 1.6.3 使用接口的好处(一)2 [第51节] 1.6.4 使用接口的好处(二)1 [第52节] 1.6.4 使用接口的好处(二)2 [第53节] 1.6.4 使用接口的好处(二)3 [第54节] 1.7.1 图书销售管理-运行效果2 [第55节] 1.7.2 图书销售管理-用户、角色、权限框架1 [第56节] 1.7.2 图书销售管理-用户、角色、权限框架2 [第57节] 1.7.3 图书销售管理-查询图书、入库1 [第58节] 1.7.3 图书销售管理-查询图书、入库2 [第59节] 1.7.4 完善图书销售管理-查询图书-入库2 [第60节] 1.7.4 完善图书销售管理-查询图书-入库3 [第61节] 1.8.1 异常1 [第62节] 1.8.1 异常2 [第63节] 1.8.2 使用try-cache处理异常1 [第64节] 1.8.2 使用try-cache处理异常2 [第65节] 1.8.3 使用try-catch-finally处理异常1 [第66节] 1.8.3 使用try-catch-finally处理异常2 [第67节] 1.8.4 多个catch语句的使用1 [第68节] 1.8.4 多个catch语句的使用2 [第69节] 1.8.5 throws关键字的使用1 [第70节] 1.8.5 throws关键字的使用2 [第71节] 1.8.6 throw关键字的使用1 [第72节] 1.8.6 throw关键字的使用2 [第73节] 1.8.7 自定义异常的类型1 [第74节] 1.8.7 自定义异常的类型2 [第75节] 1.8.8 异常链的使用1 [第76节] 1.8.8 异常链的使用2 [第77节] 1.8.8 异常链的使用3 [第78节] 1.9.1 封装、继承和多态 [第79节] 1.9.2 异常 [第80节] 1.9.3 内部类串讲 [第81节] 1.10.1职场写作力

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl·杰尼龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值