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

dallok97·2022년 4월 9일
0

C/C++

목록 보기
2/6
post-thumbnail

😁 객체지향 프로그래밍이 뭐야?

객체지향 프로그래밍(Object-Oriented Programming)

프로그램을 상태(state)와 행위(behavior)로 이루어진 객체라는 기본 단위로 나누고, 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍이다.

저번 글에서 객체에 대해서 읽어보셨다면, 이해가 빠르게 되셨을거라고 믿습니다.

자 그렇다면 이걸 왜 쓸까요?
객체지향 프로그래밍의 특징과 장점을 보신다면 이해할 수 있습니다.
저번 글에서 궁금했던 '클래스를 쓰는 이유'에도 답변이 가능합니다.

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

💊 캡슐화(Encapsulation)

데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어, 변경이 발생할 때 오류의 파급효과가 적다.
캡슐화된 객체들은 재사용이 용이하다.

📴 정보은닉(Information Hiding)

캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것이다.

🤷‍♂️ 추상화(Abstarction)

불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화하는 것, 즉 모델화 하는 것이다.

👨‍👧‍👦 상속성(Inheritance)

이미 정의된 상위 클래스(부모 클래스)의 모든 속성솨 연산을 하위 클래스가 물려받는 것이다. 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성으로 사용할 수 있다.

🎨 다형성(Polymorphism)

메시지에 의해 개체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미한다. 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.

이러한 특징들이 있습니다. 그럼 이제 장단점을 알아보겠습니다.

객체지향 프로그래밍의 장점, 단점

👍 장점

🍒 재사용성

상속을 통해서 프로그래밍을 할시, 코드의 재사용률을 상승

🥜 생산성

클래스를 통해 객체를 활용함으로써, 개발의 생산성 향상

💻 유지보수의 용이성

주변 코드에 영향이 적기때문에 유지보수 용이

👎 단점

🔌 실행속도가 느림

절차지향언어는 컴퓨터 처리구조와 비슷해서 빠르지만, 객체지향 언어는 상대적으로 실행속도가 느림

📔 설계시간 길어짐

클래스, 객체, 상속 등 구조 설계도 해야해서 절차지향언어에 비해 설계시간이 많이 듬

객체지향 프로그래밍의 특징과 장단점을 알아보았습니다.

'클래스를 쓰는 이유'는 이러한 특징과 장점때문에 쓴다고 볼 수 있겠습니다.


Reference

profile
존중과 배려

0개의 댓글