객체 지향 프로그래밍이란?
컴퓨터 프로그램을 "객체(Object)"들의 모임으로 파악하고자 하는 프로그래밍의 패러다임 중 하나이다.
각 객체들은 서로 메시지를 주고 받으며 데이터를 처리할 수 있다.
객체 지향 프로그래밍(OOP)의 장점
- 프로그램을 유연하고 변경이 용이하게 만든다.
남이 만든 클래스를 가져와서 이용가능하며 상속을 통해 확장할 수 있다.
- 프로그램의 개발과 보수를 간편하게 만든다.
절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하지만,
객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다.
- 직관적인 코드 분석을 가능하게 한다.
직관적인 코드분석이 가능 하므로 여러 회사에서 프로젝트를 개발할 때 업무 분담하기 쉬워진다.
객체 지향 프로그래밍(OOP)의 단점
- 처리 속도가 상대적으로 느림
- 객체가 많으면 용량이 커질 수 있음
- 설계시 많은 시간과 노력이 필요
객체 지향 프로그래밍의 기본 구성 요소
- 클래스(Class)
같은 종류의 집단에 속하는 속성과 행위를 정의한 것. 다른 클래스와 독립적으로 디자인해야 한다. 위의 예제에서 몬스터(Monster) 의 특성과 행위들을 정의한 객체가 클래스가 될 것이다. - 객체(Object)
클래스의 인스턴스(Instance). 상위 클래스의 속성을 가지고 있으면서 개별적인 특성과 행위(메소드 : Method) 또한 가지고 있다. 위의 예제에서는 드래곤, 좀비, 해골 등이 각각의 객체가 된다. - 메서드(Method)
클래스로부터 생성된 객체를 사용하는 방법. 객체의 속성을 조작하는 데 사용된다. 위의 예제에서 각각의 몬스터들이 레벨업을 하는 행위가 메서드(method)라고 볼 수 있다.
객체 지향 프로그래밍의 특성
캡슐화(Encapsulation)
추상화(Abstraction)
+α 재사용성