Hello

[정처기 필기] 객체지향 프로그래밍

by 볼빵빵오춘기

객체지향 프로그래밍

컴퓨터 SW를 구조적인 코드 단위로 보는 것이 아니라 Object단위로 구분하고 Object간의 모듬으로 설계하는 것이다.

 

객체지향의 5가지 특징

  • 캡슐화 : 서로 관련성이 높은 데이터와 그와 관련된 기능을 묶는 기법이다.
  • 정보은닉 : 객체 내부의 속성과 메소드를 숨기고 공개된 인터페이스를 통해서만 메세지를 주고 받을 수 있도록 하는 것을 의미한다.
  • 추상화 : 시스템 내의 공통 성질을 추출한 뒤 추상클래스를 설정하는 기법이다.
  • 상속성 : 상위 클래스의 모든 속성, 연산을 하위클래스가 재정의 없이 물려받아 사용하는 것이다.
  • 다형성 : 객체가 다양한 모양을 가지는 성질을 뜻한다.

 

오버로딩 vs 오버라이딩

오버로딩 : 같은 이름의 메소드를 여러 개 정의하면서 매개변수의 유형과 개수가 달라지도록 하는 기술

오버라이딩 : 상속 관계의 두 클래스의 상위 클래스에서 정의한 메소드를 하위 클래스에서 변경(재정의)하는 것

 

객체지향 설계 원칙(SOLID)

  • 단일책임의 원칙(SRP : Single Responsibility Principle)
    모든 클래스는 단일 목적으로 생성되고, 하나의 책임만 가져야 한다.
  • 개방-폐쇄의 원칙(OCP : Open Closed Principle)
    SW 구성 요소는 확장에 대해서는 개방되어야 하나 수정에 대해서는 폐쇄적이어야 한다.
  • 리스코프치환 원칙(LSP : Liskov Substitution Principle)
    부모 클래스가 들어갈 자리에 자식 클래스를 대체하여도 계획대로 작동해야 한다.
  • 인터페이스 분리 원칙(ISP : Interface Segregation Principle)
    • 클라이언트는 자신이 사용하지않는 메소드와 의존 관계를 맺으면 안 된다.
    • 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안 된다.
  • 의존 역전 원칙(DIP : Dependency Inversion Principle)
    의존 관계를 맺으면 변하기 쉽고 변화 빈도가 높은 것보다 변하기 어렵고 변화 빈도가 낮은 것에 의존한다.

 

객체지향의 구성 요소

Class

  • 유사한 객체를 정의한 프로그램이다.
  • 같은 종류의 객체 집합으로 속성+행위를 정의한 것으로 일반적인 Type을 의미한다.
  • 객체지향 프로그램의 기본적인 사용자 정의 데이터형이다.

 

Object

  • 데이터 함수를 묶어 캡슐화한 것이다.
  • 데이터 함수를 묶어 캡슐화하는 대상이 된다.
  • 하나의 SW 모듈이다.
  • Class에 속한 instance를 Object라 한다.

 

Message

  • Object 간에 서로 주고받는 통신을 의미한다.

 

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기