java創建對象的幾種方式
① java創建對象有哪幾種方式
Java中創建對象的四種方法 收藏Java中創建對象的四種方式
1.用new語句創建對象,這是最常見的創建對象的方法。
2.運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
3.調用對象的clone()方法。
4.運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。
第一種最常見
② JAVA中創建一個對象有哪幾種方法,有什麼區別
以string類為例
第一種:
string
str
=
new
string();
第二種:
string
str
=
class.forname(string).newinstance()
兩種方法創建的對象實體沒有任何區別,如果硬說有區版別的話,那就是第一種權直接調用了本類的構造函數,如果本類有多個構造函數重載的話,可以添加參數。而第二種是調用這個類的默認構造函數,即不帶任何參數的。
第一種方法是最常用,最普遍的用法。
第二種方法叫做工廠模式,是一種較安全的方法。
③ Java中創建對象的集中方式有那些
Java有5種方式來創建對象:
使用 new 關鍵字(最常用):
ObjectName obj = new ObjectName();
使用反射的Class類的newInstance()方法:
ObjectName obj = ObjectName.class.newInstance();
使用反射的Constructor類的newInstance()方法:
ObjectName obj = ObjectName.class.getConstructor.newInstance();
使用對象克隆clone()方法:
ObjectName obj = obj.clone();
使用反序列化(ObjectInputStream)的readObject()方法:
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME))) {
ObjectName obj = ois.readObject();
希望對你有幫助!
④ Java創建對象的幾種方法及擴展
publicclassInstanceWay{
publicstaticvoidmain(String[]args){
normal();
special();
}
privatestaticvoidnormal(){
Personp=newPerson();
p.setId(1);
System.out.println(p);
}
privatestaticvoidspecial(){
try{
//person的無參構造方法不能為private
Class<?>clazz=Person.class;
Personperson=(Person)clazz.newInstance();
person.setId(2);
System.out.println(person);
}catch(Exceptione){
e.printStackTrace();
}
}
staticclassPerson{
privateintid;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
@Override
publicStringtoString(){
return"Person[id="+id+"]";
}
}
}
測試結果
Person[id=1]
Person[id=2]
⑤ JAVA中創建一個對象有哪幾種方法,有什麼區別
以String類為例
第一種:
String
str
=
new
String();
第二種:
String
str
=
Class.forName(String).newInstance()
兩種方法創建的對象實體沒有任何區別,如果硬說內有區別的話,那就容是第一種直接調用了本類的構造函數,如果本類有多個構造函數重載的話,可以添加參數。而第二種是調用這個類的默認構造函數,即不帶任何參數的。
第一種方法是最常用,最普遍的用法。
第二種方法叫做工廠模式,是一種較安全的方法。
⑥ 在java中創建對象到底有多少種方法
Java中創建對象的四種方式
1.用new語句創建對象,這是最常見的創建對象的方法。
2.運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
3.調用對象的clone()方法。
4.運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。
下面演示了用前面3種方式創建對象的過程:
public class Customer implements Cloneable{
private String name;
private int age;
public Customer(){
this("unknown",0);
System.out.println("call default constructor");
}
public Customer(String name,int age){
this.name=name;
this.age=age;
System.out.println("call second constructor");
}
public Object clone()throws CloneNotSupportedException{
return super.clone();
}
public boolean equals(Object o){
if(this==o)return true;
if(! (o instanceof Customer)) return false;
final Customer other=(Customer)o;
if(this.name.equals(other.name) && this.age==other.age)
return true;
else
return false;
}
public String toString(){
return "name="+name+",age="+age;
}
public static void main(String args[])throws Exception{
//運用反射手段創建Customer對象
Class objClass=Class.forName("Customer");
Customer c1=(Customer)objClass.newInstance(); //會調用Customer類的默認構造方法
System.out.println("c1: "+c1); //列印name=unknown,age=0
//用new語句創建Customer對象
Customer c2=new Customer("Tom",20);
System.out.println("c2: "+c2); //列印name=tom,age=20
//運用克隆手段創建Customer對象
Customer c3=(Customer)c2.clone(); //不會調用Customer類的構造方法
System.out.println("c2==c3 : "+(c2==c3)); //列印false
System.out.println("c2.equals(c3) : "+c2.equals(c3)); //列印true
System.out.println("c3: "+c3); //列印name=tom,age=20
}
}
除了以上4種顯式地創建對象的方式以外,在程序中還可以隱含地創建對象,包括以下幾種情況:
1.對於java命令中的每個命令行參數,Java虛擬機都會創建相應的String對象,並把它們組織到一個String數組中,再把該數組作為參數傳給程序入口main(String args[])方法。
2.程序代碼中的String類型的直接數對應一個String對象。
3.字元串操作符「+」的運算結果為一個新的String對象。
4.當Java虛擬機載入一個類時,會隱含地創建描述這個類的Class實例.
⑦ Java中創建一個對象有哪幾種方法
2種 一種是new 一個對象。另一種是通過方法調用來實現。如String name=tfName.getText();而在此之前tfName需以知。
⑧ Java創建對象的幾種方式
1.使用 new 的方式,這也是我們最常見的一種方式 我們以 Person 類來舉例說明 例:
Person p = new Person();
2.使用專反射來創建對象屬 我們可以調用 class類 或者 Constructor類的newInstance() 方法 例:
Person p1 = Person.class.newInstance();
3.使用克隆的方式 調用對象的 clone() 方法 例:
Person p4 = (包名.Person) p.clone();
4.使用反序列化的方式 我們需要讓我們的類實現Serializable介面 例:
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Person p5 = (Person ) in.readObject()
⑨ java創建對象的幾種常用方法
1.用new語句創建對象,這是最常用的創建對象的方式。
2.運用反射手段,調用Java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
3.調用對象的clone()方法。
4.運用反序列化手段,調用java.io.ObjectInputStream對象的readObject()方法.
⑩ java中有幾種創建對象的方式,包括模式
一.最基本的:類名
對象名
person
person
=
new
person();
二.匿名對象:new
類名()
new
person();
三.通過反射:
class
c
=
class.forname("類的全路徑");
person
person
=
(person)c.newinstance();
(反射的知識可以自己去看看書)