Mutator和Accessor(使用继承)

时间:2015-10-02 08:20:42

标签: java inheritance accessor mutators

我希望我的程序从另一个类输入一个私有变量。

我想使用mutator和accessor。

它一直出错NullPointerException。我的代码中有什么问题?

public abstract class Inputs {
private String val;
private String typ;
public abstract void setVal(String val);
public abstract void setTyp(String typ);
public abstract String getVal();
public abstract String getTyp();
}

public DeckOfCards extends Inputs{
String val;
String typ;
static DeckOfCards kerds = new DeckOfCards();
    public void setVal(String val){
        this.val = val;
    }

    public void setTyp(String typ){
        this.typ = typ;
    }

    public String getVal(){
        return this.val;
    }

    public String getTyp(){
        return this.typ;
    }
    public static void main(String args[]){
       System.out.print("Value: ");
       kerds.setVal(kerds.val);
       if(kerds.val.equals("A"){
          System.out.print("Type: ");
          kerds.setTyp(kerds.typ);
       }
    }
}

2 个答案:

答案 0 :(得分:1)

这是您的问题sails lift kerds 在主要运行时尚未创建。

  • 您需要在使用之前初始化DeckOfCards实例。
  • 仅在设置后尝试检索值。此外,尝试检索尚未设置的值将抛出NullPointerException(正如Rehman指出的那样)

以下是正确使用的示例:

kerds.setVal(kerds.val);

答案 1 :(得分:0)

kerds.setVal(kerds.val)正在设置空值。此时,kerds.val的值尚未设置。基本上你的代码没有任何意义。您正在设置具有相同属性值的属性,该属性尚未设置。