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 中如此定义: 将一个类的定义放在里另一个类的定义的内部,这就是内部类. ...
随机推荐
- 多核片上系统(SoC)架构的嵌入式DSP软件设计
多核片上系统(SoC)架构的嵌入式DSP软件设计 Multicore a System-on-a-Chip (SoC) Architecture SoCs的软件开发涉及到基于最强大的计算模型在各种处理 ...
- Nsight Compute Profilier 分析
profiler报告包含每次内核启动分析期间收集的所有信息.在用户界面中,它包含一个包含常规信息的标题,以及用于在报告页面或单个收集的启动之间切换的控件.默认情况下,报告以选定的详细信息页面开始. 页 ...
- python+selenium基础篇,By定位元素
1.By定位和find_element_by_XXXXXX是一样的,如下图所示,定位元素的方法都是一样的 2.使用By定位代码如下所示 from selenium import webdriver f ...
- 四、提高SSH服务安全
配置基本安全策略 [root@proxy ~]# vim /etc/ssh/sshd_config //调整sshd服务配置 .. .. Protocol 2 ...
- Feign Client 原理和使用
Feign Client 原理和使用 一块石头 公众号:好奇心森林 关注他 创作声明:内容包含虚构创作 6 人赞同了该文章 最近一个新项目在做后端HTTP库技术选型的时候对比了Spring We ...
- C#WebApi的创建与发布
VS中新建项目-Web-ASP.NET Web应用程序 然后确定,选择空模版就可以了,勾上Webapi(也可以选择webapi模板,这样生成的文件比较多) 添加好之后Controllers和Model ...
- 使用Let’s Encrypt实现网站https化
使用 Let's Encrypt 证书和搭配 Nginx 实现网站 https 化. 一.SSL证书获取 由于 Let's Encrypy 申请的 SSL 证书只有三个月的有效期,为了实现自动续期,使 ...
- Vue(11)组件化的基本使用
前言 有时候有一组html结构的代码,并且这个上面可能还绑定了事件.然后这段代码可能有多个地方都被使用到了,如果都是拷贝来拷贝去,很多代码都是重复的,包括事件部分的代码都是重复的.那么这时候我们就可以 ...
- Vue 利用后端的数据字典和Map对象实现表格列字段动态转义的处理方案
1.前言 Vue中,使用el-table组件,经常遇到列字段转义的问题.常规处理方法有以下两种: 方法1:在模板中使用v-if,直接转义.如: <el-table-column label= ...
- 10.ODBC创建/读取Excel QT4
看到一篇MFC的参考链接:https://blog.csdn.net/u012319493/article/details/50561046 改用QT的函数即可 创建Excel //创建Excel v ...