객체 지향 프로그래밍

Intro

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

객체 지향 프로그래밍이란

객체 지향 프로그래밍이란 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 모임으로 파악하고자 하는 것이다.

각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.

또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있다. 1

구성 요소

클래스 - 같은 종류의 집단에 속하는 속성과 행위를 정의한 것으로 객체지향 프로그램의 기본적인 사용자 정의 데이터형 이라고 할 수 있다.

객체 - 프로그램이 실행되는 동안 실존하는 클래스의 인스턴스이다. 객체는 자신의 고유 속성을 가지며 클래스에서 정의한 행위를 수행할 수 있다. 객체의 행위는 클래스에 정의된 행위에 대한 정의를 공유함으로써 메모리를 경제적으로 사용한다.

메서드, 메시지 - 클래스로 부터 생성된 객체를 사용하는 방법으로 객체에 명령을 내리는 메시지라 할 수 있다. 메서드는 한 객체의 서브루틴 형태로 객체의 속성을 조작하는데 사용되며, 객체간 통신은 메시지를 통해 이루어진다.

특징

추상화 - 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 공통의 속성이나 기능을 묶어 이름을 붙이는 것이다.

캡슐화 - 객체의 구성 요소들을 캡슐로 보호하여 볼 수 없게 하는 것으로, 객체의 가장 본질적인 특징이다. 내부 구현을 감춰 모듈의 응집도를 높이며, 노출을 최소화하여 모듈간 결합도를 떨어뜨린다.

상속성 - 상속은 부모클래스의 특성과 기능을 자식클래스가 물려받는 것을 의미한다. 기능의 일부분을 변경해야 할 경우 자식클래스에서 상속받은 기능만을 수정하여 다시 재정의 하게 되는데, 이를 ‘오버라이딩(Overriding)’이라 한다. 상속은 캡슐화를 유지하면서 클래스의 재사용을 용이하게 한다.

다형성 - 다형성 개념이란 어떤 한 요소에 여러 개념을 넣어 놓는 것으로 일반적으로 오버라이딩(같은 이름의 메소드가 여러 클래스에서 다른 기능을 하는 것)이나 오버로딩(같은 이름의 메소드가 인자의 갯수나 자료형에 따라서 다른 기능을 하는 것)을 의미한다. 다형 개념을 통해서 프로그램 안의 객체 간의 관계를 조직적으로 나타낼 수 있다.

동적 바인딩 - 동적 바인딩은 실행 시간 중에 일어나거나 실행 과정에서 변경될 수 있는 바인딩으로 컴파일 시간에 완료되어 변화하지 않는 정적 바인딩과 대비되는 개념이다. 동적 바인딩은 프로그램의 한 개체나 기호를 실행 과정에 여러 속성이나 연산에 바인딩함으로써 다형 개념을 실현한다.

참고 자료

태그: ,

카테고리:

업데이트:

댓글남기기