Object类
Object 类是所有类的顶层父类,所有类都是直接或间接继承自它。
Object类中的一些方法
1.getClass ()方法
Class<?> getClass () 返回该类的字节码文件对象。
Class 为字节码文件类型
public class test {
public static void main(String[] args) {
Object obj1 = new Object();
Class aClass1 = obj1.getClass();
System.out.println(aClass1);
}
}
结果会输出
class java.lang.Object
2.hashCode()方法
int hashCode () 将对象的16进制地址值,经过哈希算法换算成一个整数值
public class test {
public static void main(String[] args) {
int cod1 = obj.hashCode();
int cod2 = obj2.hashCode();
System.out.println(cod1); //356573597
System.out.println(cod2); //1735600054
}
}
3.toString ()方法
String toString () 返回该对象的字符串表示。
toString()方法原型为
public String toString () {
return getClass().getName() +
"@" + Integer.toHexString(hashCode());
}
使用toString()方法
public class test {
public static void main(String[] args) {
Object obj = new Object();
System.out.println(obj);// 输出 java.lang.Object@14ae5a5
}
}
重写toString()方法
public class Student extends Object {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student " +
"name='" + name + '\'' +
", age=" + age ;
}
}
public class test{
public static void main(String[] args)
{
Student t = new Student("张三",20);
System.out.println(t);//输出Student name='张三', age=23}
}
}
4.equals()方法
boolean equals (Object obj) 比较两个对象的地址值 是否相等
equals()方法原型如下
public boolean equals (Object obj){
return (this == obj);
}
重写equals方法
可以通过重写equals()方法来判断两个对象值是否相等
public class Student extends Object {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
}
public class test{
public static void main(String[] args)
{
Student t1 = new Student("张三",20);
Student t2 = new Student("张三",20);
System.out.println(t1==t2)// flase
System.out.println(t1.equals(t2)); //true
}
}