日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java class 生成对象_面向对象编程,你知道Java有哪些创建对象的方式吗?

發布時間:2023/12/19 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java class 生成对象_面向对象编程,你知道Java有哪些创建对象的方式吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:CSDN____愛敲代碼的小游子

1、用new關鍵字創建對象,需要使用構造器。

new 一個對象經過了哪些過程?

2、使用反射機制創建對象,用Class類或Constructor類的newInstance()方法。當使用Class類里的newInstance()方法,調用的是無參構造方法。

當使用java.lang.reflect.Constructor類里的newInstance方法,調用的是有參構造方法。

1、Class類里的newInstance()調用的是無參構造方法

2、Constructor類的newInstance()方法調用的是有參構造方法

3、通過object類的clone方法需要實現Cloneable接口,重寫object類的clone方法。無論何時我們調用一個對象的clone方法,JVM就會創建一個新的對象,將前面對象的內容全部拷貝進去。用clone方法創建對象并不會調用任何構造函數。

4、使用反序列化通過ObjectInputStream的readObject()方法反序列化類當我們序列化和反序列化一個對象,JVM會給我們創建一個單獨的對象。為了反序列化一個對象,我們需要讓我們的類實現Serializable接口。在反序列化時,JVM創建對象并不會調用任何構造函數。通過反序列化生成對象的過程主要由以下幾個步驟:

1、創建一個對象輸入流,它可以包裝一個其他類型的源輸入流,如文件輸入流;

2、 通過對象輸入流的readObject()方法讀取對象。

序列化工具類

創建對象各方法的代碼

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

//1、使用關鍵字new創建對象(沒有參數調用無參構造、傳入參數調用帶參構造)

Girlfriend girlfriend01 = new Girlfriend();

Girlfriend girlfriend02 = new Girlfriend("y", 18);

//2、使用反射機制創建對象,使用Class的newInstance()調用默認的無參構造

Girlfriend girlfriend03 = Girlfriend.class.newInstance();

//反射機制2,調用帶參

Class> p1 = Class.forName("com.yky.Girlfriend");

Constructor> constructor = p1.getConstructor(String.class, Integer.class);

Girlfriend girlfriend04 = (Girlfriend) constructor.newInstance("k", 18);

System.out.println(girlfriend04);

//3、使用object類的clone方法

Girlfriend girlfriendClone = (Girlfriend) girlfriend04.clone();

System.out.println("girlfriendClone="+girlfriendClone);

//4、使用序列化反序列化生成對象

Girlfriend clone = ObjectUtils.clone(girlfriend04);

System.out.println("clone"+clone);

System.out.println("girlfriend04和反序列化生成的clone相等嗎");

System.out.println(clone == girlfriend04);

? ?}

總結

以上是生活随笔為你收集整理的java class 生成对象_面向对象编程,你知道Java有哪些创建对象的方式吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。