摘要:
一般情况下,类的静态方法只允许访问静态数据(带static),如何用静态方法访问类的实例成员(即不带static的成员),请看下段代码。 解决方案是在静态方法中先创建该类的对象,再通过对象访问实例成员即可。在创建类的对象时,要注意其创建的位置,我在第一次创建时写在了静态方法外,即代码注释中的A,报出 阅读全文
摘要:
执行下段代码: 如代码所示,100(定义)写在200(初始化块)后面,最终执行结果是100,当二者顺序对调时,输出结果是200。因此,在执行Java代码时,类字段初始化时,成员定义默认值与初始化块,执行哪一个需要看其顺序,最终执行是排在后面的那个;第二次输出是调用了有参数的构造方法,因此类字段初始化 阅读全文
摘要:
下段代码为何报错(new Foo())? 原因:若类提供了一个自定义的构造方法,将导致系统不再提供默认的构造方法。 运行下段代码: 静态初始化块执行顺序: 运行时先执行static,即静态的初始化块,顺序是由父类先开始执行,再执行子类;之后由父类先开始执行普通的初始化块,再执行无参构造方法,最后执行 阅读全文