13.Java核心技术—内部类
内部类(inner class):是定义在另一个类中的类,使用内部类的原因有三点:一是,内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据,
但是外部类不能直接访问内部类的成员; 二是,内部类可以对同一个包中的其他类隐藏起来;三是,当需要定义个回调函数且不想编写
大量代码时,使用匿名内部类不叫好。
注意:内部类不依赖于外部类,内部类可用static、protected和private修饰,外部类只能用public和default(省略的)修饰。
内部类的分类:成员内部类、静态内部类、局部内部类和匿名内部类
成员内部类:作为外部类的一个成员存在,与外部类的属性和方法并列。在内部类中访问实例变量:this.属性
在内部类访问外部类的实例变量:外部类名.this.属性。对于一个名叫Outer的外部类和名叫Inner的内部类,编译完成后出现Outer.class和
Outer$Inner.class两类。
建立内部类对象的时候要注意:在外部类的内部可以直接使用,Inner in=new Inner();
而在外部类的外部生成一个内部类对象,需要通过外部类对象生成。Outer.Inner in=new Outer().new Inner();
静态内部类:定义在类中,用static修饰。静态内部类可以直接访问外部类的静态成员,但是不能直接访问外部类的实例成员,可以通过外部类的实例来访问。
静态内部类可以定义静态成员,其他的内部类不可以。
生成一个静态内部类的对象:Outer.Inner in=new Outer.Inner()
局部内部类:在方法中定义的内部类,类似局部变量。声明局部内部类的时候不可加修饰符public、protected、private其范围为定义它的范围。可以访问外部类的
所有成员,此外,还可以访问所在方法中的final类型的参数和变量。我们特别注意的是在类外不可直接生成局部内部类,这是要保证局部内部类对外是
不可见的。要想使用局部内部类,需要生成对象,但是只能在方法中使用局部内部类。
匿名内部类:它是一个特殊的局部内部类,局部内部类的特性对它都适用。它没有类名,它是用一种隐含的方式实现一个借口或继承一个类。它没有构造方法。它一
定在new的后面。
转载于:https://www.cnblogs.com/crearo-ssy/archive/2012/05/02/2479359.html
13.Java核心技术—内部类相关推荐
- java核心技术卷I 第1-3章 笔记
java核心技术卷I 第1-3章 本书将详细介绍下列内容: ● 面向对象程序设计 ● 反射与代理 ● 接口与内部类 ● 异常处理 ● 泛型程序设计 ● 集合框架 ● 事件监听器模型 ● 使用Swing ...
- java 13个核心技术3
前端时间由于软考的原因,已经开始了j2se的学习,马士兵老师带我们走进了java的世界.最近在学习j2ee的过程中,了解到java的13个核心技术,于是先来个宏观的了解吧. 其实java的大方向就是j ...
- java 13种技术_JavaEE的13种核心技术
Java的大方向就是JavaEE,JavaEE不仅仅是socket编程,具体包括13中核心技术. JavaEE平台由一整套服务(Services).应用程序接口(APIs)和协议构成,它对开发基于We ...
- 13种Java核心技术
Java13种核心技术 JAVA最初是在浏览器和客户端机器中粉墨登场的.当时,很多人质疑它是否适合做服务器端的开发.现在,随着对JAVA2平台企业版(J2EE)第三方支持的增多,JAVA被广泛接纳为开 ...
- Java核心技术第一周学习总结
第三章:Java的基本程序设计结构 一.基本数据类型 列举 byte(字节型).short(短整型).int(整型).long(长整型).float(单精度浮点型).double(双精度浮点型).bo ...
- 《Java核心技术 卷Ⅰ》读书笔记一
Java核心技术·卷 I(原书第10版) 作者: [美] 凯.S.霍斯特曼(Cay S. Horstmann) 出版社: 机械工业出版社 原作名: Core Java Volume I - Funda ...
- Java核心技术·卷I(原书第12版)
内容介绍... 随着Java的发展,<Java核心技术>从第1版到第11版一路走来,受到了广大Java程序员的青睐,成为最畅销的Java经典书籍. 这本书已经过彻底的修改,涵盖了Java ...
- Java核心技术(一)
Java核心技术(一) 前言 <Java 核心技术>第 10 版增加了 Java 8 的相关内容,最新版为第 11 版.文章目录与书籍目录一致,仅以此作为书籍第 10 版学习的笔记,非零基 ...
- java核心技术精讲-李兴华-专题视频课程
java核心技术精讲-101993人已学习 课程介绍 本课程主要读者全面细致的讲解Java编程的所有核心知识,从基础语法.到面向对象以及Java的实际应用进行完整讲解.官方QQ群:61 ...
最新文章
- #用construct2做游戏
- mysql clob转string_Java获取Oracle中CLOB字段转换成String
- mysql 安装 utf8mb4_mysql 安装和修改编码(utf8mb4)
- python访问数据库
- oracle undo表空间缩小,缩小undo表空间全记录
- 有哪些让人相见恨晚的Python库(一)
- 超级外链工具_慈溪SEO优化_豆瓣外链:豆瓣小组做外链的注意事项?
- Spring整合ActiveMQ之嵌入(二)
- 集成计划排程计划以及管控体系的几个特征
- 用函数调用的方法输出乘法口诀表
- Cannot load module file xxx.iml Intellij
- linux运行tomcat常见问题,linux – tomcat运行,但是8080端口没有响应
- 隐马尔可夫模型及其基本假设
- qtcpserver无法启动监听_EOS基础全家桶(四)启动节点
- latex参考文献顺序不对_Latex-引用文献按引用顺序排号
- 学校实训 电力巡检系统管理平台
- MySQL完全卸载教程
- 生鲜电商带火冷链物流,中、圆、申三通如何拼了命地排兵布阵
- dz论坛php如何使用html模板,discuz自定义模板制作方法
- 电容触摸技术实用教程