首页 > 代码库 > 04-JAVA中的类和对象
04-JAVA中的类和对象
1.
Foo对构造函数进行了重载,那么默认的构造函数就不会被使用,在主类中,定义对象的时候,引用构造函数,却没有参数,自然无法通过编译。
2.
当设定字段初始值在初始化块前面的时候,
很明显使用了前者;
当初始化块在设定字段初始值前面的时候,
同样使用了前者;
得出的规律是:它们俩,谁在前面,就用谁;
但是,上面两张图都有一点相同的地方,就是当引用构造函数的时候,那么它的优先级是始终大于设定字段初始值和初始化块的。
3.
运行结果:
由运行结果可以很明显的看出,当主函数中new Leaf( ) 的时候,从最顶层的类开始,依次调用静态初始化块。
4.
解决方法:由于静态方法只能访问静态数据,所以,我就想到可以在方法里先定义一个静态对象,这样这个静态方法就可以访问类的实例成员了。
经过验证,发现这个方法确实可行。
5.
public class LianXi { public static void main(String[] args) { // TODO Auto-generated method stub A1 obj1=new A1(); A1 obj2=new A1(); A1 obj3=null; System.out.println("已定义了"+A1.num+"个对象。"); } } class A1{ static int num=0; A1(){ jiShu(); } static void jiShu(){ num++; } }
程序运行结果:
04-JAVA中的类和对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。