1. 새 키워드
를 사용합니다. 이는 객체를 생성하는 가장 일반적이고 간단한 방법입니다. 이러한 방식으로 모든 생성자(매개변수 없음 및 매개변수화)를 호출할 수도 있습니다.
예:
User user = new User();
2. 리플렉션 메커니즘을 사용합니다.
리플렉션을 사용하여 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. 생성자 클래스의 newInstance 메소드를 사용하세요
클래스 클래스의 newInstance 메소드와 매우 유사합니다. java.lang.reflect.Constructor 클래스에도 객체를 생성하는 메소드가 있습니다. 이 newInstance 메소드를 통해 매개변수화된 생성자와 전용 생성자를 호출할 수 있습니다.
Constructor<User> constructor = User.class.getConstructor(); User user = constructor.newInstance();
이 두 가지 newInstance 메소드는 모두가 리플렉션이라고 부르는 것입니다. 실제로 Class의 newInstance 메소드는 Constructor의 newInstance 메소드를 내부적으로 호출합니다.
3. 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
4. 역직렬화 사용
객체를 직렬화 및 역직렬화할 때 jvm은 별도의 객체를 생성합니다. 역직렬화 중에 jvm은 객체를 생성하고 생성자를 호출하지 않습니다.
객체를 역직렬화하려면 클래스가 직렬화 가능 인터페이스를 구현하도록 해야 합니다.
관련 기사 튜토리얼 공유: Java 빠른 시작
위 내용은 Java에서 객체를 생성하는 방법에는 여러 가지가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!