정보관리기술/소프트웨어공학

객체지향 프로그래밍의 캡슐화 / ①

아이티신비 2024. 1. 7. 08:00

문제9) 객체지향 프로그래밍의 캡슐화(Encapsulation)

 

답)

 

 

1. 정보 은닉을 위한 설계 원리, 객체지향 프로그래밍의 캡슐화의 개요

가. 캡슐화(Encapsulation)의 정의

  • 객체의 속성(Data Fields)과 행위(메소드, Methods)를 하나로 묶고, 실제 구현 내용 일부에 감추어 은닉하는 객체지향의 특성

 

나. 캡슐화의 필요성

접근 방지
  • 외부에서 특정 객체 데이터 및 함수의 직접 접근을 방지 및 변경 방지 통한 유지보수나 확장 시 오류 범위 최소화
독립성 확보
  • 객체내 정보 손상, 오용 방지하고, 데이터 변경 시 다른 객체에 영향 최소화
재사용성 증가
  • 객체 모듈화 통한 새로운 시스템 내 모듈처럼 사용 가능

 

2. 캡슐화의 개념도와 접근제어자

가. 캡슐화의 개념도

 

 

나. 캡슐화의 접근제어자

구분
세부
설명
Class
Default
  • 동일 페키지의 클래스(class)에만 인스턴스(객체)를 생성 가능
Public
  • 다른 패키지에서 인스턴스(객체)를 생성 가능
Method
Private
  • 동일한 클래스 내 접근 가능, this 사용 시 외부 접근 불가, 상속 불가
Default
  • 접근 제어자가 없는 형태로 동일 패키지 내에서만 접근 가능
Protected
  • 동일 패키지 내 사용 가능, 다른 패키지인 경우 상속받은 클래스 접근 가능
Public
  • 모든 객체 접근 가능
  • 자신 내부 모듈 은닉 및 다른 모듈 내부 작업 직접 개입 불가하도록 적절한 접근 제어자 통한 설계 필요

 

3. 캡슐화의 구현 예시