内部类:有静态内部类和非静态内部类,并且允许在内部类里面再写内部类,但是我们不讨论内部类的内部类,这里跳过,没必要搞复杂 (2)静态内部类中不能使用外部类的非静态的成员 (3)在外部类中,使用静态内部类,和使用其他的类一样的原则, 如果使用静态内部类的静态成员,直接“静态内部类名.” 如果使用静态内部类的...
1. Java的静态内部类 静态内部类是使用static关键字修饰的内部类。它不需要依赖于外部类的实例即可存在和实例化。静态内部类可以访问外部类的静态成员(包括静态变量和静态方法),但不能直接访问外部类的非静态成员(除非通过外部类的实例)。 java public class OuterClass { private static String staticOuterField = ...
3、内部类可以引用外部类的静态或者非静态属性或者方法。 二、静态内部类: 1、属性和方法可以声明为静态的或者非静态的。 2、实例化静态内部类:比如:B是A的静态内部类,A.B b = new A.B(); 3、内部类只能引用外部类的静态的属性或者方法。 4、如果属性或者方法声明为静态的,那么可以直接通过类名直接使用。...
使用static修饰的内部类我们称之为静态内部类,我们要知道只要是static修饰的类那它一定是内部类,不可能是外部类。 静态内部类与非静态内部类之间存在一个最大的区别,我们知道非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围类 的对象,但是静态内部类却没有。没有这个引用就意味着: 1...
一、非静态内部类: 1、变量和方法不能声明为静态的。(类的编译顺序:外部类--静态方法或属性--内部类,如果内部类声明为静态的,造成编译顺序冲突。个人理解) 2、实例化的时候需要依附在外部类上面。比如:B是A的非静态内部类,实例化B,则:A.B b = new A().new B(); 3、
1. 对外部类的访问权限(静态内部类不持有外部类的引用) 在普通内部类中,可以直接访问外部类的属性、方法,即使是private类型也可以,这是因为普通内部类持有外部类的引用,可以自由访问。而静态内部类只能访问外部类的静态方法和静态属性(如果是private也能访问)。
并且可以被外部类的方法访问和创建。Java内部类可以被设计成静态和非静态两种,这是为了更好地满足不同...
某些内部类(非静态内部类)的实例与外部类的实例之间存在紧密的生命周期联系,它们共享同一个外部类实例...
一:静态内部类:又叫静态嵌套类,静态内部类就是个独立的类,它不持有外部类的对象,自己完全可以独立存在。 之所以要弄这么个东西,只是起到一个注释的效果,而且这个注释可静态检查。 比如有A,B两个类,B有点特殊,虽然可以独立存在,但只被A使用。 这时候怎么办?如果把B并入A里,复杂度提高,搞得A违反单一职责。如...
在Java中内部类主要分为成员内部类(非静态内部类、静态内部类)匿名内部类、局部内部类。成员内部类可以用public、private、protected、default任意进行修饰。 非静态内部类(外部类里使用非静态内部类和平时使用其它类没什么不同) 非静态内部类可以直接访问外部类的成员但是外部类不能直接访问非静态内部类成员,可以通过创...