Class는 객체에 대한 정보를 알고자 할 때 사용된다.

Person

package classex;

public class Person {
    private String name;
    private int age;

    public Person() {}

    public Person(String name) {
        this.name = name;
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = 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;
    }        
}
  • 변수 2개, 생성자가 3개인 클래스.

ClassTest

package classex;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class ClassTest {
    public static void main(String[] args) throws ClassNotFoundException {
        Person person = new Person();
        Class pClass1 = person.getClass();
        System.out.println(pClass1.getName());

        Class pClass2 = Person.class;
        System.out.println(pClass2.getName());

        Class pClass3 = Class.forName("classex.Person");
        System.out.println(pClass3.getName());

    }
}
  • 클래스 정보를 가져올 수 있는 3가지 방법.


클래스 정보를 가져와 새로운 인스턴스 생성하기.

package classex;

public class NewInstance {

    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        Person person1 = new Person();
        System.out.println(person1);

        Class pClass = Class.forName("classex.Person"); 
        Person person2 = (Person)pClass.newInstance(); // 클래스 정보를 가지고 새로운 인스턴스 생성. 
        System.out.println(person2);
    }

}

  • Class.forName 으로 가져온 클래스 정보로 새로운 인스턴스를 생성할 수 있다.

출처: do it 자바프로그래밍

'프로그래밍 > Java' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2019.12.14
제네릭  (0) 2019.12.14
wrapper클래스  (0) 2019.12.11
String 클래스  (0) 2019.12.10
기본클래스 - Object  (0) 2019.12.09
블로그 이미지

파니동

,