Java基础知识笔记第七章:内部类和异常类
内部类
/*
*Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类
*/
重要关系:
/*
*1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方法
*2.内部类的类体中不可以声明变量类变量和类方法(static)
*3.内部类仅供他的外嵌类使用。其他类不可以用某个类的内部类
*/ /*
*字节码文件:外嵌类$内部类名.class
*/ /*
*内部类可以被修饰为static,但是内部类不能操作外嵌类的实例成员变量
*/
匿名类
和子类有关的异常类
java允许我们直接使用一个类的子类体创建一个子类对象,也就是说创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称作:匿名类
new Bank{
匿名类的类体
};
特点:
/*
*匿名类可以继承父类的方法也可以重写父类的方法
*使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类
*匿名类可以访问外嵌类的成员变量和方法,匿名类的类体中不可以声明static成员变量/方法
*由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象的时候,要直接使用父类的构造方法
*/
和接口有关的匿名类
/*
假设Computable是一个接口,那么java允许直接用接口名和一个类体创建一个匿名对象,此类被认为是实现了Computable接口的类去掉声明后的类体,称作匿名类。
*/ new Computable{
实现接口的匿名类的类体
}
异常类
所谓异常就是运行时可能出现的一些错误,例如试图打开一个根本不存在的文件,异常处理将会改变程序的控制流程,让程序有机会对错误做出处理
try......catch语句
try{
包含可能发生的异常语句
}catch(ExceptionSubClass1 e){
.......
}
catch(ExceptionSubClass2 e){
.......
}
// 处理异常的时候可以自己try.....catch 也可以throw到上一层处理
public String getMessage();
public String toString();
public void printStackTrace(); //打印异常信息

自定义异常类
继承Exception做父类
写出构造方法
断言:
/*
断言:不准备通过异常来捕获错误,例如,当发生某个错误时,要求程序必须停止执行。
*/ 语法格式:
assert booleanExpression
assert booleanExpression:messageException; 例如,对应断言语句:
assert number >=0
//如果表达式number >=0的值为true,程序继续执行,否则程序立刻结束执行。
java -ea mainClass
小结:
Java基础知识笔记第七章:内部类和异常类的更多相关文章
- Java基础知识笔记第四章:类和对象
编程语言的几个发展阶段 面向机器语言 面向过程语言 面向对象语言:封装.继承.多态 类 类声明 class Person{ ....... } class 植物{ ....... } 类体 类使用 ...
- Java基础知识笔记(七:接口、变量作用域和参数传递)
一.接口 Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类.但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性.接口的定义格 ...
- Java基础知识笔记第六章:接口
接口 /* 使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口声明和接口体 */ interface Printable{ final int max=100; void ...
- Java基础知识笔记第三章:运算符表达式语句
算术运算符与表达式 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * ...
- Java基础知识笔记第五章:子类与继承
子类与父类 子类 class 子类名 extends 父类名{ ....... } 类的树形结构 子类的继承性 子类和父类在同一包中的继承性 子类继承了父类不是private的成员属性和成员方法 ...
- Java基础知识笔记第八章:常用的实体类
String类 String类位于lang包下 java会默认导入lang包下的类,所以可以直接使用,注意String是final类所以不能有子类 构造String对象: 常量对象:String常量也 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- Java基础知识笔记(一:修饰词、向量、哈希表)
一.Java语言的特点(养成经常查看Java在线帮助文档的习惯) (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最 ...
随机推荐
- angular 中引入 markdown
ngx-markdown 是 Angular2+ 的一个第三方库,它的主要功能是将md文件转换为HTML格式,并且支持语法高亮. GITHUB地址:https://github.com/jfcere/ ...
- 【Vue常用指令】
目录 v-html v-text v-for v-if v-show v-bind v-on v-model 指令修饰符 计算与侦听属性 自定义属性 获取DOM元素 "@ *** Vue.j ...
- C语言中二维数组如何申请动态分配内存
C语言中二维数组如何申请动态分配内存: 使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小 #include <stdio.h> #include <malloc. ...
- Delphi XE FireDac 连接池
在开发Datasnap三层中,使用FireDac 连接 MSSQL数据库. 实现过程如下: 1.在ServerMethods 单元中放入 FDManager.FDPhysMSSQLDriverLin ...
- C# 重载与重写
重载(overload) 指调用同一方法名,但各方法中参数的数据类型.个数或顺序不同. public static int Add(int x,int y) { return x + y; } pub ...
- 2019 EIS高校安全运维赛 misc webshell
webshell 第一种思路: 1.菜刀都是http协议,发的包都是POST包,所以在显示过滤器下命令:http.request.method==POST 2.右键,追踪tcp流,发现是蚁剑流量 3. ...
- laravel 事件系统
例子: 打开 VerificationController ,此控制器处理所有邮件认证相关逻辑: app/Http/Controllers/Auth/VerificationController.ph ...
- 关于pgsql 的json 和jsonb 的数据查询操作笔记整理
关于pgsql 的json 和jsonb 的数据处理笔记 1. json 和jsonb 区别两者从用户操作的角度来说没有区别,区别主要是存储和读取的系统处理(预处理)和耗时方面有区别.json写入快, ...
- php 发送手机验证码
嗯哼,做为一个好的程序猿,一定要给顾客爸爸剁手的时候,充分的告诉他,你剁完手了,所以不只有邮件通知还要有手机短信的通知,今天就来写一下php发送验证码 1.首先我就写了几个个方法,因为配置在后台,直接 ...
- Color the ball(差分数组)
N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色.但 ...