일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rest방식
- 마크다운 링크
- 마크다운 테이블
- @Setter(onMethod_ = @Autowired) Error
- jdbc연결확인
- SQL
- java.lang.NoClassDefFoundError:org/springframework/core/annotation/MergedAnnotations
- git
- Class<SpringJUnit4ClassRunner> cannot be resolved to a type
- ejected-non-fast-forward
- 정보처리기사
- 한글깨짐
- 오라클
- 이클립스
- git오류
- lombok.jar
- java
- git push
- SpringJUnit4ClassRunner
- 마크다운 기본문법
- 취성패
- 스프링
- jdbc연결테스트코드
- spring자바설정
- 오라클연습문제
- HTTP 상태 415 – 지원되지 않는 Media Type
- mysql한글깨짐
- Oracle join
- oracle
- 마크다운 리스트
- Today
- Total
study-project
java (getter ,setter) 정보은닉 본문
캡슐화 정보은닉 이라는 단어는 정보처리 기사 준비를 하면서 봤었다. 그때는 그냥 읽고 외웠는데
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 |