- 목차
- **OOP(Object Oriented Programming)**는 현실 세계의 사물 및 개념들을 객체의 관점으로 보고 그 객체들을 조립하여 프로그래밍 하는 기법
- 절차 지향적 프로그래밍(C언어)의 코드의 재 사용성과 중복 제거를 목적으로 만들어진 기법
절차 지향 프로그래밍
- 실행하고자 하는 절차를 정하고, 그 절차대로 프로그래밍
- 목적을 달성하기 위한 일의 흐름에 중점을 둔다.
객체 지향 프로그래밍
- 현실 세계의 사물 및 개념들을 객체의 관점으로 보고 표현하여 프로그래밍
- 객체 지향을 사용하여 변경에 유연하고 재사용성과 확장성이 높은 개발을 할 수 있다.
- **높은 응집력(High Cohesion)**과 **약한 결합력(Loose Coupling)**을 가진다. (변경에 유연하다)
- 객체들의 관계를 결정하고 이들의 상호 작용에 필요한 함수(메서드)와 변수(필드)를 설계 및 구현
- 하나의 클래스를 바탕으로 서로 다른 상태를 가진 인스턴스를 만들면 서로 다른 행동을 하게 됨
- 즉, 하나의 클래스가 여러 개의 인스턴스가 될 수 있다 - 재사용 성
객체지향(OOP)의 특징
1. 추상화
- 필요한 객체 관련 속성들 만 정의하고 불필요한 세부 정보는 숨기는 설계 기법
- JAVA의 경우 추상 클래스(Abstract Class)와 인터페이스(Interface)를 사용하여 구현된다.
2. 캡슐화
- 외부에 노출할 필요가 없는 정보들은 은닉하고 필요한 정보만 보여주게 설계 (정보 은닉)