频道栏目
首页 > 资讯 > Java > 正文

Java 内部类

16-12-05        来源:[db:作者]  
收藏   我要投稿

将一个类定义在另一个类中,里面的那个类被称为内部类。内部类的出现再次打破了Java单继承的局限性。

访问特点

内部类可以直接访问外部类的成员,包括私有成员。

外部类访问内部类的成员,必须要创建内部类的对象。

内部类分类以及共性

内部类任然是一个单独的类,在编译时内部类会被编译成独立的字节码(.class)文件。但是在前面被冠以外部类的类名和$美元符号

内部类不能用普通的方式访问,内部类是外部类的一个成员,因此内部类可以直接访问外部类的成员变量,无论是否是private的。

成员内部类

在外部类中有成员变量和成员方法,成员内部类就是把整个一个类作为外部类的成员。

成员内部类是定义在 类中方法外的类

创建对象的格式:外部类名.内部类名 对象名 = 外部类名.内部类对象

成员内部类之所可以访问外部类的成员,是因为内部类中都持有一个外部类对象的引用:外部类名.this

成员内部类可以用的修饰符有:final,public,private,protected,static

静态内部类

静态内部类就是成员内部类加上static修饰符,定义在类中方法外

在外部类中访问静态内部类中有两种场景:

在外部类中访问静态类中的非静态成员:外部类名.内部类名 对象名 = 外部类名.内部对象,需要通过创建对象访问。

在外部类中访问内部类中的静态成员:外部类名.内部类名.静态成员

局部内部类

局部内部类是定义在方法中的类

方法内部类只能在该内部类的方法内被实例化,不可以在此方法外对其实例化。

方法内部类对象不能使用该内部类所在方法的非final局部变量

可用于方法内部类的访问修饰符有:final abstract

静态方法中的方法内部类只能访问外部的静态成员

匿名内部类

匿名内部类是内部类的简化写法,是建立一个带内容的外部类或接口的子类匿名对象。

前提

内部类可以继承或实现一个外部类或接口 格式
new 外部类类名或接口名() {重写方法} 通常在方法的形式参数是接口或抽象类,并且该接口的方法不超过三个时,可以将匿名内部类作为参数进行传递
相关TAG标签
上一篇:Java 权限修饰符
下一篇:太阳动力天文台最新拍摄到“太阳笑脸”照片
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站