2016-04-26 95 views
0

我只有一个基本的封装类食物,当我去我的客户端类中检查方法getName,String和所有其他方法时,它都返回null。不知道这里有什么问题。基本的Java对象类返回对象为null?

public class Foods { 

    public String name; 
    public int calPerServing; 
    public int servingPerContainer; 

    Foods(String n, int c, int s){ 
     n = name; 
     c = calPerServing; 
     s = servingPerContainer; 
    } 

    @Override 
    public String toString() { 
     return "Name: " + name + "\nCalories Per Serving: " + calPerServing 
       + "\nServings Per Container: " + servingPerContainer; 
    } 

    public String getName() { 
     return name; 
    } 

    public int getCalPerServing() { 
     return calPerServing; 
    } 

    public int getServingPerContainer() { 
     return servingPerContainer; 
    } 

    public int getTotalCalories(){ 
     return (calPerServing * servingPerContainer); 
    } 
} 


public class Client { 

    public static void main(String[] args) { 
     Foods chips = new Foods("chips", 10, 1); 
     System.out.println(chips.getName()); 
    } 
} 

回答

4

这是一个错字:

Foods(String n, int c, int s){ 
    n = name; 
    c = calPerServing; 
    s = servingPerContainer; 
} 

应该是:

Foods(String n, int c, int s){ 
    name = n; 
    calPerServing = c; 
    servingPerContainer = s; 
} 
+0

谢谢!愚蠢的错误,但它发生。 – sfinger

+1

@elisefinger您可以通过尽可能使成员变量最终成为可能来减少发生的变化。 –