1

假设您有以下 PetDriver 类,其中包含一个 main 方法:

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 会产生以下输出:

我的宠物的名字是 Rover
我的宠物的体重是 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 回答