Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- NoSQL
- Elk
- Static
- spring
- 네트워크
- github
- socket
- ajax
- Lombok
- 데이터통신
- reactive
- mybatis
- effective
- Heap
- reactor
- libuv
- javascript
- git
- Linux
- VCS
- r
- html
- redis
- nodejs
- AWS
- HTTP
- Java
- mongodb
- network
- cache
Archives
- Today
- Total
빨간색코딩
접근제어자 (public, protected, private, getter, setter) 본문
1. 접근제어자의 종류
현재 클래스 | 동일 패키지 | 상속받은 하위클래스 | 모든 클래스 | |
---|---|---|---|---|
public | O | O | O | O |
protected | O | O | O | X |
private | O | X | X | X |
(default) | O | O | X | X |
- public : 모든 외부에서 직접 접근하거나 호출 가능
- protected : 현재 클래스와 동일 패키지이거나 다른 패키지이더라도 상속 시에는 접근하거나 호출 가능
- private : 현재 클래스 밖에서는 사용X
- (default) : 현재 클래스와 동일한 패키지 내에서만 접근하거나 호출 가능, 뭐 안붙이면 이거다.
2. 주로 어디다 쓰는가
- 클래스는 public 과 default만 선택가능하다.
- 필드는 다 쓸 수 있지만 보통 private로 한다. 완벽한 상수는 public static을 주로 사용한다.
- 메소드도 다 할 수 있다. 추상메소드에는 private 쓰면 안된다.
3. 접근자와 설정자
일반적으로 private 변수에 접근하거나 값을 설정하려면 getter와 setter 메소드를 이용한다. 이렇게 하면 주요한 장점으로는 아래와 같다. IDE단에서 아예 제네레이터 편하게 해준다. 네이밍 규칙은 getXxx, setXxx, 이클립스로 자동생성 가능
- getter : 데이터의 복사본을 던져주기 때문에 원본데이터 손상X
- setter : 파라미터를 검증해서 값을 넣을 수 있다.
'Java' 카테고리의 다른 글
서블릿 (servlet, jsp와 차이점, 컨테이너, 동작원리, web.xml) (0) | 2018.01.02 |
---|---|
static 키워드 (메모리 상 위치, 클래스 변수, 클래스 메소드, static 블록) (0) | 2017.12.29 |
생성자 (constructor, this, 오버로딩) (0) | 2017.12.28 |
예외처리 (throwable, exception, error, throws) (0) | 2017.12.26 |
Thread의 모든 것! (스레드 생성, 생명주기, 정보, 상태, 스케줄링, 주요 메소드, synchronized) (0) | 2017.12.22 |
Comments