一、应用new关键字
这是我们最常见的也是最简朴的建立对象的体式格局,经由过程这类体式格局我们还能够挪用恣意的组织函数(无参的和有参的)。
比方:
User user = new User();
二、应用反射机制
应用反射手腕,挪用Java.lang.Class
或许java.lang.reflect.Constructor
类的newInstance()
实例要领。
相干视频教程分享:java教授教养视频
1、应用Class类的newInstance要领
能够应用Class类的newInstance要领建立对象。这个newInstance要领挪用无参的组织函数建立对象。
//建立要领1 User user = (User)Class.forName("根途径.User").newInstance(); //建立要领2(用这个最好) User user = User.class.newInstance();
2、应用Constructor类的newInstance要领
和Class类的newInstance要领很像, java.lang.reflect.Constructor类里也有一个newInstance要领能够建立对象。我们能够经由过程这个newInstance要领挪用有参数的和私有的组织函数。
Constructor<User> constructor = User.class.getConstructor(); User user = constructor.newInstance();
这两种newInstance要领就是人人所说的反射。事实上Class的newInstance要领内部挪用Constructor的newInstance要领。
三、应用clone要领
不管什么时候我们挪用一个对象的clone要领,jvm就会建立一个新的对象,将前面对象的内容悉数拷贝进去。用clone要领建立对象并不会挪用任何组织函数。
要应用clone要领,我们须要先完成Cloneable接口并完成其定义的clone要领。
比方:
public class CloneTest implements Cloneable{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public CloneTest(String name, int age) { super(); this.name = name; this.age = age; } public static void main(String[] args) { try { CloneTest cloneTest = new CloneTest("wangql",18); CloneTest copyClone = (CloneTest) cloneTest.clone(); System.out.println("newclone:"+cloneTest.getName()); System.out.println("copyClone:"+copyClone.getName()); } catch (CloneNotSupportedException e) { e.printStackTrace(); } }
实行:
newclone:wangql copyClone:wangql
四、应用反序列化
当我们序列化和反序列化一个对象,jvm会给我们建立一个零丁的对象。在反序列化时,jvm建立对象并不会挪用任何组织函数。
为了反序列化一个对象,我们须要让我们的类完成Serializable接口。
相干文章教程分享:java疾速入门
以上就是java中建立对象的要领有几种的细致内容,更多请关注ki4网别的相干文章!