2016-04-26 3 views
-3

私はタイタニックに関するプロジェクトのクラスを書いています。指示 乗客:属性(インスタンス変数)を持つタイタニックの乗客を表します。 インスタンスデータ: ステータス(整数:1,2,3、またはクルーを表す1,2,3または4の整数) 子供(ブール値:真=子、偽=大人) セックス(文字列:「男性」または「女性」) 生存者(ブール値:真/偽が、この乗客が生き残っているかどうかを示す)私はクラスに問題があります。コードを正しく書いているかどうかはよく分かりません。

ここでは、現在、私のコードです、わからないことはオフになっているかどうかは、間違った場所

//******************************************************************** 
// 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; 
    } 

} 
+1

ここに特定の質問がありますか? – KevinO

+0

彼の質問は、答えが大きい*いいえ*であるコードが正しいかどうかです。 – Gendarme

+0

あなたのコンストラクタは非常に非常に悪く見えます。あなたは何をしているのか分かりません。まず、コンストラクタのパラメータ名を修正してください。 – user43053534

答えて

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) 

によって作成され、その後、コンストラクタはこれらの4つの値をとり、それが何をするかを行います。私たちの場合、これらの値をとり、statuschildsex、およびsurvivorの4つのフィールドに割り当てます。

これを行うためにコンストラクタに伝えることができるように、これらのパラメータには名前を付けます(例を参照してください)。例:c_statusなどです。次に、コンストラクタにc_statusの値を渡しますstatusに入れ、オブジェクトが破壊されるまで保存します。

Javaブックを開いて読むことをお勧めします。私は主にあなたに迅速な修正を与えるためにこの答えを書いています。

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` 

これで、コンストラクタをこれで置き換えます。

関連する問題