728x90
OOP, 캡슐화, 상속과 포함, 추상화, 다형성
OOP (Object Oriented Programming)
- OOP
- 객체지향 프로그래밍
- 프로그램 설계방법론이자 개념의 일종이다.
- 기능의 재사용이 가능하도록 설계 및 프로그래밍을 하는것이다.
- 클래스와 인스턴스, 함수, 변수라는 object로 변화시켜서 프로그램을 하는 방법이다.
- 배경
- 프로그래밍 개념의 대부분은 최소비용으로 최대 효율을 얻기 위해서 개발되었다.
- OOP가 나오기 이전에는 최대한 많은 기능을 적은양의 소스코드 파일에 담고 배열과 함수를 계속해서 생성해야했기 때문에 관리하는데에 있어서 비효율적이었다.
- data-driven(데이터기반 의사결정), 컴퓨터하드웨어성능, 데이터양 증가에 따라 OOP활용도 증가하였다.
- OOP를 활용 할 때 특징
- 여러사람과 함께 일관적인 코드맥락을 유지할수있다.
- 오류 발생확률을 줄일수있다.
- 설계와 구현할 소스코드간의 상호이해가 중요하다.
- 기능별로 개체가 효율적으로(재사용 가능하도록) 분리되어야 한다.
- 대부분의 분야에서 OOP의 개념을 적용하여 프로그래밍하지만 항상 활용하지는 않는다.
캡슐화
- 캡슐화
- 내부 속성(변수)과 함수를 하나로 묶어서 클래스로 선언하는 일반적인 개념.
- object 및 소스코드 구현에 대한 상세정보를 분리하는 과정
- 특징
- 캡슐화하지 않고 코드를 작성할 경우에 직접 그 기능에 접근을 해야하는 상황이 된다.
- 캡슐화를 하면 모듈화가 가능해진다
- 기능이 분리되어있으니 디버깅을 하는 경우 편리하고, 소스코드의 목적을 알기 쉬워진다.
728x90
상속과 포함(Inheritance & Composition)
- 상속(Inheritance)
- 상위 클래스의 모든 기능을 재사용할수있다.
- 포함(Composition)
- 다른 클래스의 일부 기능만을 재사용한다.
추상화
- 추상화
- 복잡한 내용에서 핵심적인 개념 및 기능을 요약하는 것을 말한다.
- 기본적으로 추상클래스의 기능은 보여지지 않고 상속받은 클래스의 메소드가 기능이 보여진다.
- 추상클래스를 사용하는 이유
- 클래스 또는 함수가 예상했던 것 이상으로 많이 생성되는 경우 추상클래스를 생성하여 핵심적인 기능만 생성해놓는다.
- 하위클래스의 메소드를 다양하게 생성할수있기 때문이다.
다형성
- 다형성
- 하나의 객체에 여러 가지 타입을 대입할 수 있다는 것을 의미
- OOP에서 다형성은 상속받은 기능 외에 다른 기능을 추가적으로 제공하고자 할 때 사용한다.
- 장점
- 코드의 가독성을 높혀준다
- 코드량을 줄여준다. if/else문을 많이 줄일수있다.
300x250