假设您获得了以下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;
}
}
谢谢!
答案 0 :(得分:2)
在你的构造函数中,你应该反过来这样做:
public Pet (String y, int x){
name = y; // instead of y = name
weight = x; // instead of x = weight
}
您所做的是将成员值分配给构造函数的参数,而不是相反。因此,成员值name
本身从未编写过,因此它是null
。
答案 1 :(得分:2)
您的构造函数不会将值赋给属性。将它们更改为以下内容。
public Pet (String y, int x){
name = y;
weight = x;
}