我的课程有问题,不太确定我是否正确编写代码

时间:2016-04-26 22:41:32

标签: java

我正在为一个关于泰坦尼克号的项目写一堂课。说明说 乘客:代表泰坦尼克号的乘客,具有属性(实例变量): 实例数据: 状态(整数: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;
  }

}

2 个答案:

答案 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)

之后构造函数将获取这四个值,并执行它应该执行的操作。在我们的示例中,它将采用这些值并将它们分配给四个字段statuschildsexsurvivor

为了能够告诉构造函数执行此操作,我们为这些参数指定一个名称(因此我们可以引用它们) - 在我们的示例中: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`

现在尝试用这个替换你的构造函数。