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 |