OOP (Object-oriented programming)
현실 세계의 사물 하나를 객체 하나라고 보고 해당 객체를 기반으로 속성들과 행위들을 작성하여 프로그램밍 하는 것
테이터 형식에 대한 정의 및 객체의 주어진 유형
클래스의 인스턴스
상위 클래스의 특징을 이어받아 하위 클래스의 특징을 재정의할 수 있는 것
상위클래스나 다른 하위클래스와 독립적으로 행동할 수 있는 것
캡슐화 : 외부 코드가 객체의 내부 작동과 관련되는 것을 방지하는 것
추상화 : 데이터 오용을 방지하기 위해 의미적으로 관련된 기능에만 데이터를 표시하는 것
- 작성된 코드를 상속을 통해 재사용할 수 있다.
- 상속으로 데이터 중복성을 줄일 수 있다.
- 유지 보수가 덜 필요하고 더 안전하다.
- 초기에 OOP 구조를 이해하는 데 시간이 필요하다.
- 코드 작성이 길어지고 프로그램의 크기가 크다.
- 다른 프로그래밍 언어보다 느리다.
- 모든 문제에 적합하지는 않다.