개발 일지/Java

[Java] 클래스(Class)

미숫가루설탕많이 2022. 12. 27. 20:21

 클래스(Class)는 객체 지향 프로그래밍(OOP)에서 객체를 정의한 '설계도(blueprint)' 또는 '틀(frame)'이다. 클래스는 객체를 생성하는 데 사용되며 객체는 클래스에 정의되고 설계된 내용 그대로 생성된다. 이렇게 클래스를 통해 생성된 객체를 해당 클래스의 인스턴스(instance)라고 부른다. 또한, 클래스로부터 객체를 만드는 과정을 인스턴스화(instantiate)라고 한다.

 

 객체와 인스턴스는 사실 같은 말이라서 두 용어를 혼용해서 사용할 수 있다. 엄격하게 두 용어를 구분한다면 객체는 모든 인스턴스를 포괄하는 넓은 의미를 가지고 있는 반면, 인스턴스는 해당 객체가 어떤 클래스로부터 생성된 것인지를 강조한다는 데 그 차이가 있다.

 

 클래스를 사용하면 객체를 분류할 때 멤버의 자료형을 미리 정하지 않고 객체를 사용할 때 결정할 수 있다. 이를 통해서 클래스나 변수의 중복 정의를 하지 않아도 되므로 효율적인 코딩이 가능하다.

 

 클래스는 전부 혹은 일부를 그 클래스 특성으로부터 상속받는 서브클래스를 가질 수 있으며, 클래스는 각 서브클래스에 대해 슈퍼클래스가 된다. 서브클래스는 자신만의 메소드와 변수를 정의할 수도 있다. 이러한 클래스와 그 서브클래스 간의 구조를 '클래스 계층(hierarchy)'이라고 한다.

 

 

 

 

클래스의 구성요소와 기본 문법

 클래스는 기본적으로 class 키워드를 사용하여 정의한다. 여기서 클래스명은 주로 대문자로 시작하는 것이 관례이다.

 

class 클래스명 {	// 클래스 정의
	-- 생략 --
}

 

 클래스는 크게 필드(field), 메서드(method), 생성자(constructor), 이너 클래스(inner class) 이렇게 네 가지의 요소로 구성되어 있다.

  • 필드(field) : 클래스의 속성을 나타내는 변수
  • 메서드(method) : 클래스의 기능을 나타내는 함수
  • 생성자(constructor) : 클래스의 객체를 생성하는 역할
  • 이너 클래스(inner class) : 클래스 내부의 클래스

 

public class ExampleClass {
	int X = 10;		// 필드
    void printX() {...}		// 메서드
    ExampleClass {...}		// 생성자
    class ExampleClass2 {...}	// 이너 클래스
}

 

 위의 구성 요소들 중 생성자를 제외한 나머지 3가지 요소를 클래스의 멤버(member)라고 부른다.

 

 이 중에서 필드와 메서드는 각각의 클래스가 가지는 속성(state)과 기능(behavior)을 대표한다. 속성과 기능은 해당 클래스와 관련된 데이터의 집합이며, 핵심적인 정보를 담고있다.

'개발 일지 > Java' 카테고리의 다른 글

[Java] 필드(Field)  (0) 2022.12.27
[Java] 객체(Object)  (0) 2022.12.27
[Java] 객체 지향 프로그래밍(OOP)  (0) 2022.12.27
[Java] 배열(array)  (0) 2022.12.26
[Java] 반복문(Repetitive Statement)  (0) 2022.12.23