java/객체지향

1. 객체(Object), 클래스(Class), 인스턴스(Instance)

VanillaSky7 2023. 1. 12. 19:06

클래스(Class), 객체(Object), 인스턴스(Instance)?


객체(Object)는 실세계에 존재하는 것을 의미합니다. 실세계에 존재한다는 것은 무엇일까요? 사물이 될 수도 있고, 어떠

 

한 개념에 대한 것이 될 수도 있습니다. 너무 막연하다고 생각이 드시면 구체적으로 "제품"이라고 생각하시면 좋겠습니

 

다. 사물 또는 개념마다의 특성들을 통해서 각각의 기능을 하기 위한 제품으로 사용됩니다.

 

* 프로그래밍 관점에서의 객체) 속성(변수)과 기능(메서드)들을 묶어놓은 것!

 


 

클래스(Class)는 객체들을 정의하는 것을 의미합니다. 객체가 제품에 해당된다면, 이 클래스는 "설계도"라고 생각하시면 

 

좋겠습니다. 따라서 클래스는 객체를 생성하기 위해서 사용됩니다. 

 


 

인스턴스(Instance)는 특정 클래스로부터 생성된 객체를 의미합니다. 예를 들어, 냉장고라는 클래스(설계도)가 있다면 이 

 

냉장고라는 클래스로부터 생성된 구체적인 객체(제품)가 바로 인스턴스라고 할 수 있습니다. 또한 냉장고라는 클래스로

 

구체적인 객체를 생성하는 과정을 "인스턴스화" 한다고 합니다.

 

* 객체 vs 인스턴스) 객체는 모든 인스턴스들을 대표하는 일반적으로 두루 사용되는 포괄적인 용어이고, 인스턴스는 특정 클래스로부터 생성된 그 객체를 의미한다는 것에 용어의 차이 정도가 있습니다. 냉장고 클래스로부터 생성된 객체를 인스턴스라고 부를 수도 있고, 객체라고 부를 수도 있습니다.

 


요약 및 코드 


1. 클래스 : 우리가 어떠한 사물(제품)을 생성하기 위한 설계도 역할

 

2. 객체 : 클래스인 설계도로부터 만들어져 각각의 정의된 속성과 기능에 따라 제품으로써의 역할

 

3. 인스턴스 : 특정 클래스로부터 만들어진 그 객체

 

1
2
3
4
5
6
7
8
9
10
Class Refrigerator {
    // 속성(변수)
    boolean power; // 전원(on, off)
    int temperature; // 온도
 
    // 기능(메서드)
    void power() { power = !power; }
    void temperatureUp() { temperature++; }
    void temperatureDown() { temperature--; }
}
cs

 

 

냉장고라는 구체적인 클래스에 대한 간략한 코드입니다. 전원이 on, off 되고 온도를 높이고 떨어뜨리는 기능을 수행하는

 

제품을 만들 설계도가 준비되었습니다. 이를 제품화하는 방법 즉, 객체를 생성하고 사용하는 방법은 다음 글에서 이어집

 

니다.