java 공부 13강 [데이터은닉(캡슐화)] - 평범한 회사원

프로그램|2018. 10. 20. 18:18
















이번에는 데이터은닉에 대해서 리뷰하겠습니다.


- 캡슐화 개념


캡슐화 - 일반적으로 변수와 클래스를 하나로 묶는 작업입니다.  캡슐화의 중요 목적은 중요한 데이터를 보존,보호하기 위해 사용하는 것입니다.  즉 캡슐화는 클래스에 담는 내용중 중요한 데이터나 기능을 외부에서 접근하지 못하게하기 위해 사용한다고 알아 두면 된다.


캡술화 = 은닉성 이라고 생각하면 쉽다.


- 캡슐화 방법



1. 멤버 변수 앞에 접근 제어자 private를 붙인다. (private: 자기 클래스에서만 접근할 수 있는 것입니다 )

2. 멤버 변수에 값을 넣고 꺼내 올 수 있는 메소드를 만든다 (접두어 set/get을 사용해 메소드를 만듭니다.)


구체적으로 어떤 말일까? 자 학생이란 클래스와 학교라는 클래스를 만들었다고 가정해보자. 학생이라는 클래스에서

학생의 나이들은 private 가 붙어있다. 즉 은닉화 되어있다. 이때 학교 클래스에서 학생의 정보를 호출할려고한다.

이떄는 평소의 방법으로 접근이 되지 않을 것이다.

이제 예제를 보자



- 캡슐화 예제


<Student class>


<School class>


위에 예제처럼 school 과 student 서로 다른 2개의 클래스가 있다고 가정해봅시다.

우리는 student의 멤버변수들에 private를 붙여서 은닉화 시켰다. 그리고 school 클래스에서 이 student 의 멤버변수를 조작하는것은

전에 했듯이 this가 붙은 메소드를 활용하면 된다. 그런데 호출 하는것이 문제이다.

만약에 우리가 평소에 해왔듯이 stu.age 처럼 하면 바로 오류가 발생할것이다. 왜냐? 

은닉화 되어있기떄문에 바로 접근할수가 없다.!! 그래서 위처럼 우리는 메소드를 이용해 간접적으로 접근합니다

댓글()