接口、异常

1.接口的概念:
接口是抽象方法和常量值的一个集合;
接口是一种特殊的抽象类,这种抽象类里面只能有抽象方法,不能有普通方法;
接口定义了某一些类所需要的遵循的规范,接口不用关心这些类里面的数据,也不用关心方法的具体实现;


2.接口定义的语法:
class---》类
interface---》接口
[访问修饰符] interface 接口名字 [extends 接口1,接口2]{
定义具体的抽象方法;
定义常量;
}
[]里面的内容可有可无;




3.接口内部:
在接口里面定义的方法没有用abstract来修饰,默认会加上abstract,因为接口里面默认就是抽象方法;
在接口里面定义常量,int i=10;public static int j=10;都会转换成:public static final+变量名
接口里面只能是公共的静态的常量;
在接口里面声明抽象方法,一旦省略了访问修饰符,系统会自动加上访问修饰符,在接口里面所有的的抽象方法默认都是public;
接口是用于其他类进行实现的,类的访问权限也应该设置为public;

4.接口可以继承接口,还可以继承多个接口---》等价于 一个类实现多个接口;

接口可以补充当前java类不能多继承的缺陷;


异常:
概念:指的是程序在运行期间出现的错误;
出现错误最重要的是查看代码行,关注错误的名字;


java运行时,默认将这个错误打印到控制台;
异常的分类:
1.Error:错误不是异常,指的是用户和程序无法控制的问题,系统内部出现的错误,开发不需要在代码里面去处理;
2.Exception:所有异常的父类,其子异常对应各种不同的异常情况,一般出现了异常都需要用户进行捕获处理;
检查异常(Exception):一般都是用户代码错误或者是程序无法预见的错误;例如:打开文件,提示文件不存在;

运行异常(Runtime Exception):在运行的过程中发生的,可以被程序员避免的异常,可以被忽略,提示开发人员写的代码需要被优化;
例如:被除数为:0,下标越界都是运行异常;


异常的执行流程:
1.main方法在栈的最底部,method2在栈的最顶部,如果method2抛出了异常,会马上移出方法栈;
2.当前出现的问题会同时抛给调用者method1,method1发现有这个异常,直接抛给main方法;
3.main里面也没有处理异常的代码,java虚拟机就会来处理这个异常,虚拟机就会创建一个异常对象,将信息输出到控制台,toString方法


异常体系结构:


捕获异常:
try--catch
try里面放的是可能异常的代码,一旦出现异常,程序会自动进入到catch快中区输出内容;

try如果有异常就执行catch,但是没有异常就不执行catch块;
不管try-catch块执行还是不执行,后面的代码都会按照流程继续执行;
try--catch--finally
finally为异常语句提供了一个统一的出口,可以对程序做一个统一的管理,无论try--catch如何执行,最后都要执行finally块;
即使try或者catch里面有return语句也不影响finally执行

通过用finally块来进行资源的清理工作,关闭打开的链接,或者关闭某些文件,删除某些临时文件;


如果有多个catch必须要注意:catch顺序必须按照从小到大,子类在前面,父类在后面,同级别就随便;


声明并抛出异常:
throw:将异常进行抛出(动作);
throws:声明将要抛出何种类型异常(声明);


子类继承父类:
重写父类的方法,子类抛出的异常可以和父类的一样或者全都比父类小,不然无法调用父类的方法;
子类抛出的异常大小不能比父类大,子类抛出的异常个数可以是多个,但是有跟父类一样的异常和父类小的异常都支持;
子类继承父类可以不用抛出异常;


自定义异常:
某些异常在程序里面无法表达出来,则需要自己定义一些异常;
1.继承java.lang.Exception声明自己是异常类;
2.在方法适当的位置生成自定义的异常实例;throw进行抛出;
3.throws语句进行声明;









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值