반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Archives
Today
Total
11-07 11:40
관리 메뉴

ImJay

[자바] 객체지향 프로그래밍 - 캡슐화(Encapsulation) 본문

자바/기본 개념

[자바] 객체지향 프로그래밍 - 캡슐화(Encapsulation)

ImJay 2022. 6. 28. 20:25
반응형

객체지향 프로그래밍(OOP-Object Oriented Programming)은 프로그램 내에서 표현하고자 하는 것들을 객체를 사용하여 모델링하는 방법이다.

 

객체(Object)는 우리가 표현하고자 하는 기능을 프로그램 코드와 데이터로 구성된다.

 

캡슐화(encapsulation)는 객체지향 프로그래밍의 특징 중 하나이다.

 

우리가 객체지향에 대한 개념을 잘 모른채로 복잡한 프로그램을 작성했다고 가정해보자.

 

프로그램의 모든 기능들은 하나의 메인 프로그램에 작성되어 있을 것이다.

 

여러 함수와 변수들이 복잡하게 얽혀 있다.

 

그런데 여기서 존재하는 변수 x의 이름을 x1로 변경한다고 해보자.

 

x의 선언으로 돌아가 x의 이름을 x1으로 변경하는 순간, x를 사용하는 여러 수식들과 함수들에서 오류가 발생할 것이다.

 

모든 코드들이 메인 함수에 작성되어 있기 때문에, 우리는 메인 함수 자체를 동작할 수 없게 돼버린다.

 

단순하게 변수명을 수정한다는 개념이면 변수명만 바꿔주면 되겠지만, 만약 형변환과 같이 복잡한 작업을 수행한다고 한다면 고려해야될 부분들이 너무나도 많아지게 되고, 프로그램 자체가 동작하지 않는다는 부담이 커 쉽사리 수정하기가 어려울 것이다.

 

그러나 여기서 캡슐화를 진행하여 변수 x와 관련한 모든 변수와 함수들을 새로운 클래스 X 내에 담는다고 생각해보자.

 

변수 x를 수정해야 되는 상황이 오게되면, 오로지 클래스 X 내에서만 수정을 진행하면 된다. 

 

무언가 수정해야되는 상황이 올 때, 오류의 범위 자체가 작아진다는 것, 그것이 캡슐화의 장점 중 하나이다.

 

만약 클래스 X 내에서 변수 x의 내용을 수정하였는데, 클래스 X 범위 밖에서 오류가 발생했다면

 

그것은 "캡슐화가 깨졌다"라고 표현한다. 제대로 캡슐화가 이루어지지 않은 상태인 것이다.

반응형
Comments