java.lang.Object类:
* Object 是类层次结构的根类。
* 每个类都使用 Object 作为超类(父类),所有对象(包括数组)都实现这个类的方法。
*
* 常用功能:
* public final Class getClass(){} :
* 获取某个类或者接口的字节码文件对象 : class 包名.类名
*
* public int hashCode() :获取某个对象的哈希码值
* ( 可以看成类似于 "地址值的东西")
*
* public String toString():表示一个对象的 "文本表现形式"
* public boolean equals(Object obj):使用某个对象与此对象进行比较!
*
* protected Object clone() throws CloneNotSupportedException :克隆
*
* 子类(派生类)public String getName():获取以字符串形式表示的正在运行的java实体名称(类,接口...数组)
Object类的public boolean equals(Object obj)方法
* 使用其他对象和此对象进行比较
*
*
* ==:连接是两个基本数据类型,比较的是数据值是否相同
* 如果连接的是两个引用数据类型,比较的是地址值是否相同
*
*
* equals方法:
* Object类的equals方法默认比较的两个对象的地址值是否相同,
*
* 如果比较的内容相同,建议子类重写Object的equals方法
* 注意:
* 当此方法被重写时,通常有必要重写 hashCode 方法
*
*
* 建议:所有的子类重写equals方法()同时重写hashCode()方法,比较的时候就比较的是两个对象的内容是否相同
* "内容",对象的成员信息是否一致!,如果一致就是true
protected Object clone()
* throws CloneNotSupportedException:克隆:创建对象并返回此对象的"副本"!
*
* 浅克隆!
*
Object 类的 clone 方法执行特定的复制操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。
注意,所有的数组都被视为实现接口 Cloneable*public class ObjectDemo { public static void main(String[] args) throws CloneNotSupportedException { //throws:表示抛出: 抛出异常的可能性! //创建一个工人类对象 Worker w = new Worker("文章",30) ; System.out.println(w.getName()+"---"+w.getAge()); //没有使用克隆之前 Worker w2 = w ;//将地址值赋值 给w2 System.out.println(w2.getName()+"---"+w2.getAge()); System.out.println("--------------------------------"); //使用Object类的clone方法 //protected Object clone() //赋值对象的字段(成员变量) Object obj = w.clone();//因为这个方法本身有一个抛出异常,所以调用者调用该方法必须处理! Worker w3 = (Worker) obj; //向下转型 System.out.println(w3); System.out.println(w3.getName()+"----"+w3.getAge()); } } //使用步骤: //* 1)在当前这个类实现cloneable接口 // * 如果一个接口什么都没有,这个接口就是"标记接口" //*/ public class Worker implements Cloneable{ //标记当前这个类的字段是被克隆的 protected Object clone() throws CloneNotSupportedException { return super.clone(); /* * protected native Object clone() throws CloneNotSupportedException; 本地方法 :非Java语言实现 //使用Object类的clone方法 //protected Object clone() //赋值对象的字段(成员变量) Object obj = w.clone();//因为这个方法本身有一个抛出异常,所以调用者调用该方法必须处理! Worker w3 = (Worker) obj; //向下转型 System.out.println(w3);
public String toString():表示一个对象的 "文本表现形式"
//这个结果应该是易于读懂的信息表达式(建议所有子类都重写此方法。 )