객체지향 프로그래밍 (Object Oriented Programming; OOP)
객체지향 프로그래밍이란
- 컴퓨터 프로그래밍 패러다임 중 하나
- 프로그램을 명령어의 목록으로 보는 시각에서 벗어나, 독립된 단위인 객체의 모임으로 파악
- 각각의 객체는 메세지를 주고받고, 데이터를 처리
객체지향의 기본 구성 요소
- 클래스 (Class)
- 같은 종류의 집단에 속하는 속성과 행위를 정의한 것
- 클래스는 다른 클래스 또는 외부 요소와 독립적으로 디자인해야 함
- 객체 (Object)
- 클래스의 인스턴스로, 실제로 메모리상에 할당된 것
- 자신 공유의 속성을 가지며, 클래스에 정의된 행위를 수행
- 메소드 (Method)
- 클래스로부터 생성된 객체를 사용하는 방법
- 메소드는 한 객체의 속성을 조작하는 데에 사용
객체 지향의 특징
- OOP is A.P.I.E
- Abstraction (추상화): 자료 표현을 추상적으로 나타내는 추상 자료형을 사용한다.
- Polymorphism (다형성): 오버로딩과 오버라이딩을 하여 하나의 메소드명으로 다양한 동작을 구현할 수 있다.
- Inheritence (상속): 부모 클래스로부터 속성과 메소드를 상속받아 사용할 수 있다.
- Encapsulation (캡슐화): 사용자에게 불필요한 정보를 은닉/보호해야 한다.