新人问题。Exception in thread "main" java.lang.NullPointerException
最近开始学习java, 做作业遇到理解不了的问题,请教一下。
-----------------------------------------
public class Assign3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
CodeBreaker a3 = new CodeBreaker();
a3.display();
} // end of method
} // end if class
-----------------------------------
public class CodeBreaker {
private CodeLetter letter1;
private CodeLetter letter2;
private CodeLetter letter3;
public CodeBreaker(){
CodeLetter letter1 = new CodeLetter();
CodeLetter letter2 = new CodeLetter();
CodeLetter letter3 = new CodeLetter();
letter1.display();
letter2.display();
letter3.display();
System.out.println();
}
public void display(){
System.out.print("The code was ");
letter1.display();
letter2.display();
letter3.display();
}
}// end of class
-----------------------
import java.util.Random;
public class CodeLetter {
private char letterValue;
Random rnd = new Random();
public CodeLetter(){
letterValue = (char) (rnd.nextInt(5)+'A');
}
public void display(){
System.out.print(letterValue);
}
}
---------------------------
运行结果:
DCB
Exception in thread "main" java.lang.NullPointerException
at CodeBreaker.checkGuess(CodeBreaker.java:18)
at Assign3.main(Assign3.java:6)
我的问题是,为什么在public class CodeBreaker里,同样是调用public class CodeLetter的public void display(),在public CodeBreaker()可以打印字母(DCB),但是在public void display()却出错,不能打印了呢?