Fork me on GitHub

非静态内部类

Posted on 2019-09-04 18:11  攀一座山  阅读(515)  评论(0编辑  收藏  举报

1、语法格式

【修饰符】 class 外部类 【extends 外部类的父类】【implements 外部类的父接口们】 {
    【其他修饰符】 class 非静态内部类名 【extends 内部类的父类】【implements 内部类的父接口们】{
        
    }
}

  

public class Outer{
	
    public class Inner{
       
    }    
   
}

  

2、特点

(1)非静态内部类也是类,

A:也有自己的字节码文件:外部类名$非静态内部类名.class

B:它可以继承自己的父类,实现自己的父接口们

C:它可以有自己的各种成员:属性、方法、构造器、代码块、内部类

注意:不能有静态成员

(2)非静态内部类可以使用外部类的成员,包括外部类的私有的成员

(3)在外部类的非静态成员中可以使用非静态内部类,而静态成员中不能使用非静态内部类

A:使用非静态内部类的非静态成员,使用“对象."

B:外部类也能使用非静态内部类的私有成员

(4)在外部类的外面如何使用非静态内部类

使用非静态内部类的非静态成员,先要创建非静态内部类的对象

//先创建外部类的对象
外部类名 out = new  外部类名(【实参列表】);

//创建非静态内部类的对象
外部类名.非静态内部类名  对象名 = out.new 非静态内部类名(【实参列表】);

(5)非静态内部类都可以有什么修饰符

A:4种权限修饰符

C:final

D:abstract

Copyright © 2024 攀一座山
Powered by .NET 8.0 on Kubernetes