728x90
이 글은 객체지향 소프트웨어 공학 | 최은만 책을 읽고 정리한 글입니다.

 

목차.

  1. 개요
  2. 객체란?
  3. 클래스란?
  4. 정리

 

개요

 

객체지향 프로그래밍은 현실 세계의 개념과 개체를 컴퓨터 프로그래밍으로 모델링하는 한 개발 패러다임입니다.

이 개발 방법론에서 가장 중요한 개념은 "객체"와"클래스"입니다.

이 글에서 객체와 클래스에 대한 기본 개념을 소개하겠습니다.

 

객체란?

 

객체는 프로그램이 실행될 때 존재하는 데이터의 구조화된 덩어리로 생각할 수 있습니다.

이러한 객체는 현실 세계의 실체나 개념을 나타내며, 상태와 행위 두 가지 요소를 가지고 있습니다.

예를 들어 댐을 제어하는 시스템에서 "댐"이라는 객체를 생각해 보겠습니다.

 

  • 객체 : 댐
  • 상태 : 수문이 닫힌 상태, 열린 상태
  • 행위 : 수문을 여는 행위

 

객체의 또 다른 예로는 급여 시스템에서 사원, 대학의 수강 신청 시스템에서 학생, 강좌, 교수, 공장 자동화 시스템에서

조립 라인, 로봇, 조립 부품, 완제품 등이 있을 수 있습니다.

객체지향 프로그램을 개발할 때 중요한 것은 어떤 객체를 만들 것인지를 결정하고,

이들 객체의 구조와 관계, 행위 등을 파악하는 것입니다.

 

클래스란?

 

클래스는 객체지향 프로그래밍에서 데이터를 추상화하는 단위입니다.

클래스는 유사한 객체들을 정의한 프로그램 모듈로, 같은 상태와 행위를 가진 모든 객체는 같은 클래스에 속합니다.

 

클래스의 구성요소

 

  • 속성 : 각 객체에 저장된 자료의 특성과 이름을 정의한 코드. 예를 들어, Employee 클래스에는 이름, 생년월일, 주소, 직위와 같은 속성이 정의될 수 있습니다.
  • 메소드 : 객체의 행위를 구현한 프로시저. Employee 클래스에는 새로운 사원을 추가하거나 사원의 정보를 변경시키는 메소드가 정의될 수 있습니다.

 

Employee 클래스 정의

class Employee {
public:
    void promote(from, to);
    void increase_salary(new_salary);
    // ...
private:
    char* name;
    int dateOfBirth;
    char* address;
    positionType position;
}

 

클래스가 될 조건

 

클래스가 될 수 있는 조건은 다음과 같습니다.

  • 일반적으로 인스턴스를 가질 수 있는 것은 클래스입니다.
  • 일반적으로 정의된 클래스에 속하는 멤버가 될 수 있는 것은 인스턴스입니다.

 

예를 들어, 의사 클래스는 여러 명의 의사 객체를 나타내며, 병원 클래스는 여러 병원 객체를 관리할 수 있습니다.

 

인스턴스

 

"인스턴스"와 "객체"라는 용어는 동일한 개념을 가리킵니다.

인스턴스는 어떤 클래스에 속하는 특정한 사례를 나타내며, 관계를 나타내는 용어입니다.

예를 들어, "Passenger 클래스가 10개의 인스턴스를 가지고 있다"라는 표현은 Passenger 클래스에서 생성된 10개의 특정 객체를 의미합니다.

 

정리

 

지금까지 객체와 클래스가 무엇이고 클래스의 구성요소, 클래스가 될 조건, 인스턴스가 무엇인지에 대해서 알아봤습니다.

객체와 클래스를 잘 활용하면 프로그램 개발 과정에서 모듈화 하고 유지보수하기 쉽게 만들 수 있습니다.

728x90

+ Recent posts