一: public class Pet { private String name; private int health; private int love; PetShop(String name,int health,int love){ this.name=name; this.health=health; this.love=love; } public String getName(){ return name; } public void setName(String name){ this.name=name; } public int getHealth(){ return health;
} public void setHealth(int health){ if(health>100||health<0) { System.out.println("健康值应在0到100之间,默认值是40");} else this.health=health; } public int getLove(){ return love; } public void setLove(int love){ this.love=love; } public void speak(){ System.out.println("Hi,主人,我的名字是"+name+"我的健康值是"+health+"我和主人的亲密度是" +love); }public void Petshoppublic static void main(Sting[]args) {Scanner input =new Scanner(System.in); System.outprintln("欢迎来到宠物店"); //1.输入宠物名称 System.out.println("请输入要领养宠物的名字:"); String name=input.next(); //2.选择宠物 System.out.prinln("请输入要领养的宠物类型:(1.狗狗2.企鹅)"); swith(input.nextInt()) { case 1: // 2.1 如果是狗狗 //2.1.1 选择狗狗的品种 System.out.println(“请选择狗狗的品种:(1.聪明的拉布拉多犬” + “ 2.酷酷的雪纳瑞)”); String strain = null; if(input.nextInt() == 1){ strain = ”聪明的拉布拉多犬”; } else { strain = “酷酷的雪纳瑞”; } // 2.1.2 创建狗狗对象并赋值 Dog dog = new Dog(); dog.name = name; dog.strain = strain; // 2.1.3 输入狗狗信息 dog.print(); break; case 2: //2.2 如果是企鹅 //2.2.1 选择企鹅性别 System.out.println(“请选择企鹅的性别:(1.Q仔 2.Q妹)”); String sex = null; if(input.nextInt() == 1) sex = ” Q仔”; else sex = “Q妹” //2.2.2 创建企鹅对象并赋值 Penguin pgn = new Penguin(); pgn.name = name; pgn.sex = sex; //2.2.3 输出企鹅信息 pgn.print(); } } } class Dog extends Pet{private String breed; public Dog(String name,int health,int love,Strint breed) {super(name,health,love); this.breed=breed;} public String getBreed(){ return breed; } public void setBreed(String breed){ this.breed=breed; } public void speak(){ super.speak(); System.out.println("我的品种是"+breed); } } class Penguin extends pet {private String sex; public Penguin(String name,int health,int love,Strint breed) {super(name,health,love); this.sex=sex;} public String getsex(){ return sex; } public void setsex(String sex){ this.sex=sex; } public void speak(){ super.speak(); System.out.println("我的性别是"+sex); } }
又好几天没有写博客啦,尽量以后少打游戏,多抽点时间写点文章。这篇代码主要是一个宠物店类,主要用啦面向对象中继承的思想。先定义啦一个基类pet类,Dog类和pengguin类继承啦petl类。这是学java以来第一次用到面向对象的思想。并学到啦与c++不同的地方。继承的关键字extends,和supper()。
二:老师给的代码如下:
petshop
package jsj.java.exam.test05; import java.util.Scanner; public class PetShop { public static void main(String[] args) { System.out.println("欢迎来到宠物商店"); System.out.println("请输入要领养的宠物的名字"); Scanner input=new Scanner(System.in); String name=input.next(); System.out.println("请输入你要领养的宠物的类型:(1 狗狗 2 企鹅)"); int type=input.nextInt(); Master master=new Master(); switch(type){ case 1:System.out.println("请输入狗的品种(1 聪明的拉布拉多犬 2苦苦的雪纳瑞)"); int breed=input.nextInt(); System.out.println("请输入狗的健康值"); int health=input.nextInt(); String s=""; if(breed==1){ s="聪明的拉布拉多犬"; }else{ s="苦苦的雪纳瑞"; } Dog dog=new Dog(name,s,health,20); System.out.println("喂养前:"); dog.speak(); master.feed(dog); System.out.println("喂养后:"); dog.speak(); master.play(dog); System.out.println("与主人玩耍后"); dog.speak(); break; case 2: System.out.println("请输入企鹅的性别(1Q仔 2Q妹)"); int sex=input.nextInt(); System.out.println("请输入企鹅得健康值"); health=input.nextInt(); s=""; if(sex==1){ s="Q仔"; }else{ s="Q妹"; } Penguin penguin=new Penguin(name, s, health, 30); penguin.speak(); master.feed(penguin); System.out.println("喂养后:"); penguin.speak(); master.play(penguin); System.out.println("与主人玩耍后"); penguin.speak(); } } }
pet.javapackage jsj.java.exam.test05; public abstract class Pet { protected String name; protected int health; protected int love; /** * * @param name * @param health * @param love */ public Pet(String name, int health, int love) { super(); this.name = name; this.health = health; this.love = love; } /** * 修改名字 * @param newName */ public void setName(String newName) { name = newName; } /** * 取得名字 * * @return */ public String getName() { return name; } public int getHealth() { return health; } public void setHealth(int health) { if (health >= 1 && health <= 100) { this.health = health; } else { this.health = 10; } } public int getLove() { return love; } public void setLove(int love) { this.love = love; } protected abstract void speak();//宠物自白的行为 protected abstract void eat();// 吃的行为 }
Penguin.javapackage jsj.java.exam.test05; public class Penguin extends Pet { private String sex; public Penguin(String name, String sex, int health, int love) { super(name,health,love); this.sex = sex; } /** * 宠物的自白 */ public final void speak() { System.out.println("宠物的自白"); System.out.println("我的名字叫" + getName() + "我的健康状况是" + getHealth() + "我的性别是" + sex + "我与主人的亲密度为" + getLove()); } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } //TODO 重写父类的eat方法,健康值增加6 @Override protected void eat() {//--1 super.health=super.health+6;//--1 } //TODO 定义子类特有的方法,游泳swimming //输出"正在游泳",健康值减少3,与主人的亲密度增加5 public void swimming(){//--1 System.out.println("游泳"); super.health=super.health-3;//--1 super.love=super.love+5;//--1 } }
Dog.javapackage jsj.java.exam.test05; //TODO 将Dog类定义完整 public class Dog extends Pet {//--1 private String breed; public Dog(String name, String breed, int health, int love) { //调用父类的构造方法,完成name,health,love属性的初始化 super(name,health,love); this.breed = breed; } public String getBreed() { return breed; } public void setBreed(String breed) { this.breed = breed; } /** * 宠物的自白 */ public void speak() { System.out.println("宠物的自白"); System.out.println("我的名字叫" + getName() + "我的健康状况是" + getHealth() + "我的品种是" + breed + "我与主人的亲密度为" + getLove()); } //TODO 重写父类的eat方法,健康值增加3 @Override protected void eat() { super.health=super.health+3; } //TODO 定义子类特有的方法,接飞盘游戏catchFlyingDisk //输出"正在玩接飞盘的游戏",健康值减少5,与主人的亲密度增加5 public void catchFlyingDisk(){ System.out.println("正在玩接飞盘的游戏"); super.health=super.health-5; super.love=super.love+5; } } Master.javapackage jsj.java.exam.test05; /** * 主人类 */ public class Master { //喂养动物的方法feed public void feed(Pet pet){ pet.eat(); } //TODO 定义与宠物玩耍的方法play //如果是狗,则玩接飞盘游戏 //如果是企鹅,则游泳 public void play(Pet pet){ if(pet instanceof Dog){ ((Dog) pet).catchFlyingDisk(); }else if(pet instanceof Penguin){ ((Penguin) pet).swimming(); } } }