建立對象(執行個體))的4種方式

來源:互聯網
上載者:User

public class Dog{public Dog(){super();}}

1、建立對象有什麼難的,我們new一個就是的………………對,沒錯,這隻是其中一種

Dog jack = new Dog();

2、利用class的反射機制,該種方式適用於有無參構造方法的

Class dogClass = Dog.class; //拿到class Dog的 Class執行個體對象Dog rose = (Dog) dogClass.newInstance(); //調用Class的執行個體方法 newInstance()建立Dog的執行個體對象


Class dogClass = Class.forName("Dog");Dog rose = (Dog) dogClass.newInstance();

3、利用java的對象,可序列化(對象在記憶體中的分配方式,在本地裡儲存一份一模一樣的看,然後再取出來用,相當於把一個對象的狀態完全儲存住了,挺牛逼的啊,是不是遊遊戲裡經常這麼搞),利用封裝類:ObjectOutputStream,ObjectInputStream。

前提:該類必須實現介面Serializable

public class CreateFour implements Serializable {public static void main(String args[]) {CreateFour fCreateFour = new CreateFour();ObjectOutputStream objectStream;try {objectStream = new ObjectOutputStream(new FileOutputStream("res/obj.txt"));objectStream.writeObject(fCreateFour);ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("res/obj.txt"));CreateFour cloneFour = (CreateFour) objectInputStream.readObject();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


4、利用Object下執行個體方法clone(),該類必須實現Cloneable介面,不然會拋出異常CloneNotSupportedException

public class CreateFour implements Cloneable {public static void main(String args[]) {CreateFour f = new CreateFour();try {CreateFour cloneObject = (CreateFour) f.clone();} catch (CloneNotSupportedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


5、總結

答:好啦,建立對象的4種方式,夥伴們都知道了………… 利用物件流程,還是利用clone(),都會開闢新的記憶體空間,就是在jvm中的堆記憶體複製一個與來源物件相同的新的對象(千萬不要以為舊引用與新引用對應的是同一個對象哦)

 




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.