2. 객체지향 4가지 핵심 요소

Yeppi's 개발 일기·2022년 5월 10일
0

객체지향

목록 보기
2/4

1. 캡슐화

객체의 속성을 보호하기 위해서 사용


Method 설계

  • 자신이 가지고 있는 속성에 대해서는 해당 상태를 변경하는 기능을 제공해야 함

  • 실물 객체가 가진 기능을 모두 제공해야 함

  • 각각의 메서드는 서로 관련성이 있어야함 ⇒ 속성의 상대되는 기능을 제공해야 함 ex. 차량의 렌탈이 있다면 반납도!

  • 객체 안의 메서드는 객체 안의 속성을 처리해야 하며, 다른 객체를 전달받아 다른 객체에 정의된 속성을 직접 처리하면 안됨

단, 메서드 실행에 필요한 값들은 객체의 형태가 아닌 매개변수의 형태로 전달되어져야 함

Method 종류

  • Getter / Setter
  • CRUD
  • Business Logic
  • 객체의 생명 주기 처리 → destroy(), disconnect(), quit()
  • 객체의 영구성 관리 → 외부에서 접근 불가능하도록 private로 선언

장점

  1. 객체지향의 패러다임 중 하나인 추상화 제공
  • 실제로 어떻게 동작하는 지는 외부에서 이해할 필요가 없고, 단순 호출만으로 해당 기능을 실행할 수 있음

  • 객체 단위로 프로그램 설계 가능

  1. 재 사용성 향상
  • 한 객체에 관련된 속성 및 메서드는 모두 캡슐화의 형태로 제공

  • 객체의 모듈성과 응집도가 높아짐 ⇒ 재사용성 높아짐

  • 절차적 프로그래밍에서 메서드 재사용 하면? 함수가 참조하고 있는 전역변수 및 내부에서 호출하는 메서드가 미치는 영향을 모두 체크

  • 객체에서 메서드 재사용 하면? 단일 객체에만 영향을 주기에 재사용성 높음

즉, 유지보수의 효율성이 향상


무결성

  • ‘캡슐화 코딩’ : 변수는 private 로 선언, 메서드는 public 으로 선언 ⇒ 무결성을 위해!

  • Getter/Setter 를 제외하고, public method 는 입력된 매개변수를 Validation(검증)한 후에 실행하는 것을 기본으로 함

  • Validation을 통해 객체의 값을 바꾸거나 값의 유효성을 가질 수 있음


2. 상속

하위로 내려갈수록 구체화되는 것


상속의 효과

  1. 프로그램 구조에 대한 이해도 향상

    최상위 클래스의 구조를 보고, 하위 클래스의 동작을 이해할 수 있음

  2. 재사용성 향상

    상속을 이용하여, 해당 클래스에 필요한 속성 및 메서드를 모두 정의하지 않고, 상속을 받아서 사용할 수 있음

  3. 확장성 향상

    일관된 형태의 클래스 객체를 추가할 수 있어, 간단하게 프로그램 확장 가능

  4. 유지보수성 향상

    각 객체마다 자신의 메서드를 정의하고 있다면, 코드 수정에서 많은 작업이 필요하지만, 상속을 사용한 경우 일관된 형태로 작성이 가능


3. 다형성

하나의 개체가 여러 개의 형태로 변화하는 것

  • 오버라이딩을 통해서 사용

4. 추상화

= 모델링

  • 구체적으로 공통적인 부분, 특정 특성을 분리해서 재조합하는 부분
  • 다형성과 상속 모두 추상화에 속함
profile
imaginative and free developer. 백엔드 / UX / DATA / 기획에 관심있지만 고양이는 없는 예비 개발자👋

0개의 댓글