클래스 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 제공
1. 접근 제어자 : public, protected, default, private
2. 그 외 : static, final, abstract, native 등등
1. 멤버변수
2. 메서드
변수에 사용할시 : 상수가 된다.
메서드에 사용할시 : 오버라딩이 불가
클래스에 사용시 : 상속으로 사용 불가능
생성자를 이용한 final멤버 변수의 초기화
생성자를 만들떄 상수값을 지정해줌으로써 활용이 가능(매개변수를 이용)
메서드의 선언부만 작성하고 실제 수행내용을 구현하지 않은 추상 메서드를 선언하는데 사용된다.
-> 인스턴스를 생성할 수 없다.
후에 배울내용
private : 같은 클래스 내에서만 접근이 가능
default : 같은 패키지 내에서만 접근이 가능
protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능
public : 제약이 없음.
접근 범위가 넓은쪽에서 좁은 쪽의 순으로 왼쪽부터 나열하면
public > protected > default > private
접근제어자를 사용 하는 이유
보통 멤버변수를 private로 선언하고 멤버변수의 값을 읽고 변경할수 있는 메서드를 public로 지정함으로써 간접적으로 멤버변수를 다루는 방법이 주로 이용된다.
-> 메서드의 구현부를 통해서 다양한 조건을 넣어줄수 있기 떄문에
생성자의 접근 제어자
생성자를 private로 지정을 함으로써 외부에서 생성자에 접근을 할수가 없게 만들수 있는데 이를 싱글톤 패턴 이라고 한다.
이 방법을 통해서 인스턴스의 갯수를 제한할수 있다.
-> 만들어지는 인스턴스마다 주소값이 동일하다.