클래스(Class)

  • 객체를 만들어내기 위한 설계도
  • 유사한 특징을 지닌 객체들을 추상화 하여 변수(속성)와 메서드(행위)로 묶어 정의한 집합체

 

객체(Object)

  • 소프트웨어 세계에 구현할 대상
  • 클래스에 선언된 형태로 생성될 실체
  • 모든 인스턴스를 포함하는 포괄적인 의미
  • 클래스의 인스턴스라고도 불림
  • 클래스의 타입으로 선언되었을 때 객체라고 불린다.

 

인스턴스(Instance)

  • 소프트웨어 세계에 구현된 실체
  • 어떤 원본(추상적인 개념)으로부터 생성된 복제본
    • OOP에서는 클래스(설계도)를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
  • 실체화된 인스턴스는 메모리에 할당
  • 인스턴스는 객체에 포함된다.
  • 객체가 메모리에 할당되어 실제 사용될 때 '인스턴스'라고 불린다.

 

클래스, 객체, 인스턴스 비교

  • 클래스는 설계도
  • 객체는 설계도로부터 구현된 모든 대상
  • 인스턴스는 객체가 메모리에 할당되어 실제 사용되는 실체
  • 주의할 점
    • 개념적으로 인스턴스는 객체에 포함된다고 볼 수 있기에 객체와 인스턴스는 어느정도 통용되어 쓰이지만, 클래스와 객체/인스턴스는 명확히 구분하여 사용해야 한다!
    • 다시 한번, 클래스는 설계도, 객체와 인스턴스는 구현할 대상 또는 구현된 실체이다.

 

분류(Classification)와 인스턴스화(Instantiation)

  • 분류
    • 객체 -> 클래스
    • 실재하는 객체들을 공통적인 속성과 메소드를 공유하는 범주나 추상적인 개념(클래스)로 묶는 것
  • 인스턴스화
    • 클래스 -> 인스턴스
    • 범주나 추상적인 개념으로부터 실재하는 객체(각각은 인스턴스)를 만드는 과정

 

참고

https://cerulean85.tistory.com/149

https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html

https://javacpro.tistory.com/29

'Backend > 🌏OOP' 카테고리의 다른 글

[OOP] 의존성 주입  (0) 2021.11.16
[OOP] 객체 지향 프로그래밍이란?  (0) 2021.11.16
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기