반응형
Class 클래스
- 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성된다.
- class 파일에는 객체의 정보(멤버 변수, 메서드, 생성자 등)가 포함되어 있다.
- Class 클래스는 컴파일된 class 파일에서 객체의 정보를 가져올 수 있다.
[실습] 클래스 정의하기
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;
}
//get(), set()메서드를 정의
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;
}
}
Class 클래스를 선언하고 클래스 정보를 가져오는 방법(1) - 인스턴스 필요
- Object 클래스의 getClass()메서드 사용하기
[예시]
String s = new String();
Class c = s.getClass();
Class 클래스를 선언하고 클래스 정보를 가져오는 방법(2) - 인스턴스 필요 없음
-클래스 파일 이름을 Class 변수에 직접 대입하기
[예시]
Class c = String.Class;
Class 클래스를 선언하고 클래스 정보를 가져오는 방법(3)
- Class.forName("클래스이름") 메서드 사용하기
[예시]
Class c = ClassforName("java.lang.String");
[실습]클래스 가져오기
//ClassTest 클래스를 정의
public class ClassTest {
//main() 메서드가 생성되었습니다.
public static void main(String[] args) throws ClassNotFoundException {
// TODO Auto-generated method stub
//person 객체를 생성 -> 방법(1)
Person person = new Person();
//Object의 getClass() 메서드를 호출
Class personA = person.getClass();
//Class getName() 메서드를 호출
System.out.println(personA.getName()); //classTest.Person 출력
//직접 class 파일을 대입 -> 방법(2)
Class personB = Person.class;
//Class의 getName() 메서드를 호출
System.out.println(personB.getName()); //classTest.Person 출력
//클래스 이름으로 가져오기. -> 방법(3)
Class personC = Class.forName("classTest.Person");
//Class getName() 메서드를 호출
System.out.println(personC.getName()); //classTest.Person 출력
}
}
반응형
'Language > JAVA' 카테고리의 다른 글
[JAVA]Stream - 여행객의 여행비용 계산하기 (0) | 2020.07.02 |
---|---|
[JAVA] 스트림(Stream) 연산 (0) | 2020.07.02 |
[JAVA] 람다식(lambda expression) (0) | 2020.07.01 |
[JAVA]내부클래스 (0) | 2020.07.01 |
[JAVA]StringBuffer VS StirngBuilder (0) | 2020.07.01 |
댓글