1. 程式人生 > >object類中的方法-----Clone()

object類中的方法-----Clone()

Clone():

protected Object clone()

返回的是一個object型別的物件,所以在定義函式時函式的返回值型別應該定義為object型別。

Object類本身不實現介面 Cloneable,所以在類為 Object的物件上呼叫 clone方法將會導致在執行時丟擲異常。

package com.object;

publicclass Demo1 {

/**

     * @param args

     */

publicstaticvoid main(String[] args) {

// TODOAuto-generated method stub

       Person p = new Person(

"tom",22);

       Object p1 = p.show();//多型建立物件。P是子類物件,p1是父類引用。

       System.out.println(p1);//輸出的結果是物件的資訊([email protected]

Person p2 = (Person)p.show();//強轉,呼叫子類的屬性

       System.out.println(p2.name);//輸出的結果是:tom 

}

}

package com.object;

publicclass Person implements Cloneable {

    String name;

intage;

    Person(){    

    }

    Person(String name,int age){//有參構造方法

this.name = name;

this.age = age;     

    }

public Objectshow(){//因為show方法中使用了clone方法,而clone方法的返回值是object型別,所以show方法的返回值型別也是object。

try {

           Object p1 = this.clone();//this指代當前呼叫物件,誰呼叫的,就把誰clone一份,複製給一個新的物件,這個新的物件的型別是object。即地址是不同的。相當於是兩個物件,但是他們的name,age都是相同的。

return p1;

       } catch (CloneNotSupportedException e) {

// TODOAuto-generated catch block

           e.printStackTrace();

       }

returnnull;

    }

}

相關推薦

Java Object克隆clone方法的使用

測試程式碼 package test04; // // protected Object clone()建立並返回物件一個副本。因為是protected型別的方法,只能在子類訪問 // 如果使用clone(),需要重寫此方法。 // 注意和Student

執行緒sleep方法Object的wait方法的區別

這兩者的施加者是有本質區別的. sleep()是讓某個執行緒暫停執行一段時間,其控制範圍是由當前執行緒決定,也就是說,線上程裡面決定.好比如說,我要做的事情是 "點火->燒水->煮麵",而當我點完火之後我不立即燒水,我要休息一段時間再燒.對於執行的主動權是由我

object方法-----Clone

Clone():protected Object clone()返回的是一個object型別的物件,所以在定義函式時函式的返回值型別應該定義為object型別。Object類本身不實現介面 Cloneable,所以在類為 Object的物件上呼叫 clone方法將會導致在執行

cocos2dx的Director的getInstance方法解析,即單例模式

接觸cocos2dx有段時間了,對於Director::getInstance()這樣的程式碼也有段時間的困惑了,為什麼要這樣寫,這是什麼意思呀?原來查了查資料才知道這是單例設計模式的應用。 單例設計模式 為什麼用單例設計模式:用window系統裡

【Java面試題】之Object方法詳解

之前看到有人分享的面經,面試官先問Object中有什麼方法,然後再要求解釋每一次方法的作用。 先看看Object中有什麼方法 Object類是Java中所有類的基類。位於java.lang包中,一共有13個方法 方法一 Object() 即Object的構造方法 大

day4繼承、修飾符、方法的重寫、super關鍵詞、繼承的構造方法object、對象轉型

編程 權限 數列 als str list 兩個 instance 變量 1.類的繼承(extends)通過繼承,子類自動擁有父類的所有成員(成員變量和成員發方法)一個子類只能有一個父類,一個父類可以派生多個子類 2.訪問修飾符(private 默認 protected

在定義時,何時需要重寫Objectequals方法

在比較兩個物件時可以使用==和 equals()。==用於比較兩個物件的引用地址是否相等,而equals()方法主要用於比較兩個物件的內容是否相等。和equals()的差別請參見“和equals()有什麼區別?”的解答。 在 Object 中已定義了 equals()方法,但是該方法直接採用

ObjecthashCode()和equals()方法詳解附圖

 下圖是規範中要求的: 圖解:比如equals相等的箭頭指向hashcode相等,標示equals相等那麼必有hashcode相等。另外有兩個箭頭指向別人的標示可能是其中之一。 //JAVA程式碼: public static void main

JavaObject方法toString方法和equals方法

Object是所有類的父類(國外成為超類superclass),Object類的方法是相當少的(理解為教室人越多,他們的共同點越少)。 一:toString方法 Object的toString()方法幫助我們返回一個字串,這個字串的格式是固定的:類名@hashcode。

重寫objectequals方法避免出現重複的資料

我們知道所有的物件都擁有標識(記憶體地址)和狀態(資料),同時“==”比較兩個物件的的記憶體地址,所以說使用Object的equals()方法是比較兩個物件的記憶體地址是否相等,即若object1.equals(object2)為true,則表示equals1和

jQuery ajax方法success後臺傳來的四種數據

water eth series 如果 response xms sync get creat 1.後臺返回一個頁面 js代碼 /**(1)用$("#content-wrapper").html(data);顯示頁面*/ $.ajax({ async : false

Objectclone()的使用方法

我們先看兩個圖:  圖1 圖2   由以上兩個圖,我們可以知道,要想使用clone()方法需要先implements Cloneable介面(該介面是標記介面,也就意味著必須打上克隆的標識你才能進行克隆) 再看圖2 ,Object類中方法名前加pr

JDBC工具JDBC工具,封裝方法公共的、靜態的進行與資料庫的連線及執行sql命令,在需要使用的直接呼叫。

JDBC工具類,封裝方法(公共的、靜態的)進行與資料庫的連線及執行sql命令,在需要使用的類中直接呼叫。 package com.offcn.util; import java.io.IOException; import java.io.InputStrea

javaString常用方法I判斷 Java 檔名是否正確,判斷郵箱格式是否正確

內容摘自慕課網 具體程式碼: public class HelloWorld { public static void main(String[] args) { // Java檔名 String fileName

Javaobject方法簡介

object 類介紹 java.lang.Object   java.lang包在使用的時候無需顯示匯入,編譯時由編譯器自動匯入。   Object類是類層次結構的根,Java中所有的類從根本上都繼承自這個類。   Object類是Java中唯一沒有父類

QML入門之QML呼叫C++方法

本篇以 Qt 官方示例 methods 介紹 QML 呼叫 C++ 類中的方法。核心就是在 C++ 類中使用 巨集 Q_INVOKABLE 宣告方法class BirthdayParty : public QObject { Q_OBJECT // ...

java方法總結每周更新

實例 參數 創建 方法 get ack bject 子類 generate 1、URLEncoder.encode(username,"utf-8")將“utf-8”編碼的username先解碼,然後再采用URL編碼 2、URLDecoder.decode(autoLogi

Object方法

保持 rup clas throw second 我們 space hexstring sco 方法一 Object() 即Object的構造方法 Java中規定,每個類都有一個默認的無參構造器,此方法也就是用來體現這一特性方法二 registerNatives

Object的常用方法

屬性 區別 ring hashcode str 意義 cdd http ddb 知識梳理 ?? hashCode()方法示例 演示代碼 結果 註意:這裏打印的不是對象的實際地址值,可以理解為邏輯地址值 ?????? getClass()方法示例 示例一 示例二註:反射

String的equals方法Objectequals方法的區別

今天在無意中發現一個小知識點,難度不大就是簡單和大家分享一下。 String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2));//true