1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
2015-08-17
1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量
3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量
3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
2015-08-17
已采纳回答 / 思君满月
你记住在Java中{}通常代表了作用域,我们称为“块”,常见的有类,方法,初始化块,try...catch等。静态初始化块也是一个独立的作用域,所以你可以在其中定义一个同名变量而不报错,因为它和外边的f作用域不同。不过因为静态初始化块是局部作用域,所有可以可以访问类成员,这时你必须去掉类型声明,否则会变成变量的声明而非引用。
2015-08-17
继承的初始化顺序
1.初始化父类再初始子类
2.先执行初始化对象中属性,再执行构造方法中的初始化。
(执行顺序:父类初始化对象 父类构造方法 子类初始化对象 子类构造方法)
1.初始化父类再初始子类
2.先执行初始化对象中属性,再执行构造方法中的初始化。
(执行顺序:父类初始化对象 父类构造方法 子类初始化对象 子类构造方法)
2015-08-16
继承的初始化顺序
1.初始化父类再初始子类
2.先执行初始化对象中属性,再执行构造方法中的初始化。
(执行顺序:父类初始化对象 父类构造方法 子类初始化对象 子类构造方法)
1.初始化父类再初始子类
2.先执行初始化对象中属性,再执行构造方法中的初始化。
(执行顺序:父类初始化对象 父类构造方法 子类初始化对象 子类构造方法)
2015-08-16