Object Oriented Programming(OOP Basic Concepts)
Encapsulation (캡슐화)
- 데이터(속성)와 기능(메소드)을 하나의 단위로 객체 안에 넣어서 묶는 것
- 은닉(hiding): 구현은 숨기고, 동작은 노출시킴
- 은닉화 : 내부 데이터나 내부 구현이 외부로 노출되지 않도록 만드는 것
- 느슨한 결합(Loose Coupling)에 유리 : 언제든 구현을 수정할 수 있음
- 데이터(속성)와 기능(메소드)들이 느슨하게 결합되는 것
- 코드가 복잡하지 않게 만들고, 재사용성을 높임
Inheritance (상속)
- 상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것
- 먼저 구현했던 클래스의 속성과 메소드를 다시 구현하면 비효율적이기 때문에 속성과 메소드를 부모 요소로부터 상속받아 재사용한다
- 불필요한 코드를 줄여 재사용성을 높임
Abstraction (추상화)
- 클래스를 사용하는 사람이 필요하지 않은 메서드 등을 노출시키지 않는다 ex)전화기
- 단순한 이름으로 정의하는 것에 포커스가 맞춰져 있다
- 클래스 정의 시, 메서드와 속성만 정의한 것을 인터페이스라고 부른다
- 단순화된 사용으로 변화에 대한 영향을 최소화
Polymorphism (다형성)
- 하나의 타입에 여러 객체의 특성에 맞게 대입할 수 있는 성질