-
객체지향 프로그래밍 파헤치기) 캡슐화를 알아보자!프로그래밍 언어/Java 2023. 12. 15. 18:06
객체지향 프로그래밍을 사용하는 Java는 4가지 큰 특징이 있습니다.
- 캡슐화
- 상속
- 다형성
- 추상화
위의 4가지는 Java 프로그래밍 개념의 가장 밑단에 있으며 이를 제대로 이해하지 못한다면 Java를 제대로 사용한다고 말할 수 없습니다. 저도 이 개념들을 확실히 이해하고자 이렇게 정리한 내용을 포스팅하려합니다.
이번 포스팅의 주제는 캡슐화입니다.
캡슐화라고 하면 무엇을 상상하시나요?
저는 영양제나 알약 겉부분의 원통형 모양이 가장 먼저 떠오릅니다. 이 캡슐의 용도는 안에 있는 영양제나 약의 성분을 온전히 원하는 곳에 전달하기위해 바깥의 간섭을 막아주는 역할을 합니다.
Java의 캡슐화는 어떨까요?
Java에서 캡슐화란 속성(필드)와 행위(메서드)를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것을 의미합니다.
저는 처음에 이 개념을 보고 잘 이해가 되지 않았습니다.
대체 왜 객체를 외부에서 알 수 없게 감추는 걸까요? 객체는 외부에서 사용할 수도 있는데 굳이 사용할 수 없게 한다면 프로그래밍을 하는 의미가 없지 않을까요?
객체의 정보를 캡슐화로 감추는 이유는 몇가지가 있습니다.
- 객체가 자신의 상태를 스스로 처리하지 않고, 객체 내부 정보를 외부로 노출하게되면 어플리케이션이 굉장히 높은 결합도를 가지게 될 것입니다. (극단적인 예로, a를 b로 바꾼다고 가정할때 a가 쓰여진 모든 코드를 b로 바꿔야하는 것이지요)
- 변경성이 높은 구현을 숨기고 안정적인 부분을 공개함으로써 변경을 최소화 하고 안정성을 높입니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
JVM? JDK? JRE? 개념을 정확히 알아보자 (1) 2024.02.27 Java 언어에 대한 이해 (1) 2024.02.26 JAVA 뽀개기) Collection - List에 대해 자세히 알아보자! (0) 2023.12.13 JAVA 뽀개기) Collection에 대해 쉽게 알아보자! (0) 2023.12.13 JAVA 뽀개기) 얕은 복사? 깊은 복사? (0) 2023.12.13