객체지향이란 무엇인가?

이유진·2022년 3월 8일
0

객체 지향 프로그래밍(OOP, Objected Oriented Programming)

1. 객체란?

존재하는 모든 사물 하나하나 모든 것

2. 객체 지향 프로그래밍이란?

프로그램을객체 단위로 나눠 작업하는 방식으로, 객체들의 상호작용을 통해 프로그램을 설계하고 개발하는 것

3. 장단점

장점

  • 코드 재사용 용이 : 상속을 통한 코드의 재사용
  • 생상성 향상 : 독립적인 객체를 사용함으써 개발의 생산성 향상
  • 유지보수 편의성 : 추가 및 수정하더라도, 캡슐화를 통해 영향이 적음
  • 대형 프로젝트에 적합 : 클래스 단위 모듈화시켜, 프로젝트를 개발할때 업무 분담하기 쉽다.

단점

  • 실행 속도 느림
  • 설계시 많은 시간 소요



4. 특징(캡슐화, 추상화, 상속성, 다형성)

캡슐화(encapsulation)

  • 정의 : 데이터와 함수를 하나의 단위로 묶는것
  • 데이터와 코드의 형태를 외부로부터 알 수 없게하고, 데이터 구조와 역할, 가능을 하나의 캡슐형태로 만드는 방법

추상화 (abstraction)

정의 : 객체의 공통적인 특징(속성과 기능)을 추출하여 정의하는 것
-ex) 동물 < 포유류

상속성(inheritance)

  • 정의 : 자식(하위) 클래스가 부모(상위) 클래스의 특성과 기능을 재사용 + 새로운 하위 클래스에 새로운 기능 추가
  • 특징
    - 캡슐화를 유지하면서 오버라이딩(overriding : 상속받은 기능만 수정 후 재정의)작업을 진행하여 클래스의 재사용이 용이
    • 코드 중복 없애기 위함

다형성(polymorphism)

정의 : 하나의 변수, 또는 함수가 상황에 따라 다른 의미로 해석(응답)될 수 있는 것




4. 객체지향 5원칙(SOLID) : 객체지향에서 지켜야 할 원칙 5가지

SRP : 단일 책임 원칙

  • 객체는 오직 하나의 책임만 가진다.
  • 클래스의 목적을 명확하기 위함이다.
  • 하나의 클래스에 한개 이상의 책임을 지닐 경우, 클래스의 목적 모호함 + 유지보수 어려움
    OCP : 개방-폐쇄 원칙
  • 객체는 확장에는 개방적, 수정(변경)에는 폐쇄적이어야 한다.

LSP : 리스코프 치환 원칙

  • 자식 크래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙

ISP : 인터페이스 분리 원칙

  • 클라이언트에서 사용하지 않는 메서드는 사용해선 안 된다.
  • OCP와 유사한 듯하나, 서로 다른 원칙

DIP : 의존성 역전 원칙

  • 추상성이 높고 안정적인 고수준의 클래스는 구체적이고, 불안정한 저수준의 클래스에 의존해서는 안 된다는 원칙

참고 블로그
참고 문서
참고 블로그

profile
차근차근 배워나가는 주니어 개발자

0개의 댓글