javaSE 第十六天

Day16

----------------------------------------------------------------------------------

今天内容:

   (1)Map集合

   (2)异常机制

   (3)File类

1.Map集合(重点)

1.1 基本概念

   java.util.Map<K,V>接口主要指用于存放基本单位为单对元素的容器,具体类型参数如下:

       K - 此映射所维护的键(Key)的类型

       V - 映射值(Value)的类型

   该集合中不能包含重复的键,每个键最多只能映射一个值。

   该集合的主要实现类有:HashMap类  和 TreeMap类。

1.2 常用的方法

  V put(K key, V value) - 用于将参数指定的key和value组成一对放入集合中。

       - 若实现增加的功能则返回null;若实现修改的功能则返回key原来对应的value。

  boolean containsKey(Object key) - 用于判断当前集合是否包含参数指定的key。

  boolean containsValue(Object value) - 用于判断当前集合是否包含参数指定的value。

  V get(Object key) - 根据参数指定的key来返回对应value,若key不存在则返回null。

  V remove(Object key) - 根据参数指定的key来删除元素,返回key对应的value。

  Set<Map.Entry<K,V>> entrySet()  - 用于将Map集合转换为Set集合。

  其中Entry<K,V>为Map接口的内部接口,该接口类型变量用于描述一组键值对,常用方法如下

       K getKey() - 用于获取当前键值对中的key并返回。

       V getValue() - 用于获取当前键值对中的value并返回。

  Set<K> keySet() - 用于将Map集合中的所有Key转换为Set集合。

2.异常机制(重点、简单)

2.1 基本概念

   异常就是"不正常"的含义,在Java语言中主要指运行阶段产生的错误。

   java.lang.Throwable类是Java语言中所有异常(Exception)和错误(Error)的超类。

   其中Exception类主要描述比较轻微的错误,通常可以编码解决,如:0作为除数。

   其中Error类主要描述比较严重的错误,通常无法编码解决,如:Java虚拟机挂了。

2.2 基本分类

   java.lang.Exception类是所有异常的超类,常见的子类分为以下两种:

       RuntimeException类 - 运行时异常,也叫作非检测性异常。

       IOException和其它异常类 - 其它异常,也叫作检测性异常。

           - 所谓检测性异常就是指在编译阶段可以被编译器检查出来的异常。

   

   RuntimeException类的主要子类:

       ArithmeticException - 算术异常

       ArrayIndexOutOfBoundsException - 数组下标越界异常

       NullPointerException - 空指针异常

       ClassCastException - 类型转换异常

       NumberFormatException - 数字格式异常

注意:

   当程序中发生异常又没有手动处理时,则Java虚拟机采用默认方式处理,而默认处理方式就是打印异常的名称、异常的原因以及异常发生的位置,然后终止程序不再向下执行。

2.3 避免异常的发生

   可以使用if()条件判断来避免异常的发生。

2.4 异常的捕获

(1)语法格式

   try{

      编写所有可能发生异常的语句块;

   }   

   catch(异常类型 变量名){

      编写针对该类型异常的处理语句块;

   }

   ... 

   finally{

       编写无论是否发生异常都应该执行的语句块;

   }

(2)注意事项

   a.当try{}中代码可能发生多种异常时,则需要编写多个catch分支,切记小类型异常放上面

   b.以后课堂上可以采用懒人的写法:

        catch(Exception e){  .... }

   c.finally{}中主要用于编写进行善后处理的语句块,如:关闭已经打开的文件等等。

(3)执行流程

   try{

      a;

      b; - 可能发生异常的语句;

      c;

   }catch(Exception ex){

      d;

   }finally{

      e;

   }

   当上述代码没有发生异常时的执行流程为:a  b  c  e;

   当上述代码发生异常时的执行流程:a  b  d  e;

2.5 异常的抛出

(1)基本概念

   当程序的执行过程中产生异常后不便于或者无法处理时,则可以将异常转移给该方法的调用者,这个过程就叫异常的抛出。

(2)语法格式

   访问控制符 返回值类型 方法名称(形参列表) throws 异常类型1,异常类型2,..{}

如:

   public void show() throws Exception(){} 

(3)方法重写的原则

   a.要求方法名、参数列表以及返回值类型相同,从jdk1.5开始允许返回子类。

   b.要求访问权限不能变小,可以相同或者变大。

   c.要求不能抛出更大的异常。

注意:

   子类中重写的方法可以选择抛出一样的异常、更小的异常以及不抛出异常,但是不可以抛出更大的异常或平级但不一样的异常。

2.6 自定义异常

(1)基本概念

   虽然Java官方提供的异常类很多,但没有针对年龄不合理的异常类型,此时就需要程序员自定义一个异常类加以描述。

(2)基本流程

   a.自定义xxxException类继承Exception类或者其子类。

   b.在自定义类中提供两个版本的构造方法,分别是无参构造和字符串作参数的构造。

(3)异常的产生

   throw new 异常类型(实参);

如:

   throw new AgeException("年龄不合理");

3.File类(重点)

3.1 基本概念

   java.io.File类用于描述文件和目录的名称和路径信息,可以获取文件的属性,如:大小等

3.2 常用的方法

   File(String pathname) - 根据参数指定的路径名来构造对象。

   boolean exists() - 用于判断文件或目录是否存在。

   String getName() - 用于获取文件或目录的名称。

   long length() - 用于获取文件的长度/大小。

   long lastModified() - 用于获取文件的最后一次修改时间。

        - 与java.util.Date类搭配使用。

   String getAbsolutePath() - 用于获取绝对路径信息。

       绝对路径 - 主要指以根目录开始的路径信息,如:c:/.. d:/... /...

       相对路径 - 主要指以当前目录开始的路径信息,如:./code 

                - 其中.代表当前目录   ..代表当前目录的上一级目录。

                - 以后的开发中推荐使用相对路径。

   boolean delete() - 用于删除文件或目录。

   boolean createNewFile() - 用于创建新的空文件。

   

   boolean mkdir() - 用于创建单层目录。

   boolean mkdirs() - 用于创建多层目录。

   File[] listFiles() - 用于获取当前目录下的所有内容。

   boolean isFile() - 判断是否为标准文件。

   boolean isDirectory() - 判断是否为目录文件。

作业:

   1.复习所学内容准备周考。    

   2.实现TestFile.java文件中成员方法的编写。

   3.在学生信息管理系统中增加学生信息的学号异常类和年龄异常类。

 

猜你喜欢

转载自blog.csdn.net/zgzdcxy/article/details/82804393