객체 지향 프로그래밍(OOP) 요약 정리

|
객체 지향 프로그래밍

OOP 란?

OOP는 객체 지향 프로그래밍(Object-Oriented Programming)의 약자입니다.


객체 지향 프로그램을 객체들의 집합으로 구성하고, 이 객체들이 서로 메시지를 전달하여
동작하는 방식을 중점으로 둔 개념입니다.

여기서 꼭 등장하는 용어가 클래스와 함수인데요,
함수가 클래스 안에 들어가면 메서드라고 불리게 되는 점 유의하셔야 합니다.
함수로서의 기능은 같지만 범위(스코프라고 합니다) 의 차이가 다르다. 라는 것을 이해하시면 좋습니다.

OOP 원칙

  • 캡슐화(Encapsulation): 객체의 상태와 동작을 하나의 단위로 묶는 것을 말합니다. 이를 통해 객체의 내부 구조를 외부로부터 숨기고, 오직 정해진 방법을 통해서만 접근이 가능하게 합니다.
  • 상속(Inheritance): 한 클래스의 특성을 다른 클래스가 물려받는 것입니다. 이를 통해 코드의 재사용성을 높이고, 계층 구조를 구성할 수 있습니다.
  • 다형성(Polymorphism): 하나의 인터페이스나 메소드가 다양한 형태로 동작하는 것을 말합니다. 예를 들어, 같은 메소드 이름을 가지면서도 다른 기능을 수행할 수 있게 하는 것입니다.
  • 추상화(Abstraction): 복잡한 시스템을 간단한 개념으로 표현하는 것입니다. 이를 통해 사용자는 복잡한 내부 동작을 몰라도 해당 기능을 사용할 수 있게 됩니다.

객체지향 프로그래밍

OOP 설명

자주 말하는 것이 붕어빵 틀인데요,
클래스가 객체지향의 꽃이죠. 붕어빵 틀 역할을 하고 있습니다.

저 흉측한 괴물의 행동과 속성이 클래스로 표현될 수 있을거에요.

특징은 다음과 같습니다.

  • 자료 추상화 : 불필요한 정보는 숨기고 중요한 정보만을 표시하여 프로그램을 간단히 만듭니다.
  • 캡슐화 : 객체(Class) 가 어떤 방식으로 도는지 감추는 것을 말합니다. 한 예로 자판기가 있습니다.
  • 상속 : 특정 클래스가 가진 속성과 동작을 다른 클래스에서 사용할 수 있습니다.
  • 다형성 : 함수는 상황에 따라 다르게 동작합니다.

다형성

  • 오버로딩 : 함수의 이름은 같지만 매개변수를 다르게 하여 호출한 뒤 사용합니다.
  • 오버라이딩 : 함수의 동작을 재정의합니다. 자식 클래스가 부모 클래스에서 상속받은 함수의 형태를
    그대로 유지하며, 함수 동작을 재정의 하여 사용합니다.

절차적 프로그래밍

절차적(Procedural) 프로그래밍은
C, 파스칼, 포트란 등이 있으며
프로시저(Procedure) 를 이용하여 개발을 진행합니다.

함수(Function) 가 적절한 예가 되겠군요

  • 순차적 실행 : 위에서 아래로 시작부터 끝까지 순차적으로 실행됩니다.
  • 함수 or 프로시저 : 공통적으로 사용되는 블록을 함수 or 프로시저로 정의한 뒤 필요 시 호출합니다.
  • 상태 공유 : 전역 변수나 데이터 구조를 사용하여 프로그램의 다른 부분들과 상태를 공유합니다.

프로시저와 함수의 차이

  • 프로시저: 특정 동작을 수행하도록 설계되었지만, 특정 값을 반환하지는 않습니다.
  • 함수: 일정한 계산을 수행하고 그 결과 값을 반환합니다.

가장 큰 차이는 반환 값이 존재하느냐를 이야기할 수 있습니다.
그러나 언어에 따라 반환값이 존재할 수 있기도 하기에 비슷한 녀석이다. 로 이해하고 있습니다.

참조

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다