ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체 지향 프로그래밍
    Let's Code/Programming Basics 2021. 2. 15. 21:12

    객체 지향 프로그래밍의 정의

     

    객체 지향 프로그래밍 (Object Oriented Programming)이란 컴퓨터 프로그램을 객체(Object)의 모임으로 정의하는 프로그래밍 패러다임이다. 각 객체들은 속성 (Property)과 행동(Method)를 가지며, 서로 메시지를 주고받을 수 있다.

     

    이에 반해 절차 지향 프로그래밍은 객체가 아닌 함수를 기본 단위로 가지는 프로그래밍 패러다임이다. 데이터와 함수는 엄격하게 구분되며, 함수는 데이터와 독립적으로 존재한다. 이에 비해 객체 지향 프로그래밍에서 객체는 속성(데이터)와 행동(함수)를 모두 가지며, 스스로의 데이터를 통제하고 변형시킬 수 있다.  

     

    객체지향 프로그래밍에서는 객체들이 서로 상호작용하며 메시지를 주고 받는다.

     

     

     

    객체 지향 프로그래밍의 장점

     

    • 변경이 용이해 유지보수가 간편하다: 각 객체들은 결합력이 약해 서로 의존적이지 않다. 따라서 특정 객체를 바꾸고자 할 때 전체 코드를 다시 쓸 필요 없이 관련된 특정 객체만 변경하면 된다. 
    • 강한 응집력으로 직관적으로 이해할 수 있다: 특정 목적을 위해 밀접하게 연관된 기능을 모아 객체로 묶는다. 각 클래스의 이름, 메소드 함수명을 통해 직관적으로 해당 객체의 목적을 소통할 수 있다. 따라서 공동 과제에 적합하다.

     

     

     

     

     

    객체 지향 프로그램의 요소

     

    클래스: 같은 종류의 집단에 속하는 속성과 행위를 정의한 추상적인 집합이다.

     

    객체: 추상적인 클래스가 구체적인 인스턴스로 표현된 것으로, 특정 속성과 메서드를 보유하고 있는 집단이다. 

     

     

    속성: 객체가 공통적으로 보유하고 있는 정적인 특징으로, 예를 들자면 자동차의 바퀴가 있다. (wheel, 가능한 value 값으로 new와 old를 가진다.)

     

    메서드: 객체의 속성을 조작할 수 있는 동적인 행동(함수)로, 예를 들자면 자동차의 바퀴를 가는 행위가 있다. (changeWheel, old wheel을 new wheel로 바꾸는 행위이다.)

     

     

     

     

     

    객체 지향 프로그래밍의 특성

     

    캡슐화: 객체 안에 연관된 데이터와 함수를 압축한 것이다. 객체의 데이터를 외부에서 직접 접근하지 못하게 막거나 (protected 또는 private으로 지정), 특정 메소드를 통해서만 조작 가능하게 할 수 있다.

     

     

    추상화: 불필요한 디테일을 삭제하고, 객체들이 가진 공통의 특성들을 기반으로 이용자들이 편리하게 객체를 이용할 수 있도록 구성한 것이다.

     

     

    재사용성: 객체를 여러 번 만들어야 할 경우, 이미 작성된 하나의 코드에서 변수(parameter)만 바꾸어 다양한 객체를 생성해낼 수 있다.

     

     

     

    상속: 한 객체의 특성을 다른 객체에게 물려 줄 수 있으며, 이 때 두 객체를 동일하게 정의하거나 부속품으로 정의할 수 있다.

     

     

    댓글