​

 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——内部类的更多相关文章

  1. Java内部类final语义实现

    本文描述在java内部类中,经常会引用外部类的变量信息.但是这些变量信息是如何传递给内部类的,在表面上并没有相应的线索.本文从字节码层描述在内部类中是如何实现这些语义的. 本地临时变量 基本类型 fi ...

  2. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  3. java 内部类 *** 最爱那水货

    注: 转载于http://blog.csdn.net/jiangxinyu/article/details/8177326 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又 ...

  4. Java内部类小程序(成员内部类,静态内部类,匿名内部类)

    /** * 测试java内部类(成员内部类,静态内部类,匿名内部类) * 局部内部类不常用,就不写了. * @package :java05 * @author shaobn * @Describe ...

  5. [转] Java内部类详解

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

  6. JAVA内部类(转)

    源出处:JAVA内部类 在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部.内部类作为其外部类的一个成员,与其他成员一样, ...

  7. java 内部类(摘抄自网络)

    Java内部类 1.内部类分为成员内部类.静态嵌套类.方法内部类.匿名内部类. 几种内部类的共性: A.内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类 ...

  8. 【转】Java内部类详解

    一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一 ...

  9. 从字节码的角度看Java内部类与外部类的互相访问

    Java中non-static内部类为何可以访问外部类的变量?Java中外部类又为何可以访问内部类的private变量?这两个问题困扰过我一段时间,查了一些网上的答案,大多从“闭包”概念入手,理解起来 ...

  10. Java 内部类.md

    Java 内部类 学习自 <Java编程思想> Overview 什么是内部类? Thinking In Java 中如此定义: 将一个类的定义放在里另一个类的定义的内部,这就是内部类. ...

随机推荐

  1. 我的第一部原创《JavaScript 全栈开发》正式上市了!

    在经过了漫长的创作.审校过程之后,<JavaScript 全栈开发>终于迎来了在各大平台上正式出版的日子,以下是这本书的基本信息: 出品方: 异步社区:https://www.epubit ...

  2. IOS小组件(8):App与Widget数据共享

    引言   Widget是一个迷你版的App,IOS有沙盒机制,不同App之间无法直接共享数据.组件和主App之间其实就是不同App的关系,所以也无法通过userdefaults.standard来传数 ...

  3. Git 高级用法,喜欢就拿去用

    如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的! 请注意我有意跳过了 git commit.git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」用法. 导航 ...

  4. 你知道这高效的12个Java精品库嘛?

    01. JUnit 第一个要说的当然是JUnit了,JUnit毕竟是Java圈目前最知名及常用的测试框架.JUnit之所以能够成为Java圈中最热门的测试库,是因为对于很多项目而言,单元测试是非常重要 ...

  5. 谷歌浏览器加载驱动(chromedriver)——selenium

    http://chromedriver.storage.googleapis.com/index.html 可以到该网站下载对应的谷歌驱动器(注意:需要版本和操作系统对应,其中windows统一32的 ...

  6. Linux网络基础TCP/IP

    1.osi:七层 上三层,主要是用户层面;下四层是实际进行数据传输物理层: 设备之间比特流的传输,物理接口,电气特性等 端口号的作用 通过IP找到服务器,通过端口号找到具体哪个服务.网页服务的端口号是 ...

  7. MySQL:一条SQL是如何执行的

    目录 MySQL基本架构 Server层 连接器 查询缓存 分析器 优化器 执行器 存储引擎层 InnoDB MyISAM Memory SQL执行流程 MySQL基本架构 在讲SQL语句是如何执行之 ...

  8. ZooKeeper集群解析

    ZooKeeper集群解析. 这篇文章中来介绍一下 ZooKeeper 相关的集群角色,还有 ZAB协议,集群的安装在 ZooKeeper入门 中有介绍. 一.ZooKeeper集群中的角色 Lead ...

  9. SpringCloud-OAuth2(四):改造篇

    本片主要讲SpringCloud Oauth2篇的实战改造,如动态权限.集成JWT.更改默认url.数据库加载client信息等改造. 同时,这应该也是我这系列博客的完结篇. 关于Oauth2,我也想 ...

  10. excel vba的inputBox函数

    Sub test1()    Dim h    Dim j As Integer    j = 0    Dim n1 As Integer '分行单元格在第几列    Dim m1 As Integ ...