Java常用核心类之终极父类Object
java.lang.Object类是Java中所有类的父类 下面介绍几个Object类的常用方法 1.toString() 2.equals() 3.hashCode() 4.clone() 5.finalize()
import java. util. Objects;
public class Employee {
private String name ;
private int age ;
private double salary ;
private int id ;
public Employee ( int id, String name, int age, double salary) {
this . id = id ;
this . name = name ;
this . age = age ;
this . salary = salary ;
}
@Override
public String toString ( ) {
return "员工信息:" + name + " " + age + " " + salary ;
}
@Override
public boolean equals ( Object object) {
if ( object instanceof Employee ) {
return this . id == ( ( Employee) object) . id ;
}
else {
return false ;
}
}
@Override
public int hashCode ( ) {
return Objects. hash ( name, age, salary) ;
}
public static void main ( String[ ] args) {
Employee employee = new Employee ( 46 , "王国栋" , 24 , 5000 ) ;
System. out. println ( employee. toString ( ) ) ;
System. out. println ( employee) ;
Employee emp1 = new Employee ( 11 , "唐乃乔" , 24 , 5000 ) ;
Employee emp2 = new Employee ( 11 , "唐乃乔" , 24 , 5000 ) ;
System. out. println ( emp1. equals ( emp2) ) ;
System. out. println ( employee. hashCode ( ) ) ;
}
}
使用Object类的clone()方法可以克隆一个对象,即为对象创建一个副本 要使得对象能够克隆,类必须实现Cloneable接口 在Java程序中,每一个对象都有一个finalize()方法,在对象被销毁之前,垃圾回收器允许,调用改方法进行清理工作
public class Car implements Cloneable {
private int id ;
private String brand ;
private String color ;
public Car ( int id, String brand, String color) {
this . id = id ;
this . brand = brand ;
this . color = color ;
}
@Override
public boolean equals ( Object object) {
return this . id == ( ( Car) object) . id ;
}
@Override
public String toString ( ) {
return "汽车:id = " + id + " brand = " + brand + "color = " + color;
}
@Override
protected void finalize ( ) throws Throwable{
System. out. println ( "The object is destroyed" ) ;
}
public static void main ( String[ ] args) throws CloneNotSupportedException {
Car car1 = new Car ( 101 , "宝马" , "黑色" ) ;
Car car2 = ( Car) car1. clone ( ) ;
System. out. println ( car1 == car2) ;
System. out. println ( car1. equals ( car2) ) ;
System. out. println ( car1. getClass ( ) . getName ( ) ) ;
System. out. println ( car1. hashCode ( ) ) ;
System. out. println ( car1. toString ( ) ) ;
Car car3 = new Car ( 102 , "奔驰" , "蓝色" ) ;
car2 = null ;
car3 = null ;
System. gc ( ) ;
}
}