本帖最后由 张伟86 于 2013-5-4 23:53 编辑
此例当属运行时错误,如果不计较楼主在语句“Person per = new person();”在范的书写错误的话,就只是运行时错误了。
为什么是运行时错误?我们使用IDE下的编译器编译程序,既然编译器不报错,自然不是编译错误,而楼主的程序也不报错,就剩下运行时错误了。
而产生错误的原因就是:“per = null;”语句使得per指向内存重新为空,也就相当于per没有被初始化,运行时就报错了。将语句“Person per = new person();”中的 “= new person()”注释掉,重新编译程序,会发现跟楼主现在的程序是一样的报错信息:未将对象引用设置到对象的实例。
下面附上调试图解:主要注意per的值变化
|