제어자(modifier)
- 클래스, 멤버변수, 메서드의 선언부에 주로 사용된다
- 하나의 대상에 여러 개의 제어자를 조합하여 사용할 수 있으나, 접근제어자는 한번에 4개중 하나만 선택하여 사용할 수 있다. 즉, 하나의 대상에 대하여 public과 private를 동시에 사용할 수 없다.
- 제어자는 크게 접근 제어자와 그 외의 제어자로 나뉜다.
접근제어자 :: public, protected, default, private
그 외 :: static, final, abstract, native, transient, synchronized, volatile, strictfp
static (클래스의, 공통적인 제어자)
static이 사용될수 잇는곳 :: 멤버변수, 메서드, 초기화 블럭
멤버변수 -> 모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다.
클래스변수는 인스턴스를 생성하지 않고도 사용 가능하다.
클래스가 메모리에 로드될 때 생성된다.
메서드 -> 인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 된다.
static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다.
final (마지막의, 변경될 수 없는 제어자)
final이 사용될 수 있는 곳 :: 클래스, 메서드, 멤버변수, 지역변수
클래스 -> 변경될 수 없는 클래스, 확장될 수 없는 클래스가 된다. 그래서 final로 지정된 클래스는 다른 클래스의 조상이 될 수 없다.
메서드 -> 변경될 수 없는 메서드, final로 지정된 메서드는 오버라이딩을 통해 재정의 될 수 없다.
멤버변수 -> 변수 앞에 final이 붙으면, 값을 변경할 수 없는 상수가 된다.
지역변수 -> 변수 앞에 final이 붙으면, 값을 변경할 수 없는 상수가 된다.
접근 제어자 (access modifier)
멤버 또는 클래스에 사용되어, 외부로부터의 접근을 제한한다.
접근 제어(access control) :: 다른 클래스가 특정한 필드나 메서드에 접근하는 것을 제어하는 것
접근 제어자가 사용될 수 있는 곳 :: 클래스, 멤버변수 메서드, 생성자
private -> 같은 클래스 내에서만 접근이 가능하다.
default -> 같은 패키지 내에서만 접근이 가능하다.
protected -> 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다.
public -> 접근 제한이 전혀 없다.
접근 제어의 종류
클래스의 접근 제어
- public : 다른 모든 클래스가 사용할 수 있는 공용 클래스
- package(default) : 같은 패키지 안에 있는 클래스들만 사용할 수 있는 클래스
멤버의 접근 제어
<접근 제어>
'Web Programming > java-jsp' 카테고리의 다른 글
java 인터페이스, 추상클래스, 다중상속 (0) | 2018.08.29 |
---|---|
java 상속, 단일상속, 오버라이딩, 오버로딩, super, Object클래스, Object메서드 (0) | 2018.08.29 |
java 생성자this, 참조변수this, 정적메서드 (0) | 2018.08.29 |
java 생성자, 디폴트 생성자, 매개변수 있는 생성자 (0) | 2018.08.29 |
java 설정자와 접근자, 문자열 객체, String 클래스의 메서드 (0) | 2018.08.29 |