Search
Duplicate

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

생성일
2023/02/26 05:08
태그
SE

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

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

OOP (Object Oriented Programming) 이라고도 부르며, 프로그램을 여러 개의 독립된 객체들과 그 객체들 간의 상호작용을 이용한 프로그래밍 접근법이다.
객체지향 프로그램을 만들기 위해서 고려해야할 것들
프로그램에 어떤 객체들이 필요한지 정한다
객체들의 속성과 행동들을 정한다.
객체들이 서로 어떻게 소통해야할지 정한다.
사용되는 대표적인 언어: 자바, c++, python, swift 등등

객체 지향 프로그래밍의 핵심 개념

추상화 (Abstraction)

이름 잘 짓고, 문서화 잘하기
구조를 상세히 몰라도, 클래스나 메서드, 변수들의 이름만으로 파악할 수 있어야 한다.

캡슐화 (Encapsulation)

외부로부터의 직접적인 엑세스를 차단한다 (ex. getter/setter, private 제어자)
속성과 이 속성을 사용하는 행동을 하나로 묶어야 한다 (객체를 사용할 땐 메서드를 사용)

상속 (Inheritance)

중복되는 코드는 상속받는다 (중복되는 코드가 있다면, 부모 클래스를 만들어 override 함)

다형성 (Polymophism)

오버로딩 (overloading) - 같은 이름의 함수를 매개변수의 타입, 갯수를 다르게 하여 재정의 한 것
오버라이딩 (overriding) - 부모 클래스에서 정의한 메서드와 같은 이름, 같은 매개변수를 갖는 메서드를 자식 클래스에서 재정의한 것

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

장점

코드의 재사용성이 용이
유지보수 및 업그레이드가 쉽다
대형 프로젝트에 효과적
직관적인 코드 분석을 가능하게 한다

단점

처리 속도가 느리다
객체가 많아질수록 용량이 커진다
설계 시 시간과 노력이 많이 필요

ref)