本篇博客介绍Java面向对象中Object类和包装类的用法。
目录:
☍ Object类
▴ Object类概述
☃ Object类是所有Java类的根父类,即除Object类外所有类默认继承Object类
☃ 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
public class Person{
...
}
==
public class Person extends Object{
...
}
public void method(Object obj){
可以接收任何类作为参数}
▴ Object类部分常用结构(方法)
No. | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public Object() | 构造 | 构造器 |
2 | public boolean equals(Object obj) | 普通 | 对象比较 |
3 | public int hashCode() | 普通 | 获取Hash码 |
4 | public String toString() | 普通 | 对象打印时使用 |
▴ =、==与equals方法
☃ ‘=’:赋值运算符,给属性显式赋值
☃ ‘==’:比较运算符
☄ 基本类型比较值:只要两个变量的值相等(基本数据类型不一定相等),即为true
☄ 引用类型比较引用(是否指向同一个对象(地址值相同)):只有指向同一个对象时,才返回true
☄ 用“==”进行比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错
☃ equals() :所有类都继承了Object,也就获得了equals()方法(可以重写)
☄ 只能比较引用类型,未重写时其作用与“==”相同, 比较是否指向同一个对象(地址在是否相同)
☄ Object中equals()方法的源码
public boolean equals(Object obj) {
return (this == obj);
}
☄ 格式:obj1.equals(obj2)
特例:
➥ 当用equals()方法进行比较时,对类File 、String、Date及包装类(Wrapper Class)来说 ,是比较类型及内容而不考虑引用的是否是同一个对象(在这些类中重写了equals()方法)