객체지향 프로그래밍
* 여러 객체를 모아 완성된 프로그램을 만드는 기법
- 멤버(member) : 객체가 가진 속성(멤버 변수)과 기능(메서드)
- 속성(property) : 멤버변수, 특성, 필드, 상태
- 기능(function) : 메서드, 함수, 행위
구성요소
1. 클래스 : 같은 종류의 집단에 속한 속성과 행동을 정의한 틀
2. 객체(Object) : 물리적, 개념적으로 존재하는 것 중 다른 것과 식별 가능한 것
(클래스의 인스턴스)
- 필드(field) : 객체의 속성 ex) 사람 객체가 있다면 이름 나이등의 속성
- 메서드(method) : 객체의 동작 ex) 사람 객체가 있다면 달린다, 자다 등의 동작
- 인스턴스 : 객체가 메모리에 할당되어 실제 사용될 때(클래스로부터 생선된 객체)
- 인스턴스화 : 클래스로부터 객체를 만드는 과정
3. 캡슐화 : 데이터와 행동을 하나의 단위로 묶는 기법
- 외부의 잘못 된 사용으로 객체가 손상되지 않도록 접근 제한자를 통해 외부 객체는 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.(노출 데이터 public, 숨김 데이터 private)
- 클래스의 변수에 접근할 수 있는 public 접근제한자로 선언한 Getter(), Setter()메서드 제공
- Getter() : 변수값을 가져올 수 있는 메서드
- Setter() : 변수에 값을 저장할 수 있는 메서드
4. 상속 : 이미 존재하는 한 클래스의 변수, 메서드를 다른 클래스에 물려주는 기법
5. 다형성 : 변수, 메서드 또는 객체가 여러 형태를 취하는 기법
6. 추상화 : 불필요한 내부 세부 사항을 숨기고 필수 사항을 표시하는 것.