본문 바로가기
Language/JAVA

[JAVA]Class 클래스

by 바까 2020. 7. 1.
반응형

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

댓글