JAVA 제어자
# 접근 제어자
> 정보의 은닉을 위해서 이용, 최소한의 정보만으로 클래스를 운용
> 총 4가지 ( private, public, protected, default )
- private : 클래스 멤버는 외부로 공개되지 않음. ( 외부 접근 불가 )
- public : 클래스 멤버는 외부로 공개 됨 ( 외부 접근 가능 )
- protected : 상속받은 클래스 멤버는 접근 가능, 같은 패키지 접근 가능 ( 외부 접근 불가 )
- default : 같은 패키지에 속하는 멤버에서만 접근 가능 ( 기본값 )
> 접근 범위
- public > protected > default > private 순서
# 기타 제어자
> 특징
- 클래스에 final 과 abstract 를 같이 쓸 수 없다.
- 메소드에 static 과 abstract 를 같이 쓸 수 없다.
- 메소드에 private 와 abstract 를 같이 쓸 수 없다.
- 메소드에 private 와 final 을 같이 쓰지 않고 1가지만 사용한다
> final : 변경 할 수 없다 라는 뜻
- 필드나 지역 변수의 값을 변경할 수 없다.
- 클래스의 경우에는 상속을 받을 수 없다.
- 메소드의 재정의(오버라이딩)를 할 수 없다.
> static : 공통적인 이라는 뜻
- 변수나 메소드앞에 붙여서 이용
- 특징 1 : 1번만 생성되고 초기화 된다.
- 특징 2 : 인스턴스를 만들지 않고 사용 가능
- 특징 3 : 모든 인스턴스가 공유 가능
> abstract : 추상적인 라는 뜻
- 클래스나 메소드에 대해서 선언만 하는 경우에 이용
- 특징 : 추상 메소드가 1개 라도 있다면 클래스도 추상 클래스로 선언해야 함.