zoukankan      html  css  js  c++  java
  • Object 和Throwable

    Object
      java.lang.Object 所有类的超类
      Object里面有的方法所有的类都有

      Object方法:
        String toString() 返回对象的字符串表现形式
            类名 + @ + 哈希值(一种地址值)
            一般情况下查看地址值没有意义,所以子类会对此方法重写,返回对象的属性值
            打印对象时,默认调用对象的toString()方法

        equals()
            比较两个独立对象是否相等 (==,比较两个对象的地址值是否相等)
        在Object类中:
            public boolean equals(Object obj){ //多态
              return this == obj;
            }
            所以如果不重写这个方法,就是比较的两个对象的地址值

        重写equals(),一般是比较两个对象的属性值是否相等
          注意:A:判断对象类型是否一致,向下转型
             B:注意判断空串

    Throwable
        Error:没有办法处理,只能修改代码

        Exception:
          thorw 关键字 抛出异常对象(只有对象是Throwable的子类才能用)
          一般在方法中使用,后面 new 异常对象类名();

          两种处理方式:
            throws (声明异常)
            一般用在方法的声明后 后面直接跟异常对象名
              注意:A:可以声明多个异常对象,中间用 "," 隔开
                 B:可以声明多个异常对象的共同父类

            try {
              可能抛出异常的代码;
            } catch (可能出现的异常对象名 变量名){
              变量名.方法名(); //自定义处理异常的方式
            } catch (可能出现的异常对象名 变量名)
              ...
            } finally {
              不管怎样都会执行的代码;
            }
          如果catch没有捕获到异常,就会抛给调用者,如果抛到jvm,程序会中断(由main方法抛给jvm)

          多catch处理细节:
            捕获到多个异常,异常之间如果有直接的继承关系,那么必须先捕获子类异常(多态的存在)
            没有直接继承关系时捕获的异常无序

        在重写的方法中,异常处理的细节
          A:父类方法中有异常:子类可以不抛出异常,也可以抛出父类抛出异常的子异常
          B:父类方法中没有异常:子类方法肯定不可以抛出异常。
          C:子类遇到必须抛出比父类抛出异常更大的情况时,只能try..catch自己处理异常,不能向外抛

      Exception:编译时异常,编译时不能通过,必须进行声明或捕获(必须在编译之前进行处理,否者报错)

      RuntimeException:运行时异常,编译时不报错,运行时出现的异常,可以处理,也可以不处理
                推荐不进行处理,因为运行时异常一般都是代码出现了问题,需要修改代码
                运行时异常,可以帮助中断程序

          继承Exception 就是编译时异常
          继承RuntimeException 就是运行时异常
          自定义异常定义
            两步
              1.定义一个类继承Exception或RuntimeException
              2.构造方法 调用父类构造(一般调用一个空参构造和一个打印提示信息构造)
          自定义异常的处理(如果定义的是运行时异常可以不处理,但是jvm会自己处理)
            要么throws 要么try catch
            正常处理

          异常的三个常用方法
          Throwable
            String getMessage() 获取异常信息     //打印带参构造方法传入的提示信息
            void printStackTrace() 打印异常信息 打印异常的类名 信息 位置
            String toString() 获取异常信息包括类名

  • 相关阅读:
    2015 Multi-University Training Contest 2 hdu 5306 Gorgeous Sequence
    2015 Multi-University Training Contest 2 hdu 5308 I Wanna Become A 24-Point Master
    2015 Multi-University Training Contest 2 hdu 5303 Delicious Apples
    2015 Multi-University Training Contest 1 y sequence
    BNUOJ 34982 Beautiful Garden
    2015 Multi-University Training Contest 2 Buildings
    HDU 4725 The Shortest Path in Nya Graph
    2015 Multi-University Training Contest 2 Friends
    HDU 4370 0 or 1
    POJ 1847 Tram
  • 原文地址:https://www.cnblogs.com/chonglchong/p/6613896.html
Copyright © 2011-2022 走看看