티스토리 뷰

CS

객체지향

beubeu95 2024. 1. 28. 18:08

객체지향이란

  • 현실세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 기계적인 부품들을 조립하여 제품 만들듯이 소프트웨어를 개발하는 기법
  • 구성요소와 개념
    • 객체
    • 클래스
    • 캡슐화
    • 상속
    • 다형성
    • 연관성

1) 객체

  • 데이터와 함수를 묶어놓은(캡술화한) 하나의 소프트웨어 모듈
  • 특징
    • 독립적으로 식별 가능한 이름 가지고 있다.
    • 조건에는 상태가 있으며, 시간에 따란 변한다.
    • 객체간에는 상호연관성에 의한 관계가 형성된다.
    • 객체가 반응할 수 있는 메시지의 집합을 행위라 한다.
    • 일정한 기억장소를 가지고 있다.
    • 객체의 메소드는 다른 객체로부터 메시지를 받았을 때 기능을 수행한다.

2) 클래스

  • 공통된 속성과 연산을 갖는 객체의 집합
  • 데이터를 추상화하는 단위
  • 클래스에 속한 각각의 객체를 인스턴스라고 하며, 새로운 객체를 생성하는 것을 인스턴스화라고 한다.

3) 캡슐화

  • 데이터(속성)과 데이터를 처리하는 함수를 하나로 묶는 것
  • 인터페이스를 제외한 세부 내용이 은폐되어 외부에서 접근 제한적
  • 재사용 용이 / 인터페이스 단순 / 객체 간의 결합도 낮아짐

4) 상속

  • 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
  • 그 외에 새로운 속성과 연산을 첨가하여 사용할 수 있다.

5) 다형성

  • 여러가지 형태를 가지고 있다는 의미로 하나의 메시지에 대해 여러가지 형태의 응답이 있다는 것을 의미

6) 연관성

종류 의미 특징
is member of 연관화 2개 이상 객체 상호연관
is instance of 분류화 동일 특성 객체들 모아 구성
is part of 집단화 관련 객체들 모아 상위 객체 구성
is a 일반화 / 상세화 추상화/ 구체화 → 상위/하위 객체

'CS' 카테고리의 다른 글

아키텍처 패턴  (0) 2024.01.28
소프트웨어 아키텍처  (0) 2024.01.28
스크럼 기법  (0) 2024.01.26
소프트웨어 생명주기  (0) 2024.01.26
Comments
최근에 올라온 글