------- android培训、java培训、期待与您交流! ----------
1.概念
- 将一个类定义在另一个类的里卖弄,对里面那个类被称为内部类(内置累、嵌套类)。
2.定义
- class Outer
- {
- 成员变量
- class Inner
- {
- //内部类也可以定义成员变量、成员函数
- //内部类可以直接访问外部类的成员(包括私有),而不用创建外部类对象。
- void function()
- {
- }
- }
- void method()
- {
- inner in = new Inner();//创建inner对象
- in.function();//调用内部类方法。
- }
- }
3.使用方法
- 外部类访问内部类:创建内部类的对象,调用内部类的方法。
- 而内部类不需要创建外部类的对象,就可以直接使用外部类的成员(包括私有)。原因是内部类持有一个外部类的引用,这个引用的格式是:外部类.this。
- 在其他地方使用内部类时,需要加上外部类名,格式是:Outer.Inner in = new Outer().new Inner; 这种格式很少使用。一般情况是:内部类作为成员被私有修饰,不允许其他类直接访问。
4.访问规则
- 内部类定义在另一个类(外部类)里面,可以定义自己的成员变量、成员函数。
- 内部类也可以定义成员变量、成员函数
- 内部类可以直接访问外部类的成员(包括私有),而不用创建外部类对象。
5.访问规则2
-
当内部类在成员位置上,就可以被成员修饰符所修饰。
- 比如,
- private:将内部类在外部类中进行封装。
- static:内部类就具备static的特性。
- 当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限。
- 在外部其他类中,如何直接访问static内部类的非静态成员呢?
- new Outer . Inner().function();//新对象 外部类名.内部类().方法
- 在外部其他类中,如何直接访问static内部类的静态成员呢?
- Outer.Inner.function(); //外部类名.内部类名.方法
- 注意:
-
当内部类中定义了静态成员,该内部类必须是static的。这个是内部类的一个特点。
- 当外部类中的静态方法访问内部类时,内部类也必须是静态的。
6.内部类什么时候使用?
- 当类用来描述事物时,该事物中还有事物,该事物用内部类来描述,因为内部事务在使用外部事物的内容。举例:描述人体class body,人体由心脏等组成,心脏的描述成员太多,并且心脏访问人体里的其他数据,需要封装成一个类,心脏heart就是一个内部类。心脏不需要对外暴露,所以private。body 可以提供一个方法使外部访问,当然需要一些条件,不能随便访问心脏吧^_^。
分享到:
相关推荐
黑马QT讲义,适合QT入门,使用,教程很比较基础,新手可以看看,另外视频链接在哔哩哔哩中。
黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心
黑马程序员-SpringCloud-学习笔记01-认识微服务
黑马程序员 - Java基础教学 - 05 - 面向对象(1).doc
黑马程序员-SpringCloud-学习笔记-02-微服务拆分及远程调用
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490901
day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、...
黑马程序员 - 毕向东 - Java基础教学 - 第02天 个人观看视频总结文档
黑马程序员-java32期培训视频(基础+就业)黑马程序员-java32期培训视频(基础+就业)
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490903
黑马程序员-梅兰商城项目实战,包含图片素材和编写源码。
黑马程序员 - 毕向东 - Java基础教学 - 第01天 个人观看视频总结文档
C++黑马程序员-演讲比赛流程管理系统记录
黑马程序员 - Java基础教学 - 03 - 变量的作用域、for循环、break、continue、内存结构
行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给 普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装 JRE。 JDK(Java ...
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490905
黑马程序员 - Java基础教学 - 06 - 面向对象(2) - 关于静态static的那些事.doc
黑马程序员--毕向东全套Java视屏,讲解的相当全面,各位如果需要,尽快下载哦! 另外如果视频链接存在打不开的问题,请留言,必定及时更新链接。
2.有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 3.异步随机生成各种类型的客户,生成各类型用户的概率比例为: VIP客户:普通客户:快速客户 = 1 :6 :3。 4....
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490899