[Java] Class 클래스

Devlog·2024년 3월 27일

Java

목록 보기
29/41

✔️ Class 클래스

: 클래스와 인터페이스의 메타 데이터를
java.lang 패키지에 소속된 Class 클래스로 관리함

  • 메타 데이터란?
    : 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보를 말함

✔️ Class 객체 얻기(getClass(), forName())

1) 클래스로부터 얻는 방법
① Class clazz = 클래스이름.class
② Class clazz = Class.forName("패키지. . .클래스이름")

→ 객체 없이 클래스 이름만 가지고
Class객체를 얻는 방법

2) 객체로부터 얻는 방법
③ Class clazz = 참조변수.getClass();

→ 클래스로부터 객체가 이미 생성되어 있을 경우에
사용하는방법

ex) 
String 클래스의 Class 객체 얻기
① Class clazz = String.class;
② Class clazz = Class.forName("java.lang.String");
    String str = "감자바";
③ Class clazz = str.getClass();
import sec06.exam06.Car;

public class ClassExample {
	public static void main(String[] args) {
		//첫 번째 방법
		Class clazz = Car.class;
		
		//두 번째 방법
		//Class clazz = Class.forName("sec06.exam06.Car");
		
		//세 번째 방법
		//Car car = new Car();
		//Class clazz = car.getClass();
		
		System.out.println(clazz.getName());
		System.out.println(clazz.getSimpleName());
		System.out.println(clazz.getPackage().getName());
	}
}

💻 결과
sec06.exam06.Car
Car
sec06.exam06

✔️ 클래스 경로를 활용해서 리소스 절대 경로 얻기

: Class 객체는 해당 클래스의 파일 경로 정보를 가지고 있기 때문에
이 경로를 활용해서 다른 리소스 파일(이미지, XML, Property 파일)의
경로를 얻을 수 있음

→ 이 방법은 UI 프로그램에서 많이 활용됨

ex)
Car 클래스가 위치하는 경로에 photo.jpg파일이 있다고 가정

파일
C:\SelfJavaStudy\chap11\bin\sec01
					  | - exam09
					  	     | - Car.class
						     | - photo1.jpg
						     | - images
							   | - photo2.jpg

- 프로그램 실행 중 이미지 파일(photo1.jpg, photo2.jpg)의
절대 경로가 필요할 경우에 Car.class를 기준으로
한 상대 경로를 이용해서 절대 경로를 얻을 수 있음

String photo1Path = clazz.getResource("photo1.jpg").getPath();
String photo2Path = clazz.getResource("images/photo2.jpg").getPath();

0개의 댓글