1. 접근지정자
- 사용(접근) 권한 지정
- 기준 : 패키지, 클래스
- 선언 : 클래스, 멤버변수(클래스), 멤버메서드(클래스), 생성자
1. 접근지정자 종류
1) public
- 어디에서든 사용 가능, 제한이 없음
2) protected
- 같은 패키지 내에서만 사용이 가능
- 단, 상속 관계에서는 다른 패키지에서도 사용 가능
3) default
- 같은 패키지 내에서만 사용이 가능
- Java 내에서는 생략
4) private
- 같은 클래스 내에서만 사용이 가능
2. 4가지 중에서 한개만 선언 가능(중복 선언 불가)
캡슐화
- 외부에서 접근하는데 정보를 은닉하고 메서드를 통해서만 접근
- 내부 데이터를 보호
DTO(Data Transfer Object), VO(Value Object)
- 멤버변수는 모두 private
- 각각의 setter, getter 생성
- set변수명, get변수명 - camelcase형식
setXXX() : 뭔가를 입력하는 메서드
getXXX() : 뭔가를 가지고오는 메서드
isXXX() : boolean 타입을 리턴하는 메서드
2. 그외 지정자
- 부가적인 의미
- static, final, abstract
1. static
- 공통의, 클래스의
- 객체를 생성하지 않고 사용 가능
- 하나의 프로그램내에서 공통으로 사용 할 때
1) 선언 위치
a. 멤버변수 : 클래스변수
- 더 이상 멤버 변수가 아님
- 클래스명.클래스변수명
b. 멤버메서드 : 클래스메서드
- 더 이상 멤버 메서드가 아님
- 클래스명.메서드명();
- Instance 메서드 내에서는 클래스변수, 클래스메서드 사용 가능
- 클래스 메서드 내에서는 클래스변수, 클래스 메서드 사용 가능
- 클래스 메서드 내에서 Instance 변수, Instance 메서드 사용 불가
2) 클래스 변수 초기화
a. 변수 선언시 초기화 : public static int num=1;
b. static 초기화 블럭 : static { ... }
2. final
- 변하지 않는, 마지막, 변경할 수 없는
1) 선언 위치
a. 클래스 선언부 : 이 클래스는 상속(extends) 금지
b. 멤버(클래스) 변수 선언부 : 상수 취급, 한번 대입한 값은 변경 금지
: 변수명은 모두 대문자로 작성
c. 멤버메서드 선언부 : 이 메서드는 변경(오버라이딩) 금지
d. 지역 변수 선언부 : 상수 취급
3. abstract
- 변경해라, 추상적인,,,
1) 선언 위치
a. 클래스 선언부 : 이 클래스는 상속(extends) 해서 사용
b. 멤버메서드 선언부 : 이 메서드는 변경(오버라이딩) 해서 사용
4. 그 외 지정자는 의미만 맞으면 두개 이상 가능
public static final int NUM=1; OK
public final abstract test(){} Error