前辈早上好,我出现了一个运行时的错误,在网页上找了好久也没有头绪,可不可以给一个大提示?
问题描述:
刚刚学到java的重写,在敲代码时加入了许多自己的理解和程序if判断语句。
父类代码如下(问题出在父类的概率个人感觉基本排除,时间紧的前辈可以忽略):
public class Pet {
private String name; // 姓名。
private int health; // 健康值。
private int love; // 亲密度。
// 无参构造器。
public Pet() {
super();
}
// 有参构造器。
public Pet(String name, int health, int love) {
super();
this.name = name;
this.health = health;
this.love = love;
}
// getter/setter.
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 < 0 || health > 100) {
System.out.println("亲!知道您的宠物很健康啦!汗……不大于100的整数哦!");
System.exit(1);
} else {
this.health = health;
}
}
public int getLove() {
return love;
}
public void setLove(int love) {
if (love < 0 || love > 100) {
System.out.println("亲!知道您和您的宠物关系不一般啦!汗……不大于100的整数哦!");
System.exit(1);
} else {
this.love = love;
}
}
// 父类方法。
public void print() {
System.out.println("宠物的自白:");
System.out.println("我的名字叫" + this.name + ",我的健康值是" + this.health + ",我和主人的亲密度是" + this.love+".");
}
子类代码如下(时间紧迫的前辈可以直接跳至问题出现的阶段):
public class QiE extends Pet {
private String sex; // 性别。
// 无参构造器。
public QiE() {
super();
}
// 有参构造器。
public QiE(String sex) {
super();
this.sex = sex;
}
// setter/getter。
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
// 企鹅的方法。
public void print() {
super.print();
System.out.println("我是一只" + this.sex+".");
}
}
Test类(问题出在企鹅部分的“判断用户输入的性别是否正确”中的“if”判断语句处
在代码执行阶段,输入“q仔”则直接判为输入错误,跳入else。
理论上讲,应该不会这样的啊,但现实一场残酷,请前辈给一个
大大的提示吧!先谢过了!):
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
QiE qiE = new QiE();
Scanner in = new Scanner(System.in);
// 提示输入宠物类型。
System.out.print("请输入宠物类型(犬/企鹅):");
String leiXing = in.next();
// 判断用户所需要领养的宠物类型。
if (leiXing.equals("犬")) {
// 提示输入姓名。
System.out.print("请输入宠物姓名:");
dog.setName(in.next());
// 提示输入健康值。
System.out.print("请输入健康值(1~100):");
dog.setHealth(in.nextInt());
// 提示输入亲密度。
System.out.print("请输入亲密度(1~100):");
dog.setLove(in.nextInt());
// 提示输入犬的品种。
System.out.print("请输入宠物的品种:");
dog.setPinZhong(in.next());
dog.print();
} else if (leiXing.equals("企鹅")) {
// 提示输入姓名。
System.out.print("请输入宠物姓名:");
qiE.setName(in.next());
// 提示输入健康值。
System.out.print("请输入健康值(1~100):");
qiE.setHealth(in.nextInt());
// 提示输入亲密度。
System.out.print("请输入亲密度(1~100):");
qiE.setLove(in.nextInt());
// 提示输入企鹅的性别。
System.out.print("请输入企鹅的性别(Q仔/Q妹):");
qiE.setSex(in.next());
******************问题出在这里******************************
******************问题出在这里******************************
******************问题出在这里******************************
if (qiE.getSex().equals("Q仔") || qiE.getSex().equals("q仔") ||
qiE.getSex().equals("Q妹") || qiE.getSex().equals("q妹")) {
qiE.print();
} else {
System.out.println("输入的性别不符合规则,已终止操作。");
System.exit(1);
}
} else {
System.out.println("输入的宠物类型不正确或没有此类型的宠物,操作已终止。");
System.exit(1);
}
in.close();
}
答
打印一下你qiE.getSex()是什么。