OOP

object-oriented programming 의 반대는 절차 지향 프로그래밍

B) Object-oriented Programming 장점

  • 코드 재사용이 용이
    • 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있음.
  • 쉬운 유지보수
    • 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면, object-oriented programming 에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 method 로 있기 때문에 해당 부분만 수정하면 된다.
  • 대형 프로젝트에 적합
    • 클래스단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러 명, 여러 회사에서 개발이 필요할 시 업무 분담하기 쉽다.

C) Object-oriented Programming 단점

  • 처리속도가 상대적으로 느림
  • 객체가 많으면 용량이 커질 수 있음
  • 설계시 많은 시간과 노력이 필요

D) Object-oriented Programming 의 키워드 5 가지

(주로 (1) 을 제외하면 4 가지)

  1. 클래스와 객체

    • 클래스: 문제해결을 위한 데이터의 속성(attribute) 과 행위(behavior) 를 변수메서드로 정의한 것
    • 객체: 클래스를 통해 실제 메모리상에 할당된 데이터
  2. 추상화: 객체의 공통된 속성과 행위를 추출하는 과정

    1. 예) 토끼, 강아지, 고양이는 동물이라는 공통된 정보로 추상화
  3. 캡슐화

    • 객체의 상세한 내용은 객체 외부로부터 숨기고 제한된 데이터와 메소드만을 노출시켜 객체와 상호작용 할 수 있도록 하는 것
    • 키워드: 정보 은닉, 접근 제한자 (public, private)
  4. 다형성

    • 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것
    • 즉, 오버라이딩 (overriding), 오버로딩 (overloading) 이 가능하다는 얘기
  5. 상속

    • 클래스를 재사용 하는것
    • 상위 클래스를 하위 클래스에서 상속 받게 되면 상위 클래스의 멤버변수나 메소드를 그대로 물려 받을 수 있다.
    • 상속이 있기 때문에 코드를 재활용할 수 있고 그렇기 때문에 생산성이 높고 유지보수 하기가 좋다.

E) Related

F) References