java抽象类异常_Java实训笔记(一)-----异常处理——抽象类——集合

abstract 关键字不能用来修饰变量和构造方法,即没有抽象变量和抽象构造方法的说法 。abstract关修饰的的方法只有被子类重写才有意义。否则这个方法永远没有方法体,因此抽象方法不能被定义为private,即private 和abstract不能同时修饰方法,avstract也不能和static,final 或native 同时修饰同一方法。

抽象类不能被实例化,只能被当成父类来继承。从语义角度上讲,抽象类是从多个具有相同特征的类中抽象出的一个父类。

阶段4:

4.1异常概述:

java 异常分类:

1.错误:Error。虚拟机相关的问题,如系统崩溃,虚拟机错误,动态链接失败。

2.异常:Exception。程序编码错误导致,这些问题能够被系统捕获并进行处理,从 而避免应用程序非正常中断,例如:除以0,对负数开平方根、空指针访问等。

非检查型异常:ArrayIndexOutOfBoundsException NullPointerException NumberFormatException ArithmeticException ClassCastException

检查型异常:SQLException IOException FileNotFoundException

java 异常2种处理机制:

1.try....catch

2.throws

try..catch...finally

单catch 语句捕获异常

try{}

catch(Exception e){//出错信息 e.printStackTrace();}

多catch语句

try{}

catch(InputMismatchException e){//出错信息1}

catch(ArithmeticException e){//出错信息2}

catch(Exception e){//other error; e.printStackTrace();}

异常捕获:

从java7之后可以这么写

try{}

catch(InputMismatchException | ArithmeticException e){ // Error info;}

try..catch..finally

保证代码即便出现了错 误,也能够被执行。

public static void test1(){

try{FileInputStream fis = new FileInputStream("c://txt");}

catch(FileNotFoundException e){e.printStackTrace();}

finally{// 最终一定会被执行的代码:比如释放资源的代码,都会被正确的释放,即便前面出现return }

}

java新版本的写法,自动释放资源,把资源放到try()括号里,java自动运行finally的close功能。

public static void test2(){

try(FileInputStream fis = new FileInputStream("c://txt");){//这里还有其他的处理代码。}

catch(FileNotFoundException e){e.printStackTrace();}

finally{// 最终一定会被执行的代码:比如释放资源的代码,都会被正确的释放,即便前面出现return }

}

4.3抛出异常:

throw 抛出的是一个异常对象。

try{ if(b==0) throw new Exception("除数不能为零");}

catch(){}

finally{}

或者:

public static void chufa() throws Exception{..}

那么在调用这个方法的时候,必须要针对这个异常进行处理。

public static void main (String[] args){

try{chufa();}

catch(Exception e){e.printStackTrace();}

}

chufa() throws ArithmeticException,InputMismatchException{}

抛出一个异常序列

自定义异常:

public class AgeException extends Exception{

public AgeException(){}

public AgeException(String msg){

super(msg);

}

}

自定义异常,可以继承Exception或者Runtime Exception.

4.5集合概述:

Java中的集合分为三大类:

Set集合:无序,元素不重复

List集合:有序,寻秩访问,元素可重复,长度可变。

Map集合:每个元素都是Key/Value 键值对组成,根据Key访问value,Map集合中的Key不能重复,value可以重复。

Collection借口:

是Set,Queue,List的父接口,常用方法:

add(),addAll(),clear(),contains(),containsAll()

Collection 借口没有提供获取某个元素的方法,但可以通过iterator()方法获取迭代器来遍历集合中的所有元素。

Iterator接口:

Iterator可以采用统一的方式对Collection集合中的元素进行遍历操作。

Iterable接口是Collection接口的父接口。所有实现了Iterable的集合类都是可迭代的,都支持foreach循环遍历。

4.6集合类:

List常用方法:

add() addAll() get() indexOf() lastIndexOf()

ArrayList和Vector 是List接口的两个典型实现类,完全支持List接口的所有功能方法。

ArrayList是线程不安全,Vector线程安全。

Vector的一个子类Stack,可以模拟栈。

4.7集合工具类:

Collections 和 Arrays

Collections 提供了一些对Collection集合常用的静态方法。比如:排序,复制,查找,填充。

使用Collections工具类为集合进行排序时,集合中的元素必须是Comparable可比较的,Java提供一个Comparable接口,该接口中只有一个compareTo()比较方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值