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. Python分析离散心率信号(上)

    Python分析离散心率信号(上) 一些理论和背景 心率包含许多有关信息.如果拥有心率传感器和一些数据,那么当然可以购买分析包或尝试一些可用的开源产品,但是并非所有产品都可以满足需求.也是这种情况.那 ...

  2. 『言善信』Fiddler工具 — 6、Fiddler界面布局详解【命令行和状态栏】

    目录 1.命令行 2.状态栏 1.命令行 命令行在Fiddler的左下方的黑色窗口,也叫QuickExec,可以调用 Fiddler的内置命令. 这一系列内置的函数用于筛选和操作会话列表中的sessi ...

  3. java容器学习笔记

    容器 容器的组成 容器有两个接口Map和Collection. collection接口有List类和set类. List类可以分为:Vector.LinkedList.ArrayList.CopyO ...

  4. Druid数据库连接池基本使用

    一.导入Druid的jar包和数据库驱动jar包 二.定义配置文件 与c3p0不同,Druid的配置文件是properties形式的.而且Druid不像c3p0那样可以自动加载配置文件,Druid需要 ...

  5. 微信小程序 -- 基于 movable-view 实现拖拽排序

    微信小程序 -- 基于 movable-view 实现拖拽排序 项目基于colorui样式组件 ColorUI组件库 (color-ui.com) 1.实现效果 2. 设计思路 movable-vie ...

  6. 【VBA】判断文件是否存在

    效果: 源码: Sub 判断文件是否存在() Dim strcfg As String strcfg = "D:\a.cfg" If Dir(strcfg, vbDirectory ...

  7. spring boot 加载web容器tomcat流程源码分析

    spring boot 加载web容器tomcat流程源码分析 我本地的springboot版本是2.5.1,后面的分析都是基于这个版本 <parent> <groupId>o ...

  8. SpringCloud 面试题 (持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  9. Integer 如何实现节约内存和提升性能的?

    在Java5中,为Integer的操作引入了一个新的特性,用来节省内存和提高性能.整型对象在内部实现中通过使用相同的对象引用实现了缓存和重用. 上面的规则默认适用于整数区间 -128 到 +127(这 ...

  10. git stash回退

    目录 1.起因 2. 问题出现 3.修复 4. 注意 1.起因 这个问题要从今天刚遇到的事儿说起,昨晚代码出了个乌龙事件,本来正在dev分支进行新功能的开发,但是测试出现的问题是在release 分支 ...