讨论一下java中的构造方法中为什么不要尝试调用其本类方法!!!
2014-07-20 15:27
323 查看
这个问题是因为我在编写俄罗斯方块的时候才发现的,因为我想在方块被方块工厂创建出来的时候就要为方块添加一个判断方块是否已经下落的监听器,但是我当时想要便捷一点的调用添加监听器的方法所以我选择在方块的构造方法中去调用添加监听器的方法,但是后面出现了数据的错乱的问题并且越编写到后面的时候就很容易出现空指针异常的情况。
虽然这个问题在语法上及编译期内不会出现编译错误,并且有的时候程序还能够正确的运行,但是我建议大家千万不要这样做,这样会给后面的数据信息的交流造成混乱。思考一下之后....我认为原因应该是本类的方法需要一个完整的对象才能调用,何为完整的对象呢?就是一定要new过之后的对象才能是完整的对象。假如还不是一个完整的对象就去调用本类方法的话,举个不恰当的例子:就像一个还没有完全进化成人的生物,做了真正人才做的事情
。
(个人见解如有高见请指出!)
虽然这个问题在语法上及编译期内不会出现编译错误,并且有的时候程序还能够正确的运行,但是我建议大家千万不要这样做,这样会给后面的数据信息的交流造成混乱。思考一下之后....我认为原因应该是本类的方法需要一个完整的对象才能调用,何为完整的对象呢?就是一定要new过之后的对象才能是完整的对象。假如还不是一个完整的对象就去调用本类方法的话,举个不恰当的例子:就像一个还没有完全进化成人的生物,做了真正人才做的事情
。
(个人见解如有高见请指出!)
相关文章推荐
- JAVA_SE基础——32.this关键字调用本类的构造方法
- Java中不要在父类的构造方法中调用会被子类重写的方法
- 为什么java的子类中必须调用父类的构造方法
- Java 编程下 IO 中的输入流的 read() 方法返回值为什么是 int 值(科普一下吧,某个大侠写的)
- 关于JAVA继承类的静态变量、成员变量、父子类构造方法调用顺序的探讨 .
- [Java] this 调用重载构造方法
- 为什么java.net.URLEncoder.encode方法要调用两次而不是一次呢?
- [Java] this 调用重载构造方法
- 为什么java.net.URLEncoder.encode方法要调用两次而不是一次呢?
- Java中子类与父类的构造方法的调用关系
- Java构造方法的相互调用
- java继承时,实例化子类,是否会默认调用父类构造方法
- java中的继承(子类调用父类构造方法还不懂)
- 为什么java.net.URLEncoder.encode方法要调用两次而不是一次呢?
- Java中子类调用父类构造方法的问题分析
- 测试 java反射Reflection中 获取 类属性、方法、构造方法及 调用类方法改变 对象属性
- 关于JAVA继承类的静态变量、成员变量、父子类构造方法调用顺序的探讨
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- Java反射之调用构造方法and操作数组
- Java里子类调用父类构造方法问题