java面向对象2(18) ​​​​​​​内部类的详解

java面向对象2(18) ​​​​​​​内部类的详解

 

通用格式:

public class A{

class B{

//内部类

}

}

静态内部类,成员内部类,局部内部类

匿名内部类

 

 

二. 静态内部类

  • 定义在成员位置的内部类,并且使用static修饰

  • 定义格式

public class Outer{

static class Inner{

//可以无视修饰符,随时访问外部类的静态成员

}

}

  • 访问格式:

Outer.Inner x = new Outer. Inner();

 

 

 

三.​​​​​​ 成员内部类

  • 定义在成员位置的内部类

  • 定义格式

public class Outer{

class Inner{

//其他代码

}

}

  • 访问格式:

Outer.Inner x = new Outer().new Inner();

 

 

 

小结:

静态内部类:

定义类加入static

静态内部类只能访问外部类的静态内容

new Outer.Inner();

 

成员内部类:

定义类无static

成员内部类可以访问外部类全部内容

成员内部类中不能定义静态内容

new Outer().new Inner();

 

四. 局部内部类(了解)

  • 定义在外部类的某个方法内部

  • 定义格式

public class Outer{

public void xxx{

class Inner{

//其他代码

}

}

}

  • 访问格式:

只能在外部类的方法内部 创建对象并访问。

 

 

 

 

五. 匿名内部类【阶段重点】

没有类名的内部类,匿名内部类

 

Java中,接口和抽象类不能直接创建对象,可以通过匿名内部类,使得接口和抽象类快速实现并创建对象

 

快捷继承抽象类,为抽象类创建对象:格式:

 new 抽象类名(){

//重写抽象类方法

};

 

 

 

快捷实现接口,为接口创建对象:格式:

new 接口名(){

//实现接口中所有的抽象方法

};

 

 

 

 

匿名内部类:

  1. 快捷为抽象类定义子类,创建对象

  2. 快捷为接口定义实现类,创建对象

 

 

今日总结:

内部类:

类中定义另一个类。

有名字:

静态内部类:

public class A{

static class B{

//可以无视访问权限修饰符,访问外部类任意静态内容

}

}

成员内部类:

public class A{

class B{

//可以无视访问权限修饰符,访问外部类任意内容

//限制:不能主动定义静态内容

}

}

 

 

局部内部类:方法中定义了一个内部类

 

没有名字:

匿名内部类

用于快捷继承抽象类,创建对象:

new 抽象类(){

//重写抽象类中所有抽象方法。

};

 

用于快捷实现接口,创建对象:

new 接口(){

//重写接口中所有抽象方法。

};

 

 

 

 

 

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

​​​​​​​