각진 세상에 둥근 춤을 추자

[Java] Class 클래스 본문

Java

[Java] Class 클래스

circle.j 2022. 9. 28. 10:53

 

자바의 모든 클래스와 인터페이스는 컴파일 되고 나면 class 파일로 생성된다. 

예를 들어 a.java 파일이 컴파일 되면 a.class 파일이 생성되고 이 class 파일에는 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등의 정보가 들어 있다. 

 

클래스의 정보를 사용할 경우 클래스가 정확히 어떤 자료형인지 알 필요가 있다. 

 

Class 클래스를 선언하고 클래스 정보를 가져오는 방법은 다음과 같이 세 가지가 있다. 

 

// 1. Object 클래스의 getClass( ) 메서드 사용하기

String s = new String();
class c = s.getClass();
// 2. 클래스 파일 이름을 Class 변수에 직접 대입하기

Class c = String.Class;
// 3. Class.forName("클래스이름")메서드 사용하기

Class c = Class.forName("java.lang.String");

 

예제를 통해 Class 클래스를 이해해 본다.

package ch11_4;

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;
	}
	
	
}
package ch11_4;

public class ClassTest {
	public static void main(String[] args) throws ClassNotFoundException {
		
		Person person = new Person();
		
		// 1. getClass
		Class pClass1 = person.getClass();
		System.out.println(pClass1.getName());
		
		
		// 직접 class 파일 대입하기 
		Class pClass2 = Person.class;
		System.out.println(pClass2.getName());
		
		// 클래스 이름 가져오기
		Class pClass3 = Class.forName("ch11_4.Person");
		System.out.println(pClass3.getName());
				
		
	}
}

 

'Java' 카테고리의 다른 글

[Java] 컬렉션 프레임워크  (0) 2022.09.28
[Java] 제네릭(Generic)  (0) 2022.09.28
[Java] 근의 공식  (0) 2022.09.26
[Java] Wrapper 클래스  (0) 2022.09.26
[Java] 문자 ↔︎ 아스키코드  (0) 2022.09.24