본문 바로가기
Java의 정석/객체지향 프로그래밍 II

캡슐화와 접근 제어자

by Hwanii_ 2023. 6. 6.
728x90

 

1. 주로 멤버에 접근 제어자를 사용하는 이유는 클래스 내부에 선언된 데이터를 보호하기 위함.

 

데이터가 유효한 값을 유지하도록, 또는 비밀번호와 같은 데이터를

외부에서 함부로 변경하지 못하도록 하기 위해서는

외부로부터의 접근을 제한하는 것이 필요 하다.

 

이러한 개념은 객체지향개념의 캡슐화에 해당 된다.

 

2. 다른 이유로는, 해당 클래스 내에서만 사용되는

즉, 내부 작업을 위해 임시로 사용되는 멤버변수, 메서드 등의 멤버들을

클래스 내부에 감추기 위함 이다.

 

어차피 해당 클래스 내에서만 사용되니까,

외부에서 접근할 필요가 없으니, 멤버들을 private 처리를 해서

외부에서 노출되지 않도록 하는 것이다. == 복잡성을 줄인다는 말.

 

이러한 개념도 역시 캡슐화에 해당 된다.

 

3. 캡슐화

( == 모듈화, 컴포넌트화)

 

내부 로직 코드를 정확히 몰라도, Input, Output, 기능, 활용하는 상황 등을

알면 그냥 가져와서 사용 한다.

 

// 기존의 코드들을 분석하여 '모듈화' 된 코드들을 가져다가 사용 할 수 있다.

 

=>

오류의 파급효과가 줄어든다.

개발 시간 단축.

개발 비용 절감.

이익 증가.

유지 보수 용이.

 

[ 예시 ]

 

 

 

 

1. 멤버변수에 private 처리를 해서, 위와 같이 메서드를 통해 접근을 하게 만든다.

 

2. 해당 클래스 내부에 getter와 setter을 만들어 줘서 멤버변수에 간접 접근.

 

3.

getter : 외부로 부터 받아온 어떤 값을 return.

즉, 게터는 멤버변수로 부터 값을 받아올 수 있도록 한다.

 

setter : 외부로 부터 값을 가져온다.

즉, 세터는 멤버변수의 값을 새롭게 설정해 준다.

반응형

'Java의 정석 > 객체지향 프로그래밍 II' 카테고리의 다른 글

참조변수의 형변환  (0) 2023.06.06
다형성 (Polymorphism)  (0) 2023.06.06
제어자  (0) 2023.06.06
생성자 super()  (0) 2023.06.05
참조변수 super  (0) 2023.06.05