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 中如此定义: 将一个类的定义放在里另一个类的定义的内部,这就是内部类. ...
随机推荐
- [NOIP2010 提高组] 机器翻译
问题描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先在内存中查 ...
- git介绍及使用
一.架构 版本库(仓库):工作区中有一个隐藏目录.git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容. 暂存区:版本库中包含一个临时区域,保存下一步要提交的文件. 分支:版本库中 ...
- 【NX二次开发】图标图像
用户定义位图的目录位置的环境变量 UGII_BITMAP_PATH 在NX日志中查看NX图标需要设置的变量 变量名:PRINT_DIALOG_BITMAP_NAMES 变量值:1 查看系统图标的方法1 ...
- 想玩转JAVA高并发,这些概念你必须懂
高并发高并发 它是互联网分布式系统架构设计中必须考虑的因素之一,通常是指,保证系统能够同时并行化处理海量请求 同步和异步 同步:发送一个请求,等待返回,然后再发送下一个请求.提交请求 -> 等待 ...
- NOIP模拟测试8「寿司」
考试时打的类似$n^2$暴力,然后炸了只有10分 后来验证我的算法伪了. 题解 显然你有一种解法,假设你要在一个B点断开将R分别移向最左 最右,这样只用分别计算B点右面蓝色数量左面蓝色数量就得到了一个 ...
- 【题解】localmaxima 数论
# T749 localmaxima 权限限制没有超链接 题目描述 Description 给出一个排列,若其中一个数比它前面的数都大,则称为localmaxima数,求一个随机排列中localmax ...
- Golang学习(用代码来学习) - 第五篇
/** 并发控制:context的学习 */ func context_test() { PrintStartSeperator("context_test") ctx, canc ...
- gRPC(2):四种基本通信模式
在 gRPC(1):入门及简单使用(go) 中,我们实现了一个简单的 gRPC 应用程序,其中双方通信是简单的请求-响应模式,没发出一个请求都会得到一个响应,然而,借助 gRPC 可以实现不同的通信模 ...
- kube-controller-manager源码分析-PV controller分析
kubernetes ceph-csi分析目录导航 概述 kube-controller-manager组件中,有两个controller与存储相关,分别是PV controller与AD contr ...
- 关于使用Draw.io画数据库E-R图的说明
背景简介 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型. diagrams.net是用于构建图表 ...