在Java中建立物件的不同方法是什麼?
在這篇快速文章中,我們將討論在Java中建立物件的五種不同方法。 我們知道,類是建立物件的模板或藍圖。 讓我們列出在Java中建立物件的不同方法。
用Java建立物件的5種不同方法
1.使用新關鍵字
2.使用
newInstance()
Class類的方法
3.使用
newInstance()
Constructor類的方法
4.使用物件反序列化
5.使用物件克隆 -
clone()
方法
使用新關鍵字
這是在Java中建立物件的最流行的方法,我們已在上面討論過; 幾乎每個Java Developer都知道這種方法。
包 網。javaguides。corejava。哎呀 ;
公立 班 學生 {
私有 字串 名稱 ;
私人 絃樂 學院 ;
public Student(String name,String college){
super();
這個。name = name ;
這個。大學 = 大學 ;
}
public String getName(){
返回 名稱 ;
}
public void setName(String name){
這個。name = name ;
}
public String getCollege(){
迴歸 大學 ;
}
public void setCollege(String college){
這個。大學 = 大學 ;
}
public static void main(String [] args){
學生 學生 = 新的 學生(“拉梅什”,“BVB”);
學生 STUDENT2 = 新的 學生(“普拉卡什”,“GEC”);
學生 學生三 = 新的 學生(“普拉莫德”,“個人所得稅”);
}
}
從上面的程式碼中,我們 使用 new 關鍵字 建立 Student 物件 :
學生 學生 = 新的 學生(“拉梅什”,“BVB”);
學生 STUDENT2 = 新的 學生(“普拉卡什”,“GEC”);
學生 學生三 = 新的 學生(“普拉莫德”,“個人所得稅”);
2.使用類的newInstance()方法
Class.forName()
將動態載入該類,它間接將為您提供“類類”物件。
載入類後,我們將使用該
newInstance()
方法動態建立物件。
讓我們
在這裡
為
Student
類
建立一個Java物件
:
包 網。javaguides。corejava。哎呀 ;
公立 班 學生 {
private String name = “Ramesh” ;
private String college = “ABC” ;
公共 學生(){
super();
}
public Student(String name,String college){
super();
這個。name = name ;
這個。大學 = 大學 ;
}
public String getName(){
返回 名稱 ;
}
public void setName(String name){
這個。name = name ;
}
public String getCollege(){
迴歸 大學 ;
}
public void setCollege(String college){
這個。大學 = 大學 ;
}
public static void main(String [] args){
嘗試 {
String className = “net.javaguides.corejava.oops.Student” ;
class clasz = Class。forName(className);
學生 學生 =(學生)clasz。newInstance();
系統。出。的println(學生。的getName());
系統。出。的println(學生。getCollege());
} catch(InstantiationException | IllegalAccessException | ClassNotFoundException e){
e。printStackTrace();
}
}
}
輸出:
拉梅什
ABC
該
forName()
方法返回與具有給定字串名稱的類或介面關聯的Class物件。
class clasz = Class。forName(className);
該
newInstance()
方法建立此Class物件表示的類的新例項。
學生 學生 =(學生)clasz。newInstance();
系統。出。println(學生);
3.使用建構函式類的newInstance()方法
與
Class
類
的
newInstance()
方法
類似,
類中有一個
方法
,我們可以用它來建立物件。
我們還可以使用此
方法
呼叫引數化建構函式和私有建構函式
。
讓我們透過
使用類的
方法
建立
Student
類物件來
演示這種方法
:
newInstance()
java.lang.reflect.Constructor
newInstance()
newInstance()
java.lang.reflect.Constructor
包 網。javaguides。corejava。哎呀 ;
匯入 java。郎。反思。建構函式 ;
匯入 java。郎。反思。InvocationTargetException ;
公立 班 學生 {
private String name = “Ramesh” ;
private String college = “ABC” ;
公共 學生(){
super();
}
public Student(String name,String college){
super();
這個。name = name ;
這個。大學 = 大學 ;
}
public String getName(){
返回 名稱 ;
}
public void setName(String name){
這個。name = name ;
}
public String getCollege(){
迴歸 大學 ;
}
public void setCollege(String college){
這個。大學 = 大學 ;
}
public static void main(String args []){
建構函式 < Student > 建構函式 ;
嘗試 {
constructor = 學生。上課。getConstructor();
學生 學生 = 構造。newInstance();
系統。出。的println(學生。的getName());
系統。出。的println(學生。getCollege());
} catch(InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException |
NoSuchMethodException | SecurityException e){
// TODO自動生成的catch塊
e。printStackTrace();
}
}
}
輸出:
拉梅什
ABC
4.使用物件反序列化
在這種方法中,我們將使用 Java中的 Serializable 介面,它是一個標記介面(沒有主體的方法),用於將Java 學生 物件 s1 序列 化為文字檔案(sample.txt),並使用物件反序列化,我們將閱讀並將其分配給新的 Student 物件 s2 。
包 網。javaguides。corejava。哎呀 ;
匯入 java。io。可序列化 ;
public class Student 實現 Serializable {
私有 字串 名稱 ;
私人 絃樂 學院 ;
公共 學生(){
super();
}
public Student(String name,String college){
super();
這個。name = name ;
這個。大學 = 大學 ;
}
public String getName(){
返回 名稱 ;
}
public void setName(String name){
這個。name = name ;
}
public String getCollege(){
迴歸 大學 ;
}
public void setCollege(String college){
這個。大學 = 大學 ;
}
}
包 網。javaguides。corejava。哎呀 ;
匯入 java。io。FileInputStream ;
匯入 java。io。FileOutputStream ;
匯入 java。io。ObjectInputStream ;
匯入 java。io。ObjectOutputStream ;
公共 課 StudentDemo {
public static void main(String [] args){
//儲存Serialized物件的路徑
String filePath = “sample.txt” ;
學生 s1 = 新 學生(“Ramesh”,“ABC”);
嘗試 {
FileOutputStream fileOutputStream = new FileOutputStream(filePath);
ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
outputStream。writeObject(s1);
outputStream。flush();
outputStream。close();
FileInputStream fileInputStream = new FileInputStream(filePath);
ObjectInputStream inputStream = new ObjectInputStream(fileInputStream);
學生 s2 =(學生)inputStream。readObject();
inputStream。close();
系統。出。的println(S2。的getName());
系統。出。的println(S2。getCollege());
} catch(Exception ee){
ee。printStackTrace();
}
}
}
輸出:
拉梅什
ABC
5.使用物件克隆 - clone()方法
該
clone()
方法用於建立現有物件的副本。
為了實現該
clone()
方法,相應的類應該已經實現了
Cloneable
介面,該介面又是Marker介面。
在這種方法中,我們將為
Student
類“student1”
建立一個物件,
並使用該
clone()
方法將其克隆為“student2”物件:
包 網。javaguides。corejava。哎呀 ;
匯入 java。io。可序列化 ;
public class Student 實現 Cloneable {
私有 字串 名稱 ;
私人 絃樂 學院 ;
公共 學生(){
super();
}
public Student(String name,String college){
super();
這個。name = name ;
這個。大學 = 大學 ;
}
public String getName(){
返回 名稱 ;
}
public void setName(String name){
這個。name = name ;
}
public String getCollege(){
迴歸 大學 ;
}
public void setCollege(String college){
這個。大學 = 大學 ;
}
public static void main(String args []){
學生 student1 = 新 學生(“Ramesh”,“ABC”);
嘗試 {
學生 2 =(學生)學生1。clone();
系統。出。的println(STUDENT2。的getName());
系統。出。的println(STUDENT2。getCollege());
} catch(CloneNotSupportedException e){
e。printStackTrace();
}
}
}
輸出:
拉梅什
ABC
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2221517/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最全--Java中建立物件的5種方法Java物件
- Java 中建立子類物件會建立父類物件麼?Java物件
- Java建立物件的方法有哪些?Java物件
- JS中建立物件的方法JS物件
- Python中的arange是什麼?和range有什麼不同?Python
- Python中的類和物件是什麼Python物件
- java 中/**是什麼Java
- Java是什麼_Java是做什麼的?Java
- 物件導向中類和物件的定義是什麼?物件
- Java中建立物件的5種方式Java物件
- Linux中建立group是什麼意思?Linux
- 如何建立物件,在web前端開發起到什麼作用物件Web前端
- java中RMI是什麼Java
- java中@Inherited是什麼?Java
- java中@Retention是什麼?Java
- 在Linux中,LVM是什麼?LinuxLVM
- 在Linux中,RabbitMQ是什麼?LinuxMQ
- 在Linux中,什麼是 inode ?Linux
- 在Linux中,RAID 是什麼?LinuxAI
- 在Linux中,什麼是 CLI?Linux
- 在Linux中,什麼是 GUI?LinuxGUI
- 什麼是物件?什麼是抽象?怎麼理解物件導向的程式設計思想?物件抽象程式設計
- Java中equals和==比的是什麼Java
- 什麼是BOM物件物件
- js建立物件的方法JS物件
- java中死鎖是什麼Java
- java中lock介面是什麼Java
- DDD中實體與值物件是幹什麼的物件
- 在Linux中,什麼是cron作業?如何建立一個cron作業?Linux
- java中什麼樣的物件才能作為gc root物件,gc root物件有哪些Java物件GC
- 在Linux中,Keepalived的工作原理是什麼?Linux
- python中類方法的區別是什麼Python
- Java虛擬機器中獲得Runtime例項的方法是什麼?Java虛擬機
- Java中一個物件在多執行緒中是共享的Java物件執行緒
- 在Linux中,什麼是Linux shell?Linux
- 什麼是物件儲存?物件
- session是什麼時候建立的Session
- Java中活鎖是什麼啊?Java