教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

Java学习笔记(必看经典)(4)

来源:网络收集 时间:2026-08-12
导读: 对于try……catch格式: try {可能出现错误的代码块} catch(exception e){进行处理的代码} ; 对象变量的声明 用这种方法,如果代码正确,那么程序不经过catch语句直接向下运行; 如果代码不正确,则将返回的异常对

对于try……catch格式:

try {可能出现错误的代码块} catch(exception e){进行处理的代码} ;

对象变量的声明

用这种方法,如果代码正确,那么程序不经过catch语句直接向下运行;

如果代码不正确,则将返回的异常对象和e进行匹配,如果匹配成功,则处理其后面的异常处理代码。(如果用exception来声明e的话,因为exception为所有exception对象的父类,所有肯定匹配成功)。处理完代码后这个例外就完全处理完毕,程序会接着从出现异常的地方向下执行(是从出现异常的地方还是在catch后面呢?利用程序进行验证)。最后程序正常退出。

Try中如果发现错误,即跳出try去匹配catch,那么try后面的语句就不会被执行。

一个try可以跟进多个catch语句,用于处理不同情况。当一个try只能匹配一个catch。 我们可以写多个catch语句,但是不能将父类型的exception的位置写在子类型的excepiton之前,因为这样父类型肯定先于子类型被匹配,所有子类型就成为废话。JAVA编译出错。

在try,catch后还可以再跟一子句finally。其中的代码语句无论如何都会被执行(因为finally子句的这个特性,所以一般将释放资源,关闭连接的语句写在里面)。

如果在程序中书写了检查(抛出)exception但是没有对这个可能出现的检查结果进行处理,那么程序就会报错。

而如果只有处理情况(try)而没有相应的catch子句,则编译还是通不过。

如何知道在编写的程序中会出现例外呢

1. 调用方法,查看API中查看方法中是否有已检查错误。

2. 在编译的过程中看提示信息,然后加上相应的处理。

Exception有一个message属性。在使用catch的时候可以调用:

Catch(IOException e){System.out.println(e.message())};

Catch(IOException e){e.printStackTrace()};

上面这条语句回告诉我们出错类型所历经的过程,在调试的中非常有用。

开发中的两个道理:

①如何控制try的范围:根据操作的连动性和相关性,如果前面的程序代码块抛出的错误影响了后面程序代码的运行,那么这个我们就说这两个程序代码存在关联,应该放在同一

② 对已经查出来的例外,有throw(积极)和try catch(消极)两种处理方法。

对于try catch放在能够很好地处理例外的位置(即放在具备对例外进行处理的能力的位置)。如果没有处理能力就继续上抛。

当我们自己定义一个例外类的时候必须使其继承excepiton或者RuntimeException。 Throw是一个语句,用来做抛出例外的功能。

而throws是表示如果下级方法中如果有例外抛出,那么本方法不做处理,继续向上抛出。 Throws后跟的是例外类型。

断言是一种调试工具(assert)

其后跟的是布尔类型的表达式,如果表达式结果为真不影响程序运行。如果为假系统出现低级错误,在屏幕上出现assert信息。

Assert只是用于调试。在产品编译完成后上线assert代码就被删除了。

方法的覆盖中,如果子类的方法抛出的例外是父类方法抛出的例外的父类型,那么编译就会出错:子类无法覆盖父类。

结论:子类方法不可比父类方法抛出更多的例外。子类抛出的例外或者与父类抛出的例外一致,或者是父类抛出例外的子类型。或者子类型不抛出例外。

如果父类型无throws时,子类型也不允许出现throws。此时只能使用try catch。

练习:写一个方法:int add(int a,int b)

{

return a+b;

}

当a+b=100;抛出100为异常处理。

12.02

集合(从本部分开始涉及API)

集合是指一个对象容纳了多个对象,这个集合对象主要用来管理维护一系列相似的对象。 数组就是一种对象。(练习:如何编写一个数组程序,并进行遍历。)

java.util.*定义了一系列的接口和类,告诉我们用什么类NEW出一个对象,可以进行超越数组的操作。

(注:JAVA1.5对JAVA1.4的最大改进就是增加了对范型的支持)

集合框架接口的分类:(分collection接口 和 map接口)

Collection接口 Map接口

List接口 Set接口 SortedMap接口

SortedSet接口

JAVA中所有与集合有关的实现类都是这六个接口的实现类。

一维结构。

List接口代表按照元素一定的相关顺序来组织(在这个序列中顺序是主要的),List接口中数据可重复。

Set接口是数学中集合的概念:其元素无序,且不可重复。(正好与List对应)

SortedSet会按照数字将元素排列,为“可排序集合”。

Map接口中每一个元素不是一个对象,而是一个键对象和值对象组成的键值对(Key-Value)。

Key-Value是用一个不可重复的key集合对应可重复的value集合。(典型的例子是字典:通过页码的key值找字的value值)。

例子:

key1—value1;

key2—value2;

key3—value3.

SortedMap:如果一个Map可以根据key值排序,则称其为SortedMap。(如字典) !!注意数组和集合的区别:数组中只能存简单数据类型。Collection接口和Map接口只能存对象。

以下介绍接口:

List接口:(介绍其下的两个实现类:ArrayList和LinkedList)

ArrayList和数组非常类似,其底层①也用数组组织数据,ArrayList是动态可变数组。 ① 底层:指存储格式。说明ArrayList对象都是存在于数组中。

注:数组和集合都是从下标0开始。

ArrayList有一个add(Object o)方法用于插入数组。

ArrayList的使用:(完成这个程序)

先import java.util.*;

用ArrayList在一个数组中添加数据,并遍历。

ArrayList中数组的顺序与添加顺序一致。

只有List可用get和size。而Set则不可用(因其无序)。

Collection接口都是通过Iterator()(即迭代器)来对Set和List遍历。

通过语句:Iterator it=c.iterator(); 得到一个迭代器,将集合中所有元素顺序排列。然后可以通过interator方法进行遍历,迭代器有一个游标(指针)指向首位置。

Interator有hasNext(),用于判断元素右边是否还有数据,返回True说明有。然后就可以调用next动作。Next()会将游标移到下一个元素,并把它所跨过的元素返回。(这样就可以对元素进行遍历)

练习:写一个程序,输入对象信息,比较基本信息。

集合中每一个元素都有对象,如有字符串要经过强制类型转换。

Collections是工具类,所有方法均为有用方法,且方法为static。

Collections.Sort()分为两部分,一部分为排序规则;一部分为排序算法。

规则用来判断对象;算法是考虑如何排序。

对于自定义对象,Sort不知道规则,所以无法比较。这种情况下一定要定义排序规则。方式有两种:

① ng下面有一个接口:Comparable(可比较的)

可以让自定义对象实现一个接口,这个接口只有一个方法comparableTo(Object o) 其规则是当前对象与o对象进行比较,其返回一个int值,系统根据此值来进行排序。 如 当前对象>o对象,则返回值>0;(可将返回值定义为1)

如 当前对象=o对象,则返回值=0;

如 当前对象<o对象,则返回值〈0。(可将返回值定义为-1)

看Te …… 此处隐藏:2550字,全部文档内容请下载后查看。喜欢就下载吧 ……

Java学习笔记(必看经典)(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/134323.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)