객체지향

윤이령·2026년 4월 20일

프로그래밍 패러다임

  • 프로그램을 어떤 절차와 구조로 만들 것인지에 대한 스타일이나 접근 방법을 나타냄
  • 방식이 다른것

비구조적 프로그래밍

  • 코드를 구조화하지 않고 작성하는 방법
  • goto문으로 흐름 이동
  • 어셈블리어, 초창기 포트란

절차적 프로그래밍

  • 소스코드를 여러 부분으로 나눠 프로시저(함수)를 이용해 구조화, 모듈화 하여 재사용 가능.
  • C, 코볼, 포트란
  • 하향식
  • 한계
    • 프로시저가 가진 논리적 다창 구조를 프로그래밍 내부에서 표현하는데 한계가 있음
    • 불필요한 프로시저를 호출하거나 전역 변수를 수정할 수있어 프로그램 동장에 치명적 영향을 줄 수 있음

객체지향 프로그래밍

  • 객체라는 논리적 단위를 먼저 정의하고 조합해 프로그램을 만드는 상향식 방법.
  • 데이터(속성)와 함수(기능)를 가진 객체 중심
  • C++, Java Python
  • 상향식 : 레고 블록처럼 쌓아 올림
  • has-a 관계: 포함관계
  • is-a 관계: 계층관계 / 상속
  • 특징
    • 추상화 : 불필요한 요소는 배제하고 공통된 특징만 추출하는 것
    • 캡슐화 : 복잡한 내부 기능을 묶어 외부에서 불필요한 정보를 감추는 것. 외부에는 필요한 함수만 노출
    • 상속성 : 부모 객체의 특성을 이어받아 새로운 특성을 추가하는 것. 계층 관계를 코드로 표현
    • 다형성 : 상속 관계의 객체에서 같은 기능(함수)이 다르게 동작하는 특성. 하위 객체가 상위 객체를 대신 가능

0개의 댓글