CS/java - 클래스, 객체, 인스턴스 이해하기

YulHee Kim·2022년 1월 2일
0

CS

목록 보기
9/9

들어가기 전 객체지향 프로그래밍에 대해 간단히 정리해보겠습니다.

객체지향 프로그래밍

OOP와 PP

프로그래밍에서 객체지향 프로그래밍과(OOP) 절차적 프로그래밍(PP)는 중요한 개념입니다.

객체지향 프로그래밍의 반대 개념이 절차지향인 것은 절대 아닙니다. 프로그래밍 접근 방법이 절차적 프로그래밍은 데이터를 중심으로 함수를 만들어 쓰는 것이고, 객체지향은 데이터와 함수를 묶어 하나의 객체로 만들어 쓰는 것입니다.

절차적 프로그래밍 언어의 대표적인 것이 C이고 객체지향 프로그래밍 언어의 대표적인 것이 바로 Java입니다.

객체지향 언어와 절차적 언어를 구분하는 방법은 아래 기준으로 나눠집니다. 아래의 기준을 만족한다면 객체지향 언어라고 할 수 있습니다.

  • 캡슐화, 다형성, 클래스 상속을 지원하는가
  • 데이터 접근 제한을 걸 수 있는가

OOP

간단히 말해서 객체를 조립하여 프로그램을 만드는 조립식 프로그래밍입니다.
그렇기 때문에 코드의 재사용성이 높아지고 중복을 제거할 수 있습니다.


클래스와 객체

클래스

  • 클래스는 객체를 만들기 위한 설계도입니다.
  • 이 설계도를 통해 만들어진 무언가를 객체 또는 다른 표현으로 인스턴스라고합니다.
  • 클래스로 객체를 만드는 것을 '인스턴스화'라고 합니다.
  • 클래스는 객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 메소드로 구성되어있습니다.

객체

  • 객체는 소프트웨어 세계에 구현할 대상으로
  • 클래스에 선언된 모양 그대로 생성된 실체입니다.

즉, 클래스라는 틀로 객체(인스턴스)를 만드는 것입니다.

인스턴스

  • 객체를 소프트웨어에 실체화 한 것입니다.
  • 인스턴스는 객체에 포함된다고 볼 수 있습니다.
  • 인스턴스라는 용어를 반드시 클래스와 객체 사이의 관계로 한정지을 필요는 없습니다.

VS

클래스 vs 객체

클래스는 설계도이고, 객체는 이 설계도로 구현한 대상입니다.

객체 vs 인스턴스

  • 객체 : 클래스의 타입으로 선언되었을 때
  • 인스턴스 : 메모리에 할당되어 실제 사용될 때입니다.

참고)

profile
백엔드 개발자

0개의 댓글