黑马程序员技术交流社区
标题: Java基础学习 第10天 [打印本页]
作者: luguoyuanf 时间: 2013-3-29 23:00
标题: Java基础学习 第10天
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:访问的数组对象中不存在的元素.
使用方法:
调用父类构造方法,传递异常信息
作者: 冰仔 时间: 2013-9-12 21:28
基础,学习,毕竟之路
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |