我正在为一个关于泰坦尼克号的项目写一堂课。说明说 乘客:代表泰坦尼克号的乘客,具有属性(实例变量): 实例数据: 状态(整数:1,2,3或4,代表第1,第2,第3班或船员 child(布尔值:true = child,false = adult) 性(一个字符串:“男性”或“女性”) 幸存者(布尔值:真/假,表明这名乘客是否存活)
这是我目前的代码,不确定它是否关闭或我是否把东西放错了地方
//********************************************************************
// Passenger.java Author:
//
// Represents passenger on Titanic.
//********************************************************************
import java.text.NumberFormat;
public class Passenger
{
int status;
boolean child;
String sex;
boolean survivor;
//-----------------------------------------------------------------
// Creates a new DVD with the specified information.
//----------------------------------------------------------------
public Passenger (int 1, int 2,int 3, int 4, boolean true, boolean false, String m, String f)
{
1=1stclass;
2=2ndclass;
3=3rdclass;
4=crew;
true=child;
false=adult;
m=male;
f=female;
}
}
答案 0 :(得分:1)
最常见的方法是:
public class Passenger {
int status;
boolean child;
String sex;
boolean survivor;
public Passenger (int status, boolean child, String sex, boolean survivor) {
this.status = status;
this.child = child;
this.sex = sex;
this.survivor = survivor;
}
}
但是由于你可能不知道this
的含义,让我们来代替新的变量名称:
public class Passenger {
int status;
boolean child;
String sex;
boolean survivor;
public Passenger (int c_status, boolean c_child, String c_sex, boolean c_survivor) {
status = c_status;
child = c_child;
sex = c_sex;
survivor = c_survivor;
}
}
当例如
创建此类的实例时,将调用构造函数new Passenger(2, true, "female", false)
之后构造函数将获取这四个值,并执行它应该执行的操作。在我们的示例中,它将采用这些值并将它们分配给四个字段status
,child
,sex
和survivor
。
为了能够告诉构造函数执行此操作,我们为这些参数指定一个名称(因此我们可以引用它们) - 在我们的示例中:c_status
等。然后我们告诉构造函数取值c_status
并将其放入status
保存,直到对象被销毁。
我建议你打开一本Java书并阅读它。我写这个答案主要是为了给你一个快速修复。
答案 1 :(得分:1)
您的构造函数不正确
对于构造函数参数,您不能使用实际值,必须使用它们的名称。必须是:
`public Passenger( int status, boolean child, String sex, boolean survivor){
this.status = status;
this.child = child;
this.sex = sex;
this.survivor = survivor;
}
//you also can add setters and getters for your class attributes
public void setStatus(int status) {
this.status = status;
}
public int getStatus() {
return status;
}
//so you can create another setters and getters for all your attributes`
现在尝试用这个替换你的构造函数。