内部类--毕向东Java基础教程学习笔记
来源:互联网 发布:c 语言 多线程共享数据 编辑:程序博客网 时间:2024/05/29 18:33
1. 内部类可以直接访问外部类的成员,包括私有。
之所以可以直接访问外部类的成员,是因为内部类中持有外部类的引用,格式:外部类名.this
2.外部类要访问内部类,必须建立内部类对象。
访问格式:
1.当内部类定义在外部类的成员位置上并且非私有时,可以在外部其他类中,直接建立内部类的对象。
格式:
外部类名.内部类名 变量名=外部类对象.内部类对象;
如:Outer.Inner in=new Outer().new Inner();
2.当内部类在成员位置上,就可以被成员修饰符所修饰。
比如private:将内部类在外部类中进行封装。
static:内部类就具备了static的特性。
当内部类被static修饰后,只能访问外部类的静态成员,出现了访问局限。
在外部其他类中,如何直接访问static内部类的静态成员呢?
Outer.Inner.function();(Inner 是静态的,可以直接通过外部类名Outer来访问;function也是静态的,可以直接通过其所在类的类名Inner访问。)
注意:如果在内部类中定义了静态成员,则该内部类必须也是静态的。
当外部类中的静态方法中需要访问内部类时,内部类必须也是static的。
总的来说就是那个比较常见的提示:“不能在静态上下文中引用非静态变量”。
3.因为内部类可以定义在外部类中任意的位置。
当内部类被定义在局部时(比如,在方法中):
1.不可以被成员修饰符修饰。
2.可以直接访问外部类中的成员,因为还持有外部类的引用。
但不可以访问它所在的局部区域中的变量,除非该变量被final修饰。
什么时候需要使用内部类?
当描述事物时,事物的内部还有事物,在内部的事物就用内部类来描述,因为内部事物需要使用外部事物的内容。
- 内部类--毕向东Java基础教程学习笔记
- 匿名内部类--毕向东java基础教程学习笔记
- 毕向东Java视频学习笔记【Day10 多态+内部类】
- java毕向东听课笔记9( 匿名内部类)
- 多线程--毕向东java基础教程视频学习笔记
- 网络编程3--毕向东java基础教程视频学习笔记
- 网络编程2--毕向东java基础教程视频学习笔记
- 网络编程4--毕向东java基础教程视频学习笔记
- 异常处理——毕向东Java基础教程学习笔记
- 多线程--毕向东java基础教程视频学习笔记
- 网络编程1--毕向东java基础教程视频学习笔记
- IO流01--毕向东JAVA基础教程视频学习笔记
- IO流02--毕向东JAVA基础教程视频学习笔记
- IO流03--毕向东JAVA基础教程视频学习笔记
- IO流04--毕向东JAVA基础教程视频学习笔记
- IO流05--毕向东JAVA基础教程视频学习笔记
- 网络编程2--毕向东java基础教程视频学习笔记
- 网络编程3--毕向东java基础教程视频学习笔记
- 团队合作要服务化,拒绝代劳
- Netcat 工具用于设备间文件传输
- BZOJ 4205: 卡牌配对
- 异常处理——毕向东Java基础教程学习笔记
- IEnumerable vs IQueryable
- 内部类--毕向东Java基础教程学习笔记
- 管理类书籍读后感(散落在外的那些)
- 初学多线程练习1--电子时钟
- MySQL中删除重复数据只保留一条
- Weak & Strong Alias(强弱别名)
- js组合继承(原型链+对象冒充)
- 简单的Windows登陆界面设计
- 我常用的计划安排表
- 将切片地图服务导出成移动端TPK包的操作说明