Java 創(chuàng)建對象的不同姿勢

使用new關鍵字? ? ?

? ? ?使用new關鍵字是創(chuàng)建對象的最基本方法漱竖。這是在java中創(chuàng)建對象的最常見方法士鸥。幾乎99%的對象都是用這種方式創(chuàng)建的闲孤。通過使用這個方法烤礁,我們可以調用任何想要調用的構造函數(shù)(沒有參數(shù)或參數(shù)化的構造函數(shù))。

package org.cfj.objcreate;

public class NewKeywordEx {

String name="NewKeyCreateObj";

public static void main(String[]args) {

NewKeywordEx newKeywordEx=new NewKeywordEx();

System.out.println(newKeywordEx.name);

}

}

使用New Instance

? ? ? 使用new instance:如果我們知道類的名稱肥照,并且它具有公共默認構造函數(shù),則可以創(chuàng)建一個對象–Class.forName舆绎。 我們可以使用它來創(chuàng)建類的對象鲤脏。 實際上吕朵,Class.forName使用Java加載了Class猎醇,但沒有創(chuàng)建任何Object。 要創(chuàng)建該類的對象硫嘶,您必須使用該類的新實例方法。

package org.cfj.objcreate;

public class NewInstanceEx {

String name = "newInstanceEx";

public static void main(String[]args)throws ClassNotFoundException, IllegalAccessException, InstantiationException {

Class cl = Class.forName("org.cfj.objcreate.NewInstanceEx");

NewInstanceEx newInstanceEx = (NewInstanceEx)cl.newInstance();

System.out.println(newInstanceEx.name);

}

}

使用Clone

? ?每當在任何對象上調用clone()時梧税,JVM實際上會創(chuàng)建一個新對象,并將前一個對象的所有內容復制到其中第队。使用克隆方法創(chuàng)建對象不會調用任何構造函數(shù)哮塞。要在對象上使用clone()方法凳谦,我們需要實現(xiàn)Cloneable并在其中定義clone()方法忆畅。

package org.cfj.objcreate;

public class cloneEx implements Cloneable {

@Override

? ? protected Object clone()throws CloneNotSupportedException {

return super.clone();

}

private String name = "cloneEx";

CloneExModel cloneExModel = new CloneExModel("張三", "123");

public static void main(String[]args)throws ClassNotFoundException, IllegalAccessException, InstantiationException, CloneNotSupportedException {

cloneEx cloneEx = new cloneEx();

cloneEx cloneEx1 = (cloneEx)cloneEx.clone();

cloneEx1.name = "cloneEx1";

System.out.println(cloneEx.name);//輸出:cloneEx

? ? ? ? System.out.println(cloneEx1.name);//輸出:cloneEx1

? ? ? ? System.out.println(cloneEx == cloneEx1);//輸出:false

? ? ? ? cloneEx1.cloneExModel.setUserName("張三clone");

System.out.println(cloneEx.cloneExModel.getUserName());//輸出:張三

? ? ? ? System.out.println(cloneEx1.cloneExModel.getUserName());//輸出:張三

? ? }

}

Note:

?這里我們創(chuàng)建的是現(xiàn)有對象的克隆尸执,而不是任何新對象家凯。

?類需要實現(xiàn)Cloneable接口眠屎,否則將拋出CloneNotSupportedException肆饶。

使用反序列化

還有 40% 的精彩內容
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
支付 ¥1.00 繼續(xù)閱讀
  • 序言:七十年代末改衩,一起剝皮案震驚了整個濱河市驯镊,隨后出現(xiàn)的幾起案子葫督,更是在濱河造成了極大的恐慌,老刑警劉巖板惑,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異冯乘,居然都是意外死亡洽胶,警方通過查閱死者的電腦和手機裆馒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門姊氓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人喷好,你說我怎么就攤上這事翔横」=粒” “怎么了轮洋?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵向图,是天一觀的道長啡省。 經(jīng)常有香客問我哆键,道長掘托,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任烫映,我火速辦了婚禮,結果婚禮上噩峦,老公的妹妹穿的比我還像新娘。我一直安慰自己识补,他們只是感情好族淮,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祝辣,像睡著了一般贴妻。 火紅的嫁衣襯著肌膚如雪蝙斜。 梳的紋絲不亂的頭發(fā)上名惩,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天孕荠,我揣著相機與錄音娩鹉,去河邊找鬼。 笑死稚伍,一個胖子當著我的面吹牛,可吹牛的內容都是我干的个曙。 我是一名探鬼主播锈嫩,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼垦搬,長吁一口氣:“原來是場噩夢啊……” “哼呼寸!你這毒婦竟也來了?” 一聲冷哼從身側響起等舔,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糟趾,沒想到半個月后甚牲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體义郑,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年丈钙,在試婚紗的時候發(fā)現(xiàn)自己被綠了非驮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡劫笙,死狀恐怖,靈堂內的尸體忽然破棺而出星岗,到底是詐尸還是另有隱情,我是刑警寧澤俏橘,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布允华,位于F島的核電站,受9級特大地震影響靴寂,放射性物質發(fā)生泄漏磷蜀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一褐隆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剖踊,春花似錦、人聲如沸蜜宪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掉伏。三九已至,卻和暖如春澳窑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摊聋。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工鸡捐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留麻裁,地道東北人箍镜。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像煎源,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子手销,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355