在这篇快速文章中,我们将讨论在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.ConstructornewInstance()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
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java