内部类
<1>内部类的概念:定义在类或者方法 ( 代码块 ) 中的类。
<2>按照定义的位置可以分为:
成员内部类:定义在类里面 ( 像外部类的方法 )
局部内部类:定义在方法或者代码块中的类
<3>内部类得特点:
内部类可以直接访问外部类的成员。
外部类要访问内部类的方法,必须要创建内部类对象。
<4>成员内部类:
哪些修饰符可以修饰成员内部类?
<5> 4 种访问控制修饰符, static , final , abstract
<6>局部内部类:
哪些修饰符可以修饰局部内部类?
final abstract
<7>非静态内部类实例化的语法:
<8>静态内部类实例化的语法:
<9>静态内部类和非静态内部类的区别:
(1)在静态内部类中,只能访问外部类中的静态属性和方法。
(2)在非静态内部类中,外部类的成员都可以访问。
(3)在静态内部类中可以定义静态的属性和方法,但是在非静态内部类中不可以。
创建对象的方式不一样。
<10>如果在外部类中定义的成员变量,和内部类的成员变量名一致时,可以使用 this 关键字来区分。
this. 属性名 内部类中的成员变量
外部类名 .this. 属性名 外部类中的成员变量
<11>局部内部类,只能访问方法(此内部类所在的方法)中的常量 ( 被 final 修饰的变量 ) 和外部类的成员
<12>匿名内部类:没有名字的类。
通常使用的场景: 当想要创建抽象类或者接口的对象的时候。 语法: new 父类或者接口 () { … 实现接口(抽象类)中的所有抽象方法 };
<1>内部类的概念:定义在类或者方法 ( 代码块 ) 中的类。
<2>按照定义的位置可以分为:
成员内部类:定义在类里面 ( 像外部类的方法 )
局部内部类:定义在方法或者代码块中的类
<3>内部类得特点:
内部类可以直接访问外部类的成员。
外部类要访问内部类的方法,必须要创建内部类对象。
<4>成员内部类:
哪些修饰符可以修饰成员内部类?
<5> 4 种访问控制修饰符, static , final , abstract
<6>局部内部类:
哪些修饰符可以修饰局部内部类?
final abstract
<7>非静态内部类实例化的语法:
(1)在静态内部类中,只能访问外部类中的静态属性和方法。
(2)在非静态内部类中,外部类的成员都可以访问。
(3)在静态内部类中可以定义静态的属性和方法,但是在非静态内部类中不可以。
创建对象的方式不一样。
<10>如果在外部类中定义的成员变量,和内部类的成员变量名一致时,可以使用 this 关键字来区分。
this. 属性名 内部类中的成员变量
外部类名 .this. 属性名 外部类中的成员变量
<11>局部内部类,只能访问方法(此内部类所在的方法)中的常量 ( 被 final 修饰的变量 ) 和外部类的成员
<12>匿名内部类:没有名字的类。
通常使用的场景: 当想要创建抽象类或者接口的对象的时候。 语法: new 父类或者接口 () { … 实现接口(抽象类)中的所有抽象方法 };