Object-Oriented Orogramming, OOP
개요
C언어는 절차지향 프로그래밍으로써 프로세스가 함수단위로 순서대로 진행됩니다. 반면 OOP는 객체들의 유기적인 관계를 통해 프로세스가 진행됩니다. 애플리케이션은 객체의 집합이며, 객체들을 유기적으로 연결해 프로그래밍합니다.
OOP의 기본 구성 요소
-
클래스(Class)
같은 종류의 집단에 속하는 속성과 행위를 정의
-
객체 (Object)
클래스의 인스턴스로써 상위클래스의 특징을 가지면서 개별적인 특성이 존재합니다.
-
매서드(Method)
클래스로부터 생성된 객체의 행위합니다.
예를들자면, 사람이라는 클래스가 있다면 저는 사람이라는 클래스에 속합니다.
거기에 저랑 똑같은 사람은 어디에도 존재하지 않으므로 저는 객체라고 할 수 있습니다.
그리고 제가 하는 행위(밥을 먹거나, 공부를 하거나, 코딩을 하거나)들은 메서드라고 할 수 있습니다.
OOP의 특징
-
추상화
객체들이 가진 공통특성을 파악해 제거하는 과정입니다.
예를 들면, 조류라는 클래스에 속하는 객체들은 모두 날개가 있으므로, 클래스에 날개라는 특성을 기술하면 일일이 객체에 날개라는 특성을 기입하지 않아도 되죠.
-
캡슐화
캡슐화는 객체의 데이터를 함수를 통해서만 조작하고 외부에서는 직접 접근하지 못하게 하는 특성입니다. 정보은닉을 함으로써 오류를 줄여줍니다.
-
상속
클래스간 계층적 관계를 구성합니다. 자식 클래스가 부모 클래스의 기능을 받아 쓰는 것 입니다. 코드 재사용성을 높여 코드 중복제거에 크게 기여합니다.
-
다형성
형태가 같은데 다른 기능을 하는 것이 다형성입니다.
부모 클래스로부터 상속을 받은 속성을 자식 클래스는 재정의 할 수 있습니다. 이를 오버라이딩이라고도 합니다. 이를 통해 속성을 사용하기 위한 인터페이스를 유지하고 불필요한 메서드 생성을 방지합니다.
'IDE & Framework' 카테고리의 다른 글
[이론] 프로토콜 프로그래밍이란? (0) | 2021.03.07 |
---|---|
[이론] 함수형 프로그래밍이란? (0) | 2021.03.07 |