Notice
Recent Posts
Recent Comments
Link
05-22 03:21
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

study-project

java (getter ,setter) 정보은닉 본문

TIL/JAVA

java (getter ,setter) 정보은닉

귤식빵 2020. 10. 3. 14:42

캡슐화 정보은닉 이라는 단어는 정보처리 기사 준비를 하면서 봤었다. 그때는 그냥 읽고 외웠는데 

java 공부를 하다보니까 나와서 반가웠다

이런식으로 클래스안에 변수 선언을 해놓고  변수들에 저장된 값을 보기위해서 메소드 하나를 만들었다

(변수 선언시 앞에 접근제어자를 붙이지 않으면 디폴트 접근제어자가 되고 같은 패키지 안에서만 사용가능하다 )

그런 다음에 다른 클래스를 생성하고  메인 메소드안에서 객체 생성을 하고 date안에서 변수랑 메소드를 호출하는데 

이때  day가 100일수는 없고  month도 70 일수 없는데 직접 변수에 접근하게 되니까

올바르지 않은 데이터가 들어가는경우에도 막을수 없게된다. 

그래서 데이터를 담는 변수를  private로 접근 제어자를 변경하고 변수에 접근할 수 있는 public 메소드를 만든다 

그리고 그 메소드 안에서 정상적인 값의 볌위 등을 구현하고 아닐경우 에러처리 등을 담당하게 한다. 

매개변수로 받은 month의 값이 1보다 작거나 12보다 클경우에는 isValid=의 값을 false로 하고 아닐경우 month 변수에 값을 넣는다. 

이런 메소드를 getter setter 라고 부른다 통상적으로 데이터를 넣는걸 set변수명 데이터를 가저오는것 get변수명

이렇게 적는것이지 꼭 메소드 이름이 set, get 이렇게 할 필요는 없다. 

그리고 직접 작성할 필요도 없다 이클립스에서 자동으로 만들 수 있도록  generate getters and setters to create  기능을 따로 제공한다.

그리고 아까 데이터를 출력하게 하는 show메소드로가서  isValid의 값으로 결정하게 한다 

값이 ture면 들어온 데이터 들을 출력해주고  setMonth에서 들어온 month의 값이 조건에 맞지 않아서 false가 되었을경우 

show메소드가 출력되었을때  isValid가 ture가 아니어서 유효하지 않은 날짜 입니다 를 출력하게 한다 

이렇게 하는것이 정보 은닉, 오류를 막는 방법이라고 한다. 

'TIL > JAVA' 카테고리의 다른 글

java this 이해하기  (0) 2020.10.03
java 환경변수 간단하게 설정하기  (0) 2020.08.25
java 구구단  (0) 2020.08.25
이클립스 초기화  (0) 2020.08.19
Comments