10、Java——内部类
1、类中定义类
(1)当一类中的成员,作为另外一种事物的时候,这个成员就可以定义为内部类.
(2)分类:①成员内部类
②静态内部类
③私有内部类
④局部内部类
⑤匿名内部类
⑥Lambda表达式
2、成员内部类
(1)一个类定义在外部类的成员位置就为成员内部类,具有类的特点,继承,实现...成员内部类具有成员的特点,被成员修饰符修饰。
(2)注意:①在成员内部类中不能定义静态内容,除了静态常量,静态内部类才能任意定义静态内部。
②在成员内部类中可以使用外部类中的成员,包括私有的,静态的。
③在外部类中可以跟随成员内部类的对象使用成员内部类的成员。
③成员内部类的对象性需要通过外部类对象构建 外部类名.内部类类名 引用 = new 外部类().new 内部类()。
⑤跟随内部类的对象使用内部类的成员,注意访问权限。


3、静态内部类:
(1)可以定义静态内容(成员),成员内部类中不可以直接定义静态内容除了静态常量以外。
(2)静态内部类中可以直接使用外部类中静态内容,需要通过外部类对象使用外部类中的成员(因为内部类本身是静态的)。
(3)外部类中可以直接通过内部类对象使用内部类成员,可以通过内部类的类名使用内部类静态内容。
(4)其他类中使用静态内部类中内容:
①静态内部类中的静态内容 : 外部类类名.内部类类名.静态内容
②静态内部类中的成员内容: new 外部类类名.内部类类名(); 通过内部类对象调用它成员。

4、私有内部类
只能在当前外部类中通过内部类对象使用。

5、局部内部类
(1)不能被成员修饰符等修饰(public,private,protected,static)。
(2)局部内部类中不能定义静态内容,除了静态常量。
(3)局部内部类中可以直接使用外部类成员,可以使用所在方法中的局部变量。
(4)局部内部类智能在当前所在的方法中通过内部类对象使用,其他位置无法使用。
(5)在局部内部类中使用了所在方法中的局部变量|形参,这个局部变量会默认被final修饰。
(6)jdk8开始默认被final修饰,jdk7及之前需要显示被final修饰

6、匿名内部类
(1)作用: 用来简化没有本身自己作用的实现类 | 子类。
(2)上层 : 接口 | 抽象类。


7、Lambda 表达式
jdk8新增lambda表达式
(1)作用: 为了简化匿名内部类对象
(2)前提: 函数式接口
(3)函数式接口 : 只有一个必须被重写的抽象方法的接口
(4)强制检测是否为函数式接口:注解: @FunctionalInterface
(5)语法:
()->{}
() : 匹配要重写的抽象方法的参数列表
-> : 箭头函数 箭头符号
{} : 要重写的抽象方法的方法体


8、异常:
程序无法正常执行完毕
(1)异常体系:
Throwable
/ \
Error Exception
(2)Error : 错误,一般由虚拟机生成并脱出,无需要程序猿管理
(3)Exception : 异常
①CheckedException 编译时异常|检查时异常: 发生在程序编译期间程序如果遇到编译时异常没有处理,程序无法正常运行
②RuntimeException 运行时异常 : 发生程序运行期间一般可以通过增强程序健壮性的代码处理 if
(4)注意 :如果程序遇到异常没有处理,无法继续执行
(5)常见的一些运行时异常:
①空指针异常 NullPointerException
②数组越界异常 ArrayIndexOutOfBoundsException
③数组长度负数异常 NegativeArraySizeException
④类型转换异常 ClassCastException
⑤数学异常 ArithmeticException
⑥数字格式异常 NumberFormatException

