首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
Java内部类
时间:
2016-01-23 01:19:56
阅读:
189
评论:
0
收藏:
0
[点我收藏+]
标签:
内部类(inner class)是定义在另一个类中的类,一种编译器现象,与虚拟机无关。
内部类的好处:
1.隐藏机制:内部类可以对同一个包中的其他类隐藏起来
2.内部类了解外围类:内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据
四种内部类:
成员内部类member inner class
静态内部类static inner class (nested class)
局部内部类local inner class
匿名内部类anonymous inner class
------------详细介绍--------------------
1.成员内部类:
可以访问它的外部类的所有成员变量和方法(无论静态、非静态)
自身没有静态成员
外部类里面创建成员内部类的实例:
this.new Innerclass();
在外部类之外创建内部类的实例:
new Outerclass().new Innerclass();
在内部类里访问外部类的成员:
Outerclass.this.member
2.静态内部类(Java面试题中要是说“嵌套类”也是它,估计出题人是C++转的)(没什么实际用处)
使用内部类只是为了把一个类隐藏在另外一个类的内部,并不需要内部类引用外围对象,可以将内部类声明为static,以便取消产生的引用
只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法
生成静态内部类对象的方式为:
OuterClass.InnerClass inner = new OuterClass.InnerClass();
3.局部内部类
在方法中定义、使用;
不能被public, protected, private和static修饰(像局部变量一样);
只能访问方法中定义的final类型的局部变量(初始化之后便不能更改);
在方法中定义,所以只能在方法中使用。
4.匿名内部类(使用最多)
没有名字的局部内部类;
用于只创建这个类的一个对象的场合(因此不必命名),通常是作为方法的参数;
隐式地继承了一个父类或者实现了一个接口;
限制:由于构造方法的名字与类名相同,而匿名类没有类名,所以,匿名类不能有构造方法;
----------对比----------------------------
自身
外围类
静态成员
非静态成员
静态成员
非静态成员
成员内部类
无
XXX
XXX
XXX/OutClass.this.XXX
静态内部类
XXX
XXX
XXX/OutClass.XXX
不能使用
局部内部类
无
XXX
XXX
XXX/OutClass.this.XXX
匿名内部类
无
XXX
XXX
XXX/OutClass.this.XXX
可见,静态内部类自成一排,其它三类合同一派。
局部内部类就像成员内部类的作用域缩小版,匿名内部类根本就是局部内部类的简化版;
难怪有个自成是美团的Java面试题说“比较 静态嵌套类 和 内部类 的不同”
Java内部类
标签:
原文地址:http://www.cnblogs.com/AndyHoo/p/5152518.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!