객체지향
- 현실세계를 그대로 모형화
- 소프트웨어 개발시, 객체들을 조립해 작성가능
- 소프트웨어의 재사용성, 확장성, 유지보수 GOOD
주요 요소
- 객체 : 데이터 + 데이터처리 함수를 캡슐화한 모듈
- 클래스 : 공통된 속성과 연산을 갖는 객체의 집합
주요 개념
캡슐화 Encapsulation
- 데이터와 데이터를 처리하는 함수를 하나로 묶은 것
- 캡슐화된 객체의 세부 내용이 은폐되어 변경이 발생해도 오류발생가능성 적음
- 재사용성 높음
- 인터페이스가 단순해지고 객체 간 결합도 낮음
상속 Inheritance
- 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려 받는 것
- 재사용성 높음
다형성 Polymorphism
- 하나의 클래스/메서드가 다양한 방식으로 동작 가능 (모양이 달라도 된다== 다형성)
- 오버라이딩 : 상속시 재정의
- 오버로딩 : 메소드명이 같고, 파라미터가 다르면 다른 함수로 동작함. 현재 코드를 변경하지 않고 새로운 클래스를 쉽게 추가할 수 있음.