10、Java——内部类的更多相关文章
- Java内部类final语义实现
本文描述在java内部类中,经常会引用外部类的变量信息.但是这些变量信息是如何传递给内部类的,在表面上并没有相应的线索.本文从字节码层描述在内部类中是如何实现这些语义的. 本地临时变量 基本类型 fi ...
- Java内部类详解
Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...
- java 内部类 *** 最爱那水货
注: 转载于http://blog.csdn.net/jiangxinyu/article/details/8177326 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又 ...
- Java内部类小程序(成员内部类,静态内部类,匿名内部类)
/** * 测试java内部类(成员内部类,静态内部类,匿名内部类) * 局部内部类不常用,就不写了. * @package :java05 * @author shaobn * @Describe ...
- [转] Java内部类详解
作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...
- JAVA内部类(转)
源出处:JAVA内部类 在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部.内部类作为其外部类的一个成员,与其他成员一样, ...
- java 内部类(摘抄自网络)
Java内部类 1.内部类分为成员内部类.静态嵌套类.方法内部类.匿名内部类. 几种内部类的共性: A.内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类 ...
- 【转】Java内部类详解
一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一 ...
- 从字节码的角度看Java内部类与外部类的互相访问
Java中non-static内部类为何可以访问外部类的变量?Java中外部类又为何可以访问内部类的private变量?这两个问题困扰过我一段时间,查了一些网上的答案,大多从“闭包”概念入手,理解起来 ...
- Java 内部类.md
Java 内部类 学习自 <Java编程思想> Overview 什么是内部类? Thinking In Java 中如此定义: 将一个类的定义放在里另一个类的定义的内部,这就是内部类. ...
随机推荐
- CUDA统一内存分析
CUDA统一内存分析 PascalMIG 如 NVIDIA Titan X 和 NVIDIA Tesla P100 是第一个包含页 GPUs 定额引擎的 GPUs ,它是统一内存页错误处理和 MIG ...
- 现代传感器的接口:中断驱动的ADC驱动程序
现代传感器的接口:中断驱动的ADC驱动程序 Interfacing with modern sensors: Interrupt driven ADC drivers 研究了如何编写一个阻塞的模数转换 ...
- 『言善信』Fiddler工具 — 10、Fiddler自动响应器(AutoResponder)的应用
目录 1.图片重定向 2.URL重定向 3.本地调试js文件 4.模拟Mock接口测试 5.综合练习 6.总结 介绍几个Fiddler自动响应器(AutoResponder)应用场景: 场景一:生产环 ...
- Redis五种基础与三种高级数据结构解析
记得点赞+关注呦. 前言 在 Redis 最重要最基础就属 它丰富的数据结构了,Redis 之所以能脱颖而出很大原因是他数据结构丰富,可以支持多种场景.并且 Redis 的数据结构实现以及应用场景在面 ...
- 我的新书《C++服务器开发精髓》终于出版啦
一.千呼万唤始出来 亲爱的各位读者,我的新书<C++ 服务器开发精髓>终于终于终于与大家见面了,图书如下: 图书的封面设计很精美,当然内容一定不负众望.因出版社老师要求提供一张照片放到封面 ...
- 微信获取信息发生错误(两个access_token的区别),错误代码:40001,说明:invalid credential, access_token is invalid or not latest hints
微信有两个access_token,一个是基础access_token,一个是网页授权access_token. 想要获取不带unionid的用户信息(以下链接)使用基础access_token ht ...
- 浅析uniapp
前端跨平台框架 之uniapp入门浅析 技术的发展总日新月异,处在风口,前端技术的发展尤为迅速,跨平台的概念也在前端流行起来.从最早期PhoneGap.lonic.Cordova,到近年来的Reac ...
- canvas绘制动画的技巧
我们拿下图中的沿着线段轨迹移动的原点来举例,怎么来实现这个动画! 1)定义路径集合Path,里面规定关键坐标点如startPoint和endPoint,设置从startPoint移动到endPoint ...
- R-常见错误
错误一:选择了未定义的列(Undefined columns are selected) 改正方法:把目标列转换成因子类型(as.factor) 使用代码如下: 或者: 错误二:太多(36119)的重 ...
- 5.1 万 Star!不用 root 就能连接控制安卓的开源工具
[导语]:一款在 PC 端控制安卓设备的小工具.可在 PC 和安卓设备间互通剪贴板.用电脑键盘打字.传输文件.安装程序.截图.录屏等等功能. 简介 scrcpy 可以显示并控制通过 USB (或 TC ...