객체지향 프로그래밍 (OOP)

Ginie·2021년 8월 26일
0

프로그래밍 기초

목록 보기
10/11

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

컴퓨터 프로그래밍의 패러다임중 하나로 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 단위 즉 "객체"들의 모임으로 파악하고자 하는 것.
각각의 객체는 메세지를 주고받고 데이터를 처리할 수 있다.
프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하여 보다 직관적인 분석을 가능하게 하는 장점을 가지고 있다.

구성요소

  • 클래스(Class)

    • 같은 종류의 객체들의 집합에 공통 속성(Attribute)과 행위(Behavior)를 정의함.
    • 객체지향 프로그램의 기본적인 사용자 정의 데이터형(User Define Data Type).
  • 객체(Object)

    • 클래스 인스턴스(실제로 메모리상에 할당된 것).
    • 자신의 고유 데이터(Attribute)를 가지며 클래스에서 정의한 행위(Behavior)를 수행.
  • 속성(Attribute)

    • 객체의 데이터.
  • 메세지(Message)

    • 객체간의 통신.

특징

  • 캡슐화(Encapsulation)

    • 속성(데이터)과 메소드(연산)을 하나로 묶어서 객체로 구성.
    • Readability 향상 (유지보수 용이).
    • 재사용성이 높은 S/W 개발이 가능.
    • 정보은닉으로 내부자료의 일관성이 유지.
    • 객체간 인터페이스를 이용, 종속화를 최소화.
  • 추상화(Abstraction)

    • 공통 성질을 추출하여 슈퍼클래스로 구성.
    • 객체중심의 안정된 모델을 구축.
    • 현실 세계를 자연스럽게 표현.
    • 분석의 초첨이 명확해짐.
  • 다형성(Polymorphism)

    • 동일한 이름의 여러 오퍼레이션(메소드)을 다른 사양으로 정의 가능.
    • 오버로딩 : 매개변수의 수 또는 타입을 달리하여 구문.
    • 오버라이딩 : 부모클래스의 메소드를 재정의.
  • 정보은닉(Information Hiding)

    • 캡슐화된 항목을 다른 객체로부터 숨김.
    • 메세지 저달에 의해 다른 클래스 내의 메소드가 호출됨.
  • 상속성(Inheritance)

    • 부모클랫의 속성과 메소드를 상속받아 사용.
    • 부모와 자식 클래스 간의 관계가 슈퍼 클래스와 서브 클래스로 유지됨.
    • 부모 클래스는 추상적이며, 자식 클래스는 구체직 성질을 가짐.
profile
느리지만 꾸준한 프론트엔드 주니어 개발자 🐢

0개의 댓글