您的位置:首页 > 编程语言 > Java开发

Java面向对象(五)

2018-03-08 00:00 197 查看
一.Object类

1.==与equals的使用

1.1:==

基本类型之间使用:“==”是判断两个基本类型的变量的值是否相等
引用类型之间使用:“==” 是判断两个引用的“地址"是否相等,如果引用同一对象则返回true,否则返回false

1.2:equals方法的含义

Object中的equals方法

public boolean equals(Object obj){
return (this==obj);

}

与"=="相同,比较两个引用是否相等。

1.3如果比较两个引用所引用的对象的内容是否相等,则需要重写equals方法:

@Override
public boolean equals(Object obj){
//比较两个引用是否引用同一个学生对象
if(this==obj){
return true;
}
//比较obj是否为Student类型:instanceof
if(obj instanceof Student){
//向下转型 把obj转成student
Student s = (Student)obj;
//比较学校
if(this.studentId != s.studentId) return false;
//比较姓名
if(this.name==null){//避免引起空指针异常
if(s.name!=null) return false;

}else if(!this.name.equals(s.name))return false;
return true;
}
return false;
}

2.toString方法

方法的原型:
public String toString(){}
返回该对象的字符串表示: 该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成

自定义的类如果实现调用toString()方法时返回对象的内容时需要重写此方法:



在定义实体类,bo等,建class类,写好参数属性。

快捷键:alt+shift+s,然后选择toString

3.finalize方法:

方法的原型
protected void finalize() throws Throwable

当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
子类重写finalize方法,以配置系统资源或执行其他清除。
对于任何给定对象,Java 虚拟机最多只调用一次finalize方法

4.控制访问权限的修饰符:

4.1、访问修饰符:
1).private
2) .默认的
3).protected
4).public



4.2、创建类时的访问修饰符仅可为:public ,默认的

5.匿名内部类

5.1、什么是内部类?
定义在类内部的类
5.2、内部类的分类:
1)成员内部类 2)静态内部类 3)局部内部类 4)匿名内部类
注意:除了静态内部外,其他内部类中不能定义静态成员
5.3、什么样的内部类可以定义为匿名内部类
1) 此内部类仅使用一次
2) 内部类继承自某一个父类或实现某一个接口,并重写父类或接口中的方法
3) 内部类中没有自己特有的方法和属性
5.4、匿名内部类的创建方式
匿名内部类把类的定义和创建一起完成
继承自某个父类:
父类类名 引用名 = new 父类类型(参数){类体};
实现某一个接口:
接口名 引用名 = new 接口名(){ 类体};
5.5、内部类的好处
1)实现多继承
2)隐藏了内部类的信息:内部类可以使用四种修饰符修饰
3)内部类可以访问外部类的信息
4)可以以不同的实现方式重写父类和接口中的同名方法

5.6代码例子:汽车 人



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  object类