Java第九课

抽象类和接口的区别和联系:

1.抽象类和接口都不能实例化(不能new),如果要实例化,抽象类变量只能指向子类对象,接口变量只能指向实现类对象

2.抽象类可以有抽象方法,也可以有具体方法,接口只能有抽象方法

3.抽象类中的履是变通属性,而接口里的必须是公共静态的常量

4.一个类只能继承一个抽象类,但可以实现多个接口

5.一个类继承一个抽象类,必须重写里面的抽象方法,否则该类只能是抽象类,接口也一样,实现一个接口,必须实现里面定义的全部抽象方法,否则该类是抽象类(注:接口里的方法全是抽象的)


事件编程步骤:

1.创建事件源

2.创建监听器

3.注册,也就是把前两者进行连接


异常:

是描述出错信息的对象(本质是对象)

异常的分类:

1.编译期异常(检查异常):必须要处理,如果不处理,编译都无法通过

2.运行期异常(非检查异常):可处理,可不处理,无论是否处理,编译都能通过,所有的运行期异常,都是RuntimeException的子类


try{

}catch(Exception e){

}(这个估且叫异常处理机制)
finally{

}

异常执行顺序:

先执行try内的内容,如果没有异常就顺序执行,如果有异常,马上执行catch块的内容,同时中止try的其他代码,无论是否异常,finally都会执行


finally块:

无论有异常还是没异常都会执行的代码块,一般用于资源清理工作(流的关闭,数据库连接的关闭等),如果在try块或catch块中有return,finally会在跳出方法前执行(这点一定要注意)

注:如果虚拟机关闭(System.exit(0)),finally不会再执行


如果一个try块后有多个catch块,那么在try抛出异常后,会执行第一个匹配异常对象的,catch块,忽略其他catch块,如:

try{
			JFrame j = null;
			j.setSize(400,300);
		}
		catch(NullPointerException e){
			System.out.println("空指针异常");
		}
		catch(Exception e){
			System.out.println("发生异常");
		}
		finally{
			System.out.println("finally代码");
		}
		
		System.out.println("异常外代码");

执行结果是:

空指针异常

finally代码

异常外代码


如果代码是这样的:

try{
			JFrame j = null;
			j.setSize(400,300);
		}		
		catch(Exception e){
			System.out.println("发生异常");
		}
		catch(NullPointerException e){
			System.out.println("空指针异常");
		}
		finally{
			System.out.println("finally代码");
		}
		
		System.out.println("异常外代码");

这样是会报错的,因为 Exception是所有异常的父类(这也是一个典型的多态,父类指向子类对象),所以 NullPointerException这个代码是怎么都不可能到达的,所以会报不能到达的错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值