객체지향언어
1. 객체지향언어의 역사
- 초기에는 탑 다운 방식의 순차적 프로그래밍 방식을 사용 -> 코드가 길어질수록 코드 중복 발생, 유지보수가 어려워짐
- GOTO문의 문제를 해결하기 위해 구조적 프로그래밍 방식 채택 -> 데이터 처리 방식(프로시저 실행)만 구조화, 데이터는 구조화 하지 못함
- 대안으로 객체 지향 프로그래밍 등장 -> 객체를 만들고 독립성을 높게 만들면 객체 수정없이 재사용하기 때문에 유지보수가 쉬워짐
2. 객체지향언어
- 객체를 만들고 서로 상호작용하도록 프로그래밍하는 언어
- 잘 알려진 특징으로 캡슐화, 상속, 추상화, 다형성이 있음 (캡상추다)
- 제어자(public, private 등)와 메소드로 코드 보호 <- 캡슐화
- 기존 코드를 참고하고 새로운 것 만 추가 <- 상속, 다형성
- 클래스를 만드는 과정 <- 추상화
- 시뮬라67, 스몰토크, C++, 자바 등 객체지향언어 존재
3. 객체지향프로그래밍개발 단계
- 클래스 설계
- 클래스로 객체를 생성
- 생성된 객체를 이용
4. 잘못된 오해
- 흔히 객체지향과 절차적을 반대의 개념으로 알고 있는데 영어 번역의 오류임
- Procedural Programming, Procedural를 '절차'로 번역하는데, 프로시저(함수)를 뜻함
- 둘다 명령형 프로그래밍의 일종
- '절차지향'이라는 단어는 존재하지 않으므로 잘못된 표현
- 절차적 프로그래밍은 함수 호출을 통해 추상화와 재사용성에 본질을 둠