[Java] 자바 기본 클래스 - Class 클래스

나영원·2020년 8월 30일
1

Java_basic

목록 보기
54/60

Class 클래스

  • 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성됩니다. class파일에는 멤버변수, 메서드, 생성자 등 객체의 정보가 포함되어 있는데 Class 클래스는 이 class파일에서 객체에 정보를 가져올 수 있습니다.
		Class c1 = String.class;
		
		String str = new String();
		Class c2 = str.getClass();
		
		Class c3 = Class.forName("java.lang.String");
  • Class 클래스는 위와 같은 방법으로 불러올 수 있고 그중에 forName을 통해 가져오는 방법이 많이 사용되고 이를 동적 로딩이라고 부릅니다.

  • 동적 로딩이라고 부르는 이유는 보통 다른 클래스 파일을 불러올때는 컴파일 시 스태틱에 그 클래스파일이 같이 바인딩이 되지만 forName으로 class파일을 불러올 때는 컴파일에 바인딩이 되지않고 런타임때 불러오게 되기 때문입니다.

  • 즉 실행시에 불러서 사용할 수 있기 때문에 동적 로딩이라고 부르게됩니다.

  • 단점은 클래스파일명을 직접 적게 되어 있어 만약 파일명에 오타가 나면 에러가 발생할 수 있기 때문에 주의해야합니다.

public static void main(String[] args) throws ClassNotFoundException {
		
		Class c1 = String.class;
		
		String str = new String();
		Class c2 = str.getClass();
		
		Class c3 = Class.forName("java.lang.String");
		
		Constructor[] cons = c3.getConstructors();
		for(Constructor con: cons) {
			System.out.println(con);
		}
		System.out.println();
		
		Method[] methods = c3.getMethods();
		for(Method method : methods) {
			System.out.println(method);
		}
		
	}
  • Constructor와 Method를 모를 때 위와 같은 방식으로 모든 Constructor와 Method를 출력시킬 수 있습니다.

  • 하지만 보통 .을 누루면 어떤 것들이 가능한지 알 수 있기 때문에 사용할 일은 많이 없습니다.

profile
배우는 개발 일기

0개의 댓글