일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 모두의연구소
- Tag #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 오존석의 생존코딩
- 오준석의 생존코딩
- 패스트 캠퍼스
- 오름캠프
- 모두의 연구소 # 오준석의생존코딩# 오름캠프
- 생존코딩
- 오름캠프플러터
- 모두의연구소 오준석생존코딩 오름캠프
- 모두연구소
- ㅇ
- 오준석의생존코딩
- 플러터
- Today
- Total
꾸준히 하고싶은 개발자
캡슐화란? 본문
캡슐화란?
캡슐화는 객체지향 프로그래밍의 중요한 개념 중 하나로, 객체 내부의 데이터와 그 데이터를 조작하는 메서드(함수) 를 하나로 묶는 것을 의미한다. 이는 객체와 상태와 행위를 하나로 묶어서 캡슐화된 객체라고한다.
1. 정보 은닉 Encapsulation : 객체 내부의 상태에 대한 직접적인 접근을 제한함으로써 정보 은닉을 가능 하게 된다.
객체의 내부 구현세부 사항을 숨기고 외부에서는 객체가 제공하는 인터페이스를 통해서 만 접근 할 수있다.
-> 이는 객체의 내부 구현이 변경되더라도 외부에 영향을 최소화 할 수있도록 돕는다.
2. 모듈화 Modularity : 캡슐화된 객체는 독립적으로 존재하고 다른 객체와 상호작용은 객체간 인터페이스를 통해서 만 이루어진다.
이는 시스템을 작은 모듈들로 분할하여 개발 및 유지보수를 용이 하게 한다.
3. 재사용성(Reusability) 캡슐화는 코드의 재사용성을 높인다. 한 객체의 인터페이스가 다른 객체에게 재사용 될 수있으며 객체를 사용하는 클라이언트 코드는 객체의 내부 구현에 대해 알 필요가없다.
4. 안정성(Security): 정보 은닉을 통해 외부에서 객체의 상태를 직접 변경할 수 없도록하여 안정성을 향상 시킵니다.
이는 객체의 상태를 부적절하게 변경하여 시스템의 무결성을 훼손하는 것을 방지한다.
- 예시: 자동차 객체
- 속성(상태): 자동차의 속도, 연료량, 엔진 상태 등
- 메서드(동작): 가속, 감속, 시동 걸기, 시동 끄기 등
- 가령, 자동차를 객체로 모델링한다고 가정해봅시다. 이 자동차 객체에는 여러 가지 속성(상태)과 메서드(동작)가 있을 것입니다. 캡슐화를 통해 이러한 속성과 메서드를 하나로 묶을 수 있습니다.
- 예시: 은행 계좌 객체
- 속성(상태): 계좌 잔액, 소유자 이름, 계좌 번호 등
- 메서드(동작): 입금, 출금, 잔액 조회 등
- 또 다른 예시로 은행 계좌를 객체로 모델링해봅시다. 은행 계좌 객체에는 잔액, 소유자 정보, 입금, 출금 등의 속성과 메서드가 있을 것입니다.
캡슐화는 이러한 객체의 내부 상태와 동작을 외부로부터 보호하고, 객체의 인터페이스를 통해서만 상호작용할 수 있도록 함으로써 시스템의 안정성과 유지보수성을 향상시킵니다. 객체지향 프로그래밍에서는 이러한 캡슐화를 통해 모듈화된, 재사용 가능한 객체들을 구성하여 복잡한 시스템을 구축하는 데 사용됩니다.