暑期第二天

来源:互联网 发布:婚礼录像编辑软件 编辑:程序博客网 时间:2024/06/14 13:39

完成任务

1.内部类的相关知识
2.异常

收获

内部类

  1. 可以直接访问外部类中的成员,包括私有

    • 之所以可以直接访问外部类成员,是因为内部类持有了一个外部类的引用,外部类名。this
    • 外部类想访问内部类,必须建立内部类对象
    • 访问格式
    • 1,内部类定义在外部类的成员位置上,可以被成员修饰符修饰
    • 比如:static 被static修饰的类,只能直接访问外部类中的static成员

    • 在外部其他类中,如何直接访问static内部类的非静态成员

    • new Outer.Inner().function();
    • 在外部其他类中,如何直接访问static内部类的静态成员
    • Outer.Inner.function();

    • 注意 :当内部类中定义了静态成员,内部类必须是static

    • 当外部类的静态方法访问内部类时,内部类也必须是static

匿名内部类

  • 1.匿名内部类其实就是内部类的简写
  • 2.定义匿名内部类的前提
  • 内部类必须是继承一个类或者实现接口
  • 3.匿名内部不累的格式
  • new 一个父类或者接口(){(定义子类的内容)}
  • 4.其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖,可以理解为带内容的对象
  • 5.匿名内部类中定义的方法最多不超过2个

局部内部类

         public class Outer2 {        int x = 3;        //局部内部类不能定义成static        void method(final int a){        //可以直接访问外部类的成员,应为还持有外部类中的引用        //但是不可以访问他所在的局部中的变量,只能访问被final修饰的局部变量        final int  y = 100;        class Inner{            void function(){                System.out.println(a);            }        }        new Inner().function();    }}

异常

  • 异常,就是程序运行时出现的不正常情况
  • 异常的由来;问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述

  • 对于问题的划分1.严重的问题:java通过error类进行描述

  • 2.不严重的:通过Exception类进行描述(对于exception可以使用针对性 的处理方式进行处理)

  • 无论error或者Exception共性

  • Throwable

  • |–Error
  • |–Exception

    *2.异常的处理

    *java提供了特有的语句
    *try{

  • 需要被检测的代码
    *
    *}catch(异常类 变量){
  • 处理异常的代码(处理方式)
    *
    *}finally{
  • 一代你会执行的语句
    *
    *}
    *
    *
  • 3.对捕获到的异常对象进行常见方法操作
  • String getMessage

对多异常的处理

  • 1.声明异常时建议声明具体的异常
  • 2.对方有几个异常,就对应有几个catch块
  • 如果多个catch块中的异常出现继承关系,父类放在最下面

  • 建议在进行catch处理时catch中一定要定义具体具体处理方式

  • 不要只写e.printStackTrace();
  • 不要简单的就书写一条输出语句
  • 因为项目中会出现特有的问题
  • 而这些问题病危被java所描述并封装对象
  • 所以对这些特有的问题可以按照java的对问题封装思想
  • 将特有的问题提,进行自定义的异常封装
  • 自定义异常

  • 需求:在本程序中对出书位负数也视为错误的也无法进行运算

  • 那么就需要对这个问题对自定义描述

  • 当函数内部出项了throw抛出异常对象,那么就必须要给对应的处理动作

  • 要么在内部trycatch处理
  • 要么在函数上声明让调用者处理

  • 一般情况在,函数内出现异常,函数上需要声明

  • 发现打印的结果中只有异常的名称,却没有异常的信息

  • 因为自定义的异常并未定义信息

  • 自定义异常

  • 必须是自定义类继承Exception。

  • 继承Execption原因

  • 异常体系有一个特点

  • 异常类和异常对象都具有可抛性
  • 这个可抛性是Throwable体系中都有特点

  • 只有这个体系中的类和对象

  • 才可以给throw和throws操作

  • throws和throw的区别

  • 函数上 函数内

  • throws 后面跟异常类可以多个

    RuntimeException

.RuntimeException的子类在函数里抛出
* 函数上不需要声明
* 编译一样通过
*
* 如果在函数上声明了该异常。调用者可以不用进行处理,编译一样通过
*
* 之所以不用声明
* 因为不需要调用者处理
* 希望停止,运行时没出现了无法继续运算的情况
* 希望停止后,对代码进行修正
*
*
* 自定义异常时:如果该异常的发生,无法在继续进行运算
* 就让自定义异常继承RuntimeException
*
* 对于异常分两种
* 1.编译时被检测的异常
* 2.编译时不被检测的异常;运行时异常runtimeException

原创粉丝点击