gpt4 book ai didi

java - 修改器和访问器(使用继承)

转载 作者:行者123 更新时间:2023-12-01 11:06:24 25 4
gpt4 key购买 nike

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

我想使用赋值器和访问器。

它不断出错 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);
}
}
}

最佳答案

这是你的问题kerds.setVal(kerds.val);主运行时kerds尚未创建。

  • 您需要在使用 DeckOfCards 实例之前对其进行初始化。
  • 仅在设置值后尝试检索它们。否则,尝试检索尚未设置的值将抛出 NullPointerException(正如 Rehman 所指出的)

以下是正确使用的示例:

     public static void main(String args[]){
DeckOfCards kerds = new DeckOfCards();
kerds.setVal("A");
kerds.setTyp("TYPE_A");

System.out.println("Displaying values of kerds");
System.out.println("kerds value : " + kerds.getVal());
System.out.println("kerds type : " + kerds.getTyp());
}

关于java - 修改器和访问器(使用继承),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32903163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com