객체 지향 프로그래밍(OOP)

dice0314·2023년 5월 11일
0

객체지향 프로그래밍

👉 소프트웨어를 설계하고 구현하는 프로그래밍 패러다임 중 하나로 현실 세계의 개념과 구조를 컴퓨터 프로그램에 반영하여 문제를 해결하는 방법

객체지향 프로그래밍의 장점

  1. 가독성
  2. 재사용성
  3. 유지보수성

객체지향

  1. 객체
  2. 클래스와 인스턴스

객체지향 프로그래밍의 주요 개념

1. 캡슐화

객체의 데이터와 메서드를 하나로 묶어 외부에서의 직접적인 접근을 제한하는 것

  • 데이터의 은닉화
    객체 내부의 데이터를 외부로부터 숨기고 접근 제어를 통해 보호할 수 있다.
    코드 유지보수성 향상: 객체의 내부 구현을 변경해도 외부에 영향을 주지 않는다.
  • 재사용성
    객체를 다른 곳에 쉽게 적용할 수 있다.
  • 에러의 최소화
    잘못된 사용을 방지하고 에러를 최소화 한다.

2. 추상화

복잡한 시스템이나 개념을 단순화하고 중요한 특징을 강조하는 것

  • 복잡성 감소
    복잡한 시스템이나 개념을 단순화하여 이해하기 쉽게 한다.
  • 핵심 강조
    중요한 특징과 동작을 강조하여 가독성을 높이고 핵심 개념을 명확히 전달한다.
  • 재사용성
    추상화된 개념이 모듈화되어 있어 쉽게 재사용이 가능하다.
  • 유지보수성 향상
    구체적인 구현 세부사항을 추상화하여 변경 시 다른 부분에 영향을 덜 주고 유연성을 제공한다.

3. 상속

이미 존재하는 클래스의 특징과 동작을 다른 클래스가 상속받아 사용할 수 있는 것

  • 재사용성
    상위 클래스의 코드를 재사용하여 중복을 피하여 개발 시간을 단축 가능하다.
  • 계층 구조 형성
    클래스들 간에 계층 구조를 형성하여 코드의 구조를 명확히 하고 관리하기 쉽게 만든다.
  • 다형성 구현
    상속을 통해 다형성을 구현하여 동일한 인터페이스를 사용하면서 다양한 객체의 처리가 가능하다.
  • 유지보수성 향상
    계층구조를 형성하고 있어 코드 수정이 필요한 경우 해당 클래스만 변경하면 되어 유지보수가 쉽다.

4. 다형성

동일한 인터페이스를 사용하여 다양한 객체를 처리할 수 있는 것

오버라이딩
하위 클래스에서 상위 클래스의 메서드를 재정의할 수 있다. 동일한 메서드 이름을 사용하면서 다양한 동작을 구현할 수 있다.
업캐스팅
하위 클래스의 객체를 상위 클래스의 타입으로 처리할 수 있다.
상위 클래스의 인터페이스에 맞게 다양한 하위 클래스 객체를 사용할 수 있다.
동적 바인딩
실행 시간에 객체의 실제 타입에 따라 메서드 호출이 결정된다.
객체의 타입에 따라 적절한 메서드가 호출된다.

profile
정리노트

0개의 댓글