1、Object介绍

2、Object构造方法

3、功能方法

import java.util.Objects;
class Person {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
'}';
}
// @Override
// public String toString() {
// String s = "age = " + age;
// return s;
// }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age;
}
//如果同龄人,生成对象的地址也要相同
@Override
public int hashCode() {
return Objects.hash(age);
}
// //判断是否是同龄人
// @Override
// public boolean equals(Object obj) {
// //1、判断比较是否是人
// if (!(obj instanceof Person)) {
// return false;
// }
// Person p = (Person) obj;//小红
// //2、判断年龄
// return this.age == p.age;
// }
@Override
protected void finalize() throws Throwable {
System.out.println("Person finalize()...");
}
}
public class Demo2_Object {
public static void main(String[] args) {
//finalize() 当对象成为垃圾空间,被回收时会执行该方法。
Person p = new Person();
p = null;
System.gc();//启动垃圾回收器 Person finalize()...
System.out.println("程序结束");
//method_toString();
//method_equals();
//method_hashCode();
//method_构造方法();
}
private static void method_toString() {
//toString()
Object obj = new Object();
System.out.println(obj.toString());//java.lang.Object@610455d6
//需求:看对象的属性值
Person p = new Person();
p.setAge(18);
System.out.println(p.toString());//Person{age=18}
}
private static void method_equals() {
//需求:判断是否是同龄人。
//分析:人{age,判断是否是同龄人()}
Person p = new Person();
p.setAge(18);
Person p2 = new Person();
p2.setAge(18);
System.out.println(p.equals(p2));
//.equals(Object obj)
Object obj = new Object();
Object obj2 = new Object();
boolean b = obj.equals(obj2);
//==是二元算术运算符,左右两边是基本数据类型,判断是值是否相等。
//如果左右两边是引用数据类型,判断是地址是否相等。
//问题:为什么Object需要定义equals方法?
//答案:方法可以被重写,==不能被重写。
boolean b2 = obj == obj2;
System.out.println(b);//false
System.out.println(b2);//false
}
private static void method_hashCode() {
//hashCode方法 返回十进制的对象地址。
Object obj = new Object();
int i = obj.hashCode();
System.out.println(i);//1627674070
//toHexString(int) 将10进制的数据转换成16进制
System.out.println(Intger.toHexString(i));//610455d6
}
private static void method_构造方法() {
//Object()
Object obj = new Object();
System.out.println(obj);//java.lang.Object@610455d6
}
}
本文详细介绍了Java中Object类的基本概念及其核心方法的使用,包括构造方法、toString()、equals()、hashCode()和finalize()方法。通过具体示例展示了如何重写这些方法以满足特定需求。
1604

被折叠的 条评论
为什么被折叠?



