问题
运用面向对象思想抽象出Dog类和Penguin类
类型:狗 企鹅
属性:昵称 健康值 性别 品种
行为:输出信息
添加默认构造方法
Dog类
import java.util.Scanner;
public class Dog {
private String name;
private double health;//健康值
private String gender;//性别
private String class_name;//品种
public Dog(){
}
public Dog(String name,double health,String gender,String class_name){
setName(name);
setHealth(health);
setGender(gender);
setClass_Name(class_name);
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public double getHealth(){
return this.health;
}
public void setHealth(double health){
Scanner sc = new Scanner(System.in);
if(health >= 1 && health <= 100){
this.health = health;
}
else{
System.out.print("健康值输入无效,应在1到100之间!请重新输入:");
health = sc.nextDouble();
setHealth(health);
}
}
public String getGender(){
return this.gender;
}
public void setGender(String gender){
this.gender = gender;
}
public String getClass_Name(){
return this.class_name;
}
public void setClass_Name(String class_name){
this.class_name = class_name;
}
public void introduce(){
System.out.print("狗昵称:" + getName() + "\t健康值:" + getHealth() + "\t性别:" + getGender() + "\t品种:" + getClass_Name());
}
}
打印Dog信息
– 增加带参构造方法,使用带参构造方法创建对象
▪ 传入昵称、品种、健康值,性别参数
▪ 打印宠物信息
– 要保证健康值的有效性(在1到100之间)
public class TestDog {
public static void main(String[] args){
Dog dog = new Dog("大黄",102,"男","萨摩耶");
dog.introduce();
}
}
输出
健康值输入无效,应在1到100之间!请重新输入:109
健康值输入无效,应在1到100之间!请重新输入:309
健康值输入无效,应在1到100之间!请重新输入:89
狗昵称:大黄 健康值:89.0 性别:男 品种:萨摩耶
操作企鹅性别属性
▪ 需求说明:
– 给Penguin类提供SEX_MALE和SEX_FEMALE两个静态常量,
分别取值“Q仔”戒“Q妹”
企鹅类
public class Penguin {
private String name;
private double health;//健康值
private String gender;//性别
private String class_name;//品种
static final String SEX_MALE = "Q仔";
static final String SEX_FEMALE = "Q妹";
public Penguin(){
}
public Penguin(String name,double health,String gender,String class_name){
setName(name);
setHealth(health);
setGender(gender);
setClass_Name(class_name);
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public double getHealth(){
return this.health;
}
public void setHealth(double health){
if(health >= 1 && health <= 100){
this.health = health;
}
else{
System.out.println("健康值输入无效,应在1到100之间!");
}
}
public String getGender(){
return this.gender;
}
public void setGender(String gender){
this.gender = gender;
}
public String getClass_Name(){
return this.class_name;
}
public void setClass_Name(String class_name){
this.class_name = class_name;
}
public void introduce(){
System.out.print("企鹅昵称:" + getName() + "\t健康值:" + getHealth() + "\t性别:" + getGender() + "\t品种:" + getClass_Name());
}
}
– 修改Test类,使用静态常量对性别进行赋值
public class TestDog {
public static void main(String[] args){
Penguin penguin= new Penguin("小白",98,Penguin.SEX_MALE,"南极企鹅");
penguin.introduce();
}
}
企鹅昵称:小白 健康值:98.0 性别:Q仔 品种:南极企鹅
– 修改企鹅的性别只能取值“雄”或“雌”,通过修改静态变量实现该需求