常用类

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():表示一个对象的 "文本表现形式"
        //这个结果应该是易于读懂的信息表达式(建议所有子类都重写此方法。 )

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值