public class Customer{
private String name;
private boolean child;
private boolean student;
public Customer(String nameIn, int age, boolean studentIn)
name = nameIn;
child = age;
sutdent = studentIn;
}
public String getName(){
return name;
}
public boolean isChild(){
return age;
if (age >= 0 && age <= 16){
child = true;
}
else child = false;
return child;
}
public boolean isStudent(){
if studentIn = true{
studentIn = true;
}
else
student = false;
return student;
}
}
你好,我已经被困在关于Java的论文的任务上已经有好几个小时了。这是两个类中的一个,另一个是应用程序类。我遇到的问题是构造函数类 - 我不确定要将'int age'指定给什么。正如你所看到的,我试图将它分配给'布尔型孩子',但这对我来说没有意义。我在这里错过了什么吗?我理解剩下的代码有点混乱,但是一旦我弄清楚构造函数类,我应该能够自己解决任何其他问题。
答案 0 :(得分:0)
在构造函数中,age是一个int,并且您尝试将该整数分配给布尔字段。
您需要做的是计算客户是否是孩子,然后将该结果分配给该字段。所以你的课应该看起来像
public class Customer{
private String name;
private boolean child;
private boolean student;
private int age;
public Customer(String nameIn, int age, boolean studentIn)
this.name = nameIn;
this.age = age;
this.student = studentIn;
this.child = isChild();
}
public String getName(){
return name;
}
public boolean isChild(){
if (age >= 0 && age <= 16){
return true;
}
else child = false;
return child;
}
public boolean isStudent(){
if studentIn = true{
studentIn = true;
}
else
student = false;
return student;
}
}
答案 1 :(得分:0)
您不需要会员private boolean child
。这是按年龄计算的,但您必须通过创建成员变量private int age
来记住年龄,然后您可以根据需要指定年龄。
public class Customer{
private String name;
private int age;
private boolean student;
public Customer(String nameIn, int ageIn, boolean studentIn)
name = nameIn;
age = ageIn;
sutdent = studentIn;
}
public String getName(){
return name;
}
public boolean isChild(){
return (age >= 0 && age <= 16);
}
public boolean isStudent(){
return student;
}
}
在isStudent()
方法中,您只需返回布尔成员student
。
答案 2 :(得分:0)
鉴于年龄不应为负,我建议在构造函数中验证。您的实例变量应该只表示实例的状态;可以推导出顾客是否是孩子等事物。
我在下面建议的代码中提出了一些风格建议:
public class Customer {
private final static int MAX_CHILD_AGE = 16;
private final String name;
private final int age;
private boolean student;
public Customer(String name, int age) {
if (age < 0)
throw new IllegalArgumentException("Age is negative");
this.name = name;
this.age = age;
this.student = false;
}
public boolean isChild() {
return age <= MAX_CHILD_AGE;
}
public void setStudent(boolean student) {
this.student = student;
}
public boolean isStudent() {
return student;
}
}
我已将名称和年龄字段声明为最终字段。我希望您最终需要更改方法,此时您需要删除final
关键字。
我还从构造函数中取出student
参数。这只是一个建议:包括它肯定是有效的。我个人的理念是构造函数应该只包含final
字段的参数。如果它有一个setter方法,那么在构造函数之后使用它。如果类需要复杂的构造函数,那么使用“构建器”而不是许多构造函数参数。