1

main メソッドを含む次の PetDriver クラスが与えられたとします。

public class PetDriver{
  public static void main(String[] args){
    int weight = 40;
    Pet doggie = new Pet("Rover", weight);
    System.out.println("my pet's name is " + doggie.getName());
    System.out.println("my pet's weight is " + doggie.getWeight());
  }
}

main を実行すると、次の出力が生成されます。

私のペットの名前はローバーです
私のペットの体重は40です

私のコードは次のとおりですが、null を返しています。

public class pet {

    public String name;
    public int weight = 40;

    public Pet (String y, int x){
        y = name;
        x = weight;
    }

    public String getName(){
        return name;
    }

    public int getWeight(){
        return weight;
    }
}

ありがとう!

4

2 に答える 2

2

コンストラクターでは、逆の方法で行う必要があります。

public Pet (String y, int x){
  name = y;    // instead of y = name
  weight = x;  // instead of x = weight
}

あなたがしたことは、その逆ではなく、メンバー値をコンストラクターのパラメーターに割り当てることでした。したがって、メンバー値name自体は書き込まれませんでしたnull

于 2013-03-05T01:57:44.687 に答える
2

コンストラクターはプロパティに値を割り当てません。それらを次のように変更します。

public Pet (String y, int x){
  name = y;
  weight = x;
}
于 2013-03-05T01:58:17.013 に答える