【JavaSE】内部类

发布于:2023-01-10 ⋅ 阅读:(265) ⋅ 点赞:(0)

目录

一、定义

二、内部类的分类

 三、实例内部类

1、语法

2、注意

3、实例化

四、静态内部类

 1、语法

 2、注意 

 3、实例化

 五、本地内部类

1、语法

2、注意

3、实例化


一、定义

将一个类定义在类的内部,或者方法的内部,我们就叫内部类

语法:class A{

              ……

        class B{

                ……

        }

}

要注意的是内部类与外部类公用一个Java文件但是编译后生成不同的字节码文件

二、内部类的分类

内部类一共分为4种,分别是

实例内部类

静态内部类

匿名内部类

本地内部类

 三、实例内部类

1、语法

语法:

class A{

        ……

        class B{

                ……

        }

}

   2、注意

1.实例内部类不能定义static(静态)的成员变量,如果要定义必须得让final修饰

2.实例内部类不能定义static(静态)得成员方法

3.在实例内部类里可以直接访问外部类里的成员变量

4.在实例内部类里访问与外部类同名的变量时:外部类名.this.变量

 

5.在实例内部类里访问外部类里的静态成员变量时:外部类名.变量 

 3、实例化

实例化实例内部类时,有两种方法

 第一种,先实例一个外部内对象,再通过他实例一个实例内部类对象

 第二种直接实例

四、静态内部类

1、语法

语法:

class A{

        ……

        static class B{

                ……

        }

2、注意 

1.静态内部类里不能直接访问外部类里非静态的成员变量,要访问必须实例化一个外部类对象 

 

要访问实例化一个外部类对象

 

2.静态内部类里可以有静态的成员方法和静态的成员变量

 3.创建静态内部类对象时,不需要先创建外部类对象

4.静态内部类里只能直接访问外部类里的静态成员变量

 3、实例化

语法:外部类名.静态内部类名 对象名 = new 外部类名.静态内部类名();

 五、本地内部类

1、语法

语法:他是定义在方法里面的类

public void func(){

        class A{

                ……

        }

}

2、注意

1.局部内部类不能被public、private等访问修饰限定符修饰

2.只能在方法里面使用 

3、实例化