객체 지향 프로그래밍 (OOP : Object Oriented Programming) 개념 및 활용

· 유창연 · 4 min read

객체 지향 프로그래밍(OOP)의 핵심 개념인 추상화, 캡슐화, 상속, 다형성, 동적 바인딩을 예시와 함께 알아봅니다.

객체 지향 프로그래밍이란?

  1. 컴퓨터 프로그램을 하나의 ‘객체’들의 모임으로 파악하고자 하는 패러다임.

  2. 각 객체들은 서로 메세지를 주고 받을 수 있으며 데이터를 처리할 수 있다.

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

  1. 프로그램 유지,보수에 유리하다.

  2. 직관적인 코드 분석이 가능하다.

  3. 강한 응집력, 약한 결합력

응집력 : 프로그램의 한 요소가 해당 기능을 수행하기 위해 얼마만큼의 연관된 책임과 아이디어가 뭉쳐있는지를 나타내는 정도. 프로그램의 한 요소가 특정 목적을 위해 밀접하게 연관된 기능들이 모여서 구현되어 있고, 지나치게 많은 일을 하지 않으면 그것을 응집력이 높다고 표현한다.

결합력 : 프로그램 코드의 한 요소가 다른 것과 얼마나 강력하게 연결되어 있는지, 얼마나 의존적인지를 나타내는 정도. 결합력이 낮다는 것은 한 요소가 다른 요소들과 관계를 크게 맺고 있지 않은 상태를 의미한다.

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

추상화

  1. oop에서 클래스는 객체들의 어떤 특징이 있어야 한다고 정의하는 추상화된 개념이다.

캡슐화

  1. 접근제어자와 같은 방법으로 정보 접근을 제어한다.

상속

  1. 부모클래스와 자식 클래스가 존재한다.

  2. 코드의 재사용에 유리하다.

다형성

  1. 오버라이딩(Overriding): 부모 클래스의 메서드를 자식 클래스에서 재정의하여 다른 기능을 수행하게 한다.

  2. 오버로딩(Overloading): 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의한다.

  3. API가 많아질수록 복잡성은 증가하기 때문에 다형성은 유용하다.

동적 바인딩

  1. 실행 시간 중에 일어나거나 실행 과정에서 변경될 수 있는 바인딩으로 컴파일 시간에 완료되어 변화하지 않는 정적 바인딩과 대비되는 개념이다.

  2. 동적 바인딩은 프로그램의 한 개체나 기호를 실행 과정에 여러 속성이나 연산에 바인딩함으로써 다형 개념을 실현한다.

<참고자료>

https://velog.io/@cyranocoding/

https://victorydntmd.tistory.com/117

https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

공유:

댓글

Back to Blog

관련 게시글

View All Posts »
Maven 이란?

Maven 이란?

자바 프로젝트 관리 도구 Maven의 개념과 빌드 라이프사이클, POM 설정 방법을 알아봅니다.