次のプログラムを実行しようとしています。しかし、aNullPointerException
が表示されます。これまでのところ、すべてのステップでコードをデバッグしました。numA.add()
in mainを実装した後、ヌルポインタ例外が発生するようです。
Main.java
public class Main {
public static void main(String[]args){
NumberSystem numA = new NumberSystem(new Number(20),new Number(10));
numA.add();
System.out.println(numA.getResult().toString());
}
}
NumberSystem.java
public class NumberSystem {
private Number n1,n2,result;
public NumberSystem(){
n1 = new Number(0);
n2 = new Number(0);
result = new Number(0);
}
public NumberSystem(Number n1,Number n2){
n1 = new Number();
n2 = new Number();
result = new Number(0);
}
public NumberSystem(NumberSystem n){
n1 = new Number(n.n1);
n2 = new Number(n.n2);
result = new Number(n.result);
}
public Number getN1(){
return n1 = new Number(n1.getNum());
}
public Number getN2(){
return n2 = new Number(n2.getNum());
}
public Number getResult(){
return result = new Number(result.getNum());
}
public void setN1(int n1Value){
if (n1Value != 0) n1 = new Number(n1Value);
}
public void setN2(int n2Value){
if (n2Value != 0) n2 = new Number(n2Value);
}
public void add(){
result = new Number(n1.getNum() + n2.getNum());
}
public String toString(){
return "" + n1.getNum();
}
}
Number.java
public class Number {
private int num;
public Number() {num = 0;}
public Number(int numValue){
if (numValue != 0) num = numValue;
}
public Number(Number anotherNum){
num = anotherNum.getNum();
}
public int getNum(){
return num;
}
public void setNum(int numValue){
if (numValue != 0) num = numValue;
}
public String toString(){
return new String("" + num);
}
}