OOP
object-oriented programming 의 반대는 절차 지향 프로그래밍
B) Object-oriented Programming 장점
- 코드 재사용이 용이
- 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있음.
- 쉬운 유지보수
- 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면, object-oriented programming 에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 method 로 있기 때문에 해당 부분만 수정하면 된다.
- 대형 프로젝트에 적합
- 클래스단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러 명, 여러 회사에서 개발이 필요할 시 업무 분담하기 쉽다.
C) Object-oriented Programming 단점
- 처리속도가 상대적으로 느림
- 객체가 많으면 용량이 커질 수 있음
- 설계시 많은 시간과 노력이 필요
D) Object-oriented Programming 의 키워드 5 가지
(주로 (1) 을 제외하면 4 가지)
-
클래스와 객체
- 클래스: 문제해결을 위한 데이터의 속성(attribute) 과 행위(behavior) 를 변수와 메서드로 정의한 것
- 객체: 클래스를 통해 실제 메모리상에 할당된 데이터
-
추상화: 객체의 공통된 속성과 행위를 추출하는 과정
- 예) 토끼, 강아지, 고양이는 동물이라는 공통된 정보로 추상화
-
캡슐화
- 객체의 상세한 내용은 객체 외부로부터 숨기고 제한된 데이터와 메소드만을 노출시켜 객체와 상호작용 할 수 있도록 하는 것
- 키워드: 정보 은닉, 접근 제한자 (public, private)
-
다형성
- 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것
- 즉, 오버라이딩 (overriding), 오버로딩 (overloading) 이 가능하다는 얘기
-
상속
- 클래스를 재사용 하는것
- 상위 클래스를 하위 클래스에서 상속 받게 되면 상위 클래스의 멤버변수나 메소드를 그대로 물려 받을 수 있다.
- 상속이 있기 때문에 코드를 재활용할 수 있고 그렇기 때문에 생산성이 높고 유지보수 하기가 좋다.