目录
Object类简介
Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的,默认会继承Object父类。即所有类的对象都可以使用Object进行接收。
取得对象信息
直接使用对象输出,默认输出一个地址编码。如果现在输出的是String对象,此时输出字符串内容而非地址,原因就在于String类覆写了Object的toString( )方法。
覆写toString方法:
package www.singly.java;
class Person{
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "姓名:"+this.name+",年龄:"+this.age;
}
}
class Student{}
public class Test1 {
public static void main(String[] args) {
fun(new Person("张三",20));
}
public static void fun(Object obj){
System.out.println(obj.toString());//默认输出对象调用的就是toString方法
}
}
toString的核心目的在于取得对象信息。
String作为信息输出的重要数据类型,在Java中所有的数据类型只要遇见了String并且执行了“+”,那么都要求将其变为字符串后连接,而所有对象想要变为字符串就默认使用toString()方法。
扫描二维码关注公众号,回复:
4127617 查看本文章
对象比较
String类对象比较使用的是equals()方法。实际上String类的equals()方法就是覆写Object中的equals()方法。
package www.singly.java;
import java.util.Objects;
class Person{
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "姓名:"+this.name+",年龄:"+this.age;
}
@Override
public boolean equals(Object obj) {
if(obj == null){
return false;
}
//判断obj是否为Person的实例
if(!(obj instanceof Person)){
return false;
}
//两者的地址值一样,那么内容一定相同
if(this == obj){
return true;
}
Person per = (Person) obj;//向下转型
return this.name.equals(per.name) && this.age==per.age;
}
}
class Student{}
public class Test1 {
public static void main(String[] args) {
Person p1 = new Person("li",30);
Person p2 = new Person("li",30);
System.out.println(p1.equals(p2));
}
}
接收引用数据类型
Object可以接收所有引用类型,包括:类,数组,接口。
object真正达到了参数的统一,如果一个类希望接收所有的数据类型,就用Object完成。