4.3.3Object类 定义: Object类是所有类的父类 equals,建立对象自己独特的比较方式,不在是比较对象地址值需要子类覆盖equals方法 equals和==区别: ==在基本数据类型中比较是具体的数值,在引用类中比较的是对象的地址值 equals方法比较的也是对象的地址值,覆盖equals方法建立自己独特比较方式 finalze:JVM自动调用对象的方法 toString默认返回地址值(建议重写) 4.3.4内部类 定义: 在一个类内部定义类,这就是内部类,也叫嵌套类 特点: 内部类定义在外部类里面,对于内部类而言,可以直接使用外部类中的成员,私有也行.对于外部类,使用内部类成员,必须建立内部类对象 使用格式: 全静态使用格式:外部类名.内部类名.函数名(); 非静态使用内部类格式:外部类.内部类名变量 = new 外部类名().内部类名(); 内部类静态,内部类函数非静态使用格式:外部类名,内部类名变量 = new外部类名.内部类名(); 使用场景: 在3G,Android开发中常用 分析事物时发现里面还有具体的事物,使用内部类形式实现对事物的描述 局部内部变量(定义在外部类的方法内) 内部类前面的方法定义变量,内部类要调用这个变量必须在变量前面加final,因为方法中的变量是跟方法的加载而加载进内存,当执行完成后消失,class类则加载在方法的前面,所以运行会报错,而final是随着类的加载进入方法区的静态区. 4.3.4匿名内部类 定义: 继承一个类,或实现接口的没有名称的内部类. 格式: new 接口() { 覆写,接口中的抽象方法 }.接口中的方法; 接口 变量 = new 接口() { 覆写接口中的抽象方法 覆写接口中的抽象方法 }; 变量.函数(); 变量.函数(); 4.3.5异常 异常的面向对象思想: java将异常都封装成对象 异常体系: Exception:一些参数输入不正常导致,可以控制的. Error: 当程序中,发生了很严重的问题,我们处理不了,只能修改代码 不能使用异常处理方式 异常的第一种处理方式: try { //可能出现异常的代码 } catch(异常类 变量) { //处理方式 } 打印异常的3中常用方式: getMessage(); //提示信息很少
toString(); //提示信息不是很多 printStackTrace(); //提示信息很多,建议使用 异常的第二种处理方式: throw: 用于函数内部手动抛出一个异常类的对象 throws: 函数的定义上标示出我这个函数,可能会出现异常,要求调用者需要处理我抛出的这个异常.调用者调用的抛异常的函数处理方式有2种.一种是继续抛,一种是try(在throws后面跟异常类名) 异常分为两种情形: 1) 编译时期: 是你调用了抛异常的方法后,你的调用者没有处理这个异常. 2) 运行时期: 编译成功,但是运行的时候出现的异常,运行时期异常的最高父类RuntimeException.函数中抛出RuntimeException或者是他的子类,这个时候函数中不需要声明,调用者也不需要处理. RuntimeException应用场景: 对方无论什么原因传递了非法数据,这个非法数据造成后面的计算毫无意义是,抛出运行时异常. 4.3.6自定义异常 定义: java中没有完全描述所有的异常,有的异常是java没有描述的,需要自定义. 注意:凡是异常类都具备可抛性,必须入伙(继承Exception或RuntimeException) 常用异常介绍: ArithmeticException:在算术运算中发生的异常,如除以零 NullPointerException:变量还没有指向一个对象,就引用这个对象的成员 ArrayIndexOutOfBoundsException:访问的数组对象中不存在的元素. 使用方法: 调用父类构造方法,传递异常信息
|