黑马程序员技术交流社区

标题: 函数调用 [打印本页]

作者: 黄云南    时间: 2012-3-18 12:23
标题: 函数调用
  1. class  Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Test2 a= new Test2();建立了一个Test2类对象
  6.                 Test2 b=null;
  7.                 b.main();
  8.         }
  9. }
  10. class  Test2
  11. {
  12.         public  void main()
  13.         {
  14.                 System.out.println("Hello World!");
  15.         }
  16. }
复制代码
我new了一个Test2的对象,那么Test2的main()应该就被加载进了方法区,
方法区的内容不是都是共享的吗?所以这样的话b去调用的话就应该没问题啊。
可是运行时报空指针异常?为什么?
作者: 魏群    时间: 2012-3-18 12:31
Test2 b=null;  null是一个空引用
声明 b 并指向一个空引用。当然什么都没有了,调用其方法b.main();就出空指针了。
作者: 刘元明    时间: 2012-3-18 12:43
声明一点:Test2中的main()方法只有在被对象调用时才被加载进内存
Test2 b=null;表示你让一个Test2对象b指向null
  b.main();肯定会抛异常
你想调用main方法,你用a.main()不就行了,呵呵






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2