객체지향 프로그래밍 (Object Oriented Programming; OOP)

객체지향 프로그래밍이란

  • 컴퓨터 프로그래밍 패러다임 중 하나
  • 프로그램을 명령어의 목록으로 보는 시각에서 벗어나, 독립된 단위인 객체의 모임으로 파악
  • 각각의 객체는 메세지를 주고받고, 데이터를 처리

객체지향의 기본 구성 요소

  • 클래스 (Class)
    • 같은 종류의 집단에 속하는 속성과 행위를 정의한 것
    • 클래스는 다른 클래스 또는 외부 요소와 독립적으로 디자인해야 함
  • 객체 (Object)
    • 클래스의 인스턴스로, 실제로 메모리상에 할당된 것
    • 자신 공유의 속성을 가지며, 클래스에 정의된 행위를 수행
  • 메소드 (Method)
    • 클래스로부터 생성된 객체를 사용하는 방법
    • 메소드는 한 객체의 속성을 조작하는 데에 사용

객체 지향의 특징

  • OOP is A.P.I.E
    • Abstraction (추상화): 자료 표현을 추상적으로 나타내는 추상 자료형을 사용한다.
    • Polymorphism (다형성): 오버로딩과 오버라이딩을 하여 하나의 메소드명으로 다양한 동작을 구현할 수 있다.
    • Inheritence (상속): 부모 클래스로부터 속성과 메소드를 상속받아 사용할 수 있다.
    • Encapsulation (캡슐화): 사용자에게 불필요한 정보를 은닉/보호해야 한다.