zoukankan      html  css  js  c++  java
  • 内部类以及接口

     静态内部类

     

     

    静态内部类

    如果一个内部类被static修饰,我们成为这个内部类为静态内部类。

    public class Outer {

    static class Inner{

    }

    }

    静态内部类创建对象

    public class Test01 {

    public static void main(String[] args) {

    Inner inner = new Outer.Inner();

    inner.showInfo();

    }

    }

    方法内部类

    如果一个内部类定义到一个方法,成为方法内部类

    方法的局部变量进入方法内部类时,被加final修饰。了方法内部类后,final被去掉。

    匿名内部类

    如果这个类只使用一次,我们可以把类声明为匿名类。匿名类一般和内部类结合使用,形成匿名内部类。

    匿名内部类一定要存在:实现接口

    new MyInterface(){

    public void showInfo() {

    System.out.println("Inner:showInfo");

    }

    }.showInfo();

     2异常处理

     传统处理异常的缺点

    1通过判断影响效率,

    2判断逻辑和业务逻辑交织在一起,可维护性很差。

    异常的定义:是指在程序运行时发生不正常的情况,他会中断程序运行。

    异常处理机制中一些关键字(try....catch//try...catch...finally)

    把可能产生异常的代码放在Try中,catch负责捕获以及处理异常,Finally进行收尾工作,通常情况下finally有没有发生异常都会执行,但是当jvm退出时,不执行finally语句。

    exception是所有异常的父类。

    getMessage:返回异常的描述信息。

     3异常分类

     异常的分类

    Throwable类是java语言中所有Error或Exception的父类,只有当对象是此类的实例时,才能通过java虚拟机或者java throw语句抛出。

    Error类表示错误类,Error类表示错误类,Error类表示错误类,Error类表示错误类,

    Exception 类表示异常类可以通过java 异常处理机制处理。

    Error 表示错误类。仅靠程序本身无法恢复的严重错误。jvm内存耗尽、jvm崩溃等

    Exception 根据是否处理分为两种情况。

    RuntimeException:运行时异常。不要求程序必须做出处理。是所有运行时异常的父类。

    (CheckedException):检查时异常。要求程序必须处理不处理编译不通过。

    常见的运行时异常

    ArithmeticException:数学计算异常。比如除数为0

    InputMismatchException:输入不匹配异常

    ArrayIndexOutofBoundsException:数组下标越界异常。

    NullPointException:空指针异常,对象没有初始化就使用时,jvm抛出该异常

    IllegalArgumentException:非法参数异常。

    ClassCastException:强制类型转换异常。

    NumberFormatException:数字格式化异常。比如把“abc”格式化成数字。

    常见的检查时异常:

    ClassNotFoundException:类没有被发现异常。

    SQLException:数据库相关异常

    IOException:IO操作异常

    ParseException:解析错误异常

    FileNotFoundException:文件未发现异常。

     

    运行时异常和检查时异常的区别

    运行时异常:包括RuntimeException及其所有子类。不要求程序必须对它们作出处理,比如InputMismatchException、ArithmeticException、NullPointerException等。即使没有使用try-catch或throws进行处理,仍旧可以进行编译和运行。如果运行时发生异常,会输出异常的堆栈信息并中止程序执行。

    Checked异常(非运行时异常):除了运行时异常外的其他异常类都是Checked异常。程序必须捕获或者声明抛出这种异常,否则出现编译错误,无法通过编译。处理方式包括两种:通过try-catch捕获异常,通过throws声明抛出异常从而交给上一级调用方法处理

    4异常的声明

     声明异常的关键字

    throws关键字

    当一个方法存在异常而本身无法处理是可以用throws声明并抛出异常。

    如果调用者也无法处理,可以选择继续申明异常,简称异常上抛。

    声明异常和重载的关系

    声明异常和重载没有任何关系。

    方法的重载

    1方法名相同,

    2参数列表不同(顺序 类型 个数),

    3和返回值 修饰符 声明异常无关。

    声明异常和方法重写有关系

    父类声明异常子类可以不声明任何异常。

    可以理解为:父类方法抛出异常,子类在重写过程把该异常处理掉了所以子类方法不用声明异常

    [2] 父类方法声明没有声明任何异常(检测时或运行时),子类不声明异常或者声明运行时异常。

    3父类声明的异常,子类可以声明完全一样的异常。

    5手动抛出异常

     手动抛出异常的关键字

    throw关键字

     自定义异常

    如果开发者需要手动抛出的异常在系统不存在,可以自定义异常。

    如果要自定义异常,首先要确定异常类型,如果异常运行时异常,必须继承RuntimeException或其子类;如果异常是检查时异常,必须继承Exception或其子类。

    异常的命名方式,参考系统命名方式,以Exception结尾。

  • 相关阅读:
    IE无法引入css文件
    各个浏览器的兼容性及解决方法小结
    position的用法小结
    vertical-align的理解
    月薪5K和月薪10K,是能力问题还是公司问题?
    程序员如何在QQ群、微信群里装逼?
    一个计算机专业毕业生工作 5 年后的困惑
    CTO 比普通程序员强在哪?
    干程序员辣么久,你为什么还没有年薪60万?
    做一个App究竟要花多少钱?
  • 原文地址:https://www.cnblogs.com/gflb/p/10776215.html
Copyright © 2011-2022 走看看