객체지향 프로그래밍(OOP)

정체는 김태현·2022년 10월 7일
0

항해99

목록 보기
12/38

클래스(Class)와 오브젝트(Object)

객체지향 프로그래밍에서 절대 빼먹을 수 없는 두 가지의 단어입니다.

  • 클래스Class는 실제 오브젝트(객체)를 제작하기 전에 설계하는 도면 혹은 틀이며,

  • 오브젝트Object는 클래스(설계도)를 기반으로 실제로 메모리에 할당되는 것, 클래스 모양 그대로 생성된 실체를 말합니다.

비유를 하자면,

붕어빵을 만들어내는 틀이 클래스이고, 이 틀의 형태로 구워진 붕어빵이 바로 오브젝트(객체)입니다. 붕어빵은 틀의 모양대로 만들어지지만 붕어빵들은 서로 조금씩 다릅니다. 팥이 들어간 붕어빵, 크림이 들어간 붕어빵.. 그래도 이것들은 다 붕어빵입니다.

필드(Field)와 메소드(Method)

객체지향 프로그래밍에서 클래스(설계도)를 만들 때에는 크게 두 가지 섹션으로 구분이 됩니다.

  • 필드Field
  • 메소드Method

필드는 '데이터' 혹은 '속성' 이라고 말하기도 하고, 메소드는 '로직', '기능', '행동' 이라고 말하기도 합니다.

객체지향 프로그래밍의 특징

객체지향 프로그래밍은 크게 4가지의 특징을 가지고 있습니다.

  • 추상화 (Abstract), 캡슐화 (Encapsulation), 상속 (Inheritance), 다형성 (Polymorphism)

추상화 (Abstract)

객체에서 공통된 속성과 행위를 추출하는 기법입니다.
코드 상에서 구현(로직) 부분을 제외한, 오직 선언 부분만을 설계하고, 상세한 정보는 무시하고 필요한 정보들만 간추려서 구성합니다.

캡슐화 (Encapsulation)

캡슐화란 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것으로 객체의 가장 본질적인 특징입니다.
관련된 필드와 메소드를 하나로 묶고, 실제 구현 내용을 외부로부터 감추는 정보은닉 기법을 사용해서 만일의 상황(타인이 외부에서 조작)을 대비해서 특정 속성이나 메소드를 사용자가 조작할 수 없도록 숨겨 놓은 것을 말합니다.

상속 (Inheritance)

이미 작성된 클래스(상위 클래스)의 특성을 그대로 이어받아 새로운 클래스(하위 클래스)를 생성하는 기법입니다.
기존의 코드를 그대로 재사용하거나 재정의 할 수 있습니다.

다형성 (Polymorphism)

사전적 의미로는 '다양한 형태로 나타날 수 있는 능력'으로, 같은 기능(메소드)을 호출하더라도 객체에 따라 다르게 동작하는 것을 말합니다.
상위 클래스의 동작을 하위 클래스에서 다시 정의하여 사용하는 것 또한 다형성으로 볼 수 있습니다.

profile
하나부터 열가지 다

0개의 댓글

관련 채용 정보