객체 지향 프로그래밍

이종경·2024년 7월 22일
0

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

실세계에 존재하고 인지하고 있는 객체(Object)를 소프트웨어의 세계에서 표현하기 위해 객체의 핵심적인 개념 또는 기능만을 추출하는 추상화(abstraction)를 통해 모델링하려는 프로그래밍 패러다임을 말한다. 다시 말해, 우리가 주변의 실세계에서 사물을 인지하는 방식을 프로그래밍에 접목하려는 방법을 의미한다.

쉽게 말해 여러 객체를 하나로 조립해서 하나의 완성된 프로그램을 만드는 프로그래밍 방법론을 의미한다.

객체
실세계의 사물이나 개념을 프로그래밍 세계에 표현한 것

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

추상화

복잡한 시스템을 단순화하고 핵심적인 부분만 표현하는 것으로 불필요한 세부 사항을 숨기고 중요한 특성만 드러내는 것이다.

즉, 객체의 공통적인 속성과 기능을 추출하여 정의하는것을 의미한다.

예를 들어, 자동차 클래스에서 연료 주입 방식과 같은 세부 사항을 숨기고 운전, 가속, 제동과 같은 핵심 기능만 노출한다.

상속

기존 클래스의 속성과 메서드를 재활용하여 새로운 클래스에 물려주는 것이다.
상속을 통해 상위 클래스의 기능을 하위 클래스가 재사용할 수 있다.
또한, 상위 클래스와 하위 클래스 간의 계층적 관계를 만들 수 있으며 반복적인 내용을 최소화할 수 있다.

예를 들어, 동물 클래스에서 공통 기능을 상속받아 개, 고양이 클래스를 만들 수 있다.

다형성

하나의 인터페이스로 다양한 구현을 제공하는 것이다.
상속 관계에 있는 클래스들이 같은 메서드를 다르게 구현할 수 있다.
객체를 다양한 형태로 사용할 수 있게 해준다.

예를 들어, 동물 클래스의 speak() 메서드를 개, 고양이 클래스에서 각각 다르게 구현할 수 있다.

캡슐화

객체의 내부 구현 세부 사항을 외부에 감추는 것으로, 객체의 내부 데이터와 메서드에 대한 직접적인 접근을 제한한다.
객체 사용자가 객체의 내부 구현을 알 필요 없이 인터페이스만 알면 된다.

예를 들어, 은행 계좌 객체의 내부 구현 방식을 숨기고 예금, 출금 등의 메서드만 노출할 수 있습니다.

참고
[TIL] 클래스와 추상화
객체 지향 프로그래밍의 4가지 특징ㅣ추상화, 상속, 다형성, 캡슐화

profile
작은 성취들이 모여 큰 결과를 만든다고 믿으며, 꾸준함을 바탕으로 개발 역량을 키워가고 있습니다

0개의 댓글