반응형

객체지향 개요

절차지향 프로그래밍

  • 객제지향 언어 개념이 나오면서 기존 프로그래밍 방식을 표현하기 위해서 사용
  • 큰 틀은 일련의 동작(모듈, 함수)를 순서에 맞게 단계적으로 실행
  • 데이터와 속성보다는 명령어의 순서와 흐름에 포커싱
  • 소프트웨어 규모가 커짐과 동시에 기능들이 복잡해지면서 추가 개발이나 유지보수의 어려움과 한계를 느낌
  • 절차적 프로그래밍 / 구조적 프로그래밍

 

객체지향 프로그래밍

  • 클래스를 생성하고 클래스로부터 객체를 만들어 객체 간의 상호작용을 이용하여 주어진 문제를 해결하는 프로그래밍 방식
  • 데이터인 필드와 절차인 메소드를 하나로 묶은 클래스 단위의 프로그램
  • 현실 시계를 객체 단위로 프로그래밍하여, 객체는 필드(데이터)와 메서드(코드)를 하나의 블록으로 묶어서 표현

 

객체지향 프로그래밍 언어

  • 원조는 시뮬라(simula)라는 프로그램 언어
  • 1960년에 조한 달과 크리스틴이 시뮬라67 발표
  • 클래스라는 개념을 처음으로 도입

 

 

객체의 구성

객체

  • 현실 세계의 사물이나 개념을 시스템에서 이용하기 위해 현실 세계를 자연스럽게 표현하여 손쉽게 이용할 수 있도록 만든 소프트웨어 모델

 

객체 = 속성 (attributes, properties) + 행동 (messages, behaviors)

 

속성

  • 객체의 특성을 표현하는 정적인 성질
  • 프로그래밍에서 속성은 필드(field)라 함
  • 객체를 구별시키는 특성 (외모, 상태 등)

 

행동

  • 객체 내부의 일을 처리하거나 객체들 간의 영향을 주고받는 동적인 일을 처리하는 단위
  • 행동은 메소드(method)라 함
  • 동작을 기술

 

 

객체와 클래스

클래스

  • 객체를 만들기 위한 모형이자 틀(template)
  • 객체를 만들기 위해서는 반드시 객체의 다양한 특성을 표현할 수 있는 모형인 클래스가 필요

객체

  • 클래스와 구체적인 하나의 실체(instance)
  • 객체와 클래스의 예 (붕어빵 틀과 붕어빵, 설계도와 실물 집)

 

반응형

+ Recent posts