본문 바로가기
카테고리 없음

[CS] 객체 지향 프로그래밍 간단히

by hbIncoding 2023. 10. 27.

1. 객체지향 이란?

  • 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 객체들간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
  • 장점
    • 코드 재사용 용이
    • 유지보수의 우수성
    • 대형 프로젝트 적합
  • 단점
    • 개발속도가 느림
    • 실행속도 느림
    • 코딩 난이도 상승

2. OOP의 4가지 특징

  • 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐 형태로 만드는 방법
    • 캡슐화방법1) 멤버 변수 앞에 접근 제어자 private를 붙인다.
    • 캡슐화방법2) getter, setter를 만든다.
  • 추상화 : 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현하는 것
    • 컴퓨터라는 클래스를 extends하여 데스크탑과 노트북 클래스를 만드는 것, 반대로 데탑과 노트북을 컴퓨터롤 묶는 것
  • 상속화 : 부모 클래스에 정의된 변수 및 메서드를 자식 클래스에서 상속받아 사용하는 것
  • 다형성 : 다양한 형태로 표현이 가능한 구조를 말한다.
    • 오버라이딩과 오버로딩은 다형화를 지원하는 방법이라고 할 수 있다.

3. OOP의 5가지 원칙

  • 단일 책임 원칙 : 한 클래스는 하나의 책임만 가져야한다.

  • 개방 폐쇄 원칙 : 확장에는 열려있으나, 변경에는 닫혀있어야 한다.

  • 리스코프 치환 원칙 : 프로그램의 객체는 프로그램의 정황성을 깨드리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.

  • 인터페이스 분리 원칙 : 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나 보다 낫다.

  • 의존관계 역전 원칙 : 추상화에 의존한다. 구체화에 의존하면 안된다.

 

 

 

4. 참조

1) OOP : https://xangmin.tistory.com/152