>  기사  >  Java  >  Java에서 객체를 생성하는 방법에는 여러 가지가 있습니다.

Java에서 객체를 생성하는 방법에는 여러 가지가 있습니다.

王林
王林원래의
2019-11-30 11:45:292850검색

Java에서 객체를 생성하는 방법에는 여러 가지가 있습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.