Java 제어자
제어자(modifier)
클래스, 변수, 메서드의 선언문에 사용되어 부가적인 의미를 부여한다.
static - 클래스의, 공통적인
static이 사용될 수 있는 곳 - 멤버변수, 메서드, 초기화 블럭
static 멤버변수
1. 모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다.
2. 클래스변수는 인스턴스를 생성하지 않고도 사용 가능하다.
3. 클래스가 메모리에 로드될 때 생성된다.(Method Area)
static 메서드
1. 인스턴스를 생성하지 않고도 호출이 가능한 static 메서드가 된다.
2. static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다.
final - 마지막의, 변경될 수 없는
final이 사용될 수 있는 곳 - 클래스, 메서드, 맴버변수, 지역변수
final 클래스
1. 변경될 수 없는 클래스, 확장될 수 없는 클래스가 된다.
(final로 지정된 클래스는 다른 클래스의 조상이 될 수 없다.)
final 메서드
1. 자손 클래스에서 오버라이딩을 통해 재정의 될 수 없다.
final 맴버변수, 지역변수
1. 값을 변경할 수 없는 상수가 된다.
class Card {
final int NUMBER;
final String KIND;
static int width = 100;
static int height = 250;
Card(String kind, int num) {
KIND = kind;
NUMBER = num;
}
---------------------------------
public static void main(String args[]) {
Card c = new Card("HEART", 10);
//c.NUMBER = 5; 에러!!!
System.out.println(c.KIND);
System.out.println(c.NUMBER);
}
위 코드에서 말하고 싶은 점
final이 붙은 변수는 상수이므로 보통은 선언과 초기화를 동시에 하지만, 인스턴스변수의 경우 생성자에서 초기화 할 수 있다.
접근 제어자(access modifier)
외부로부터의 접근을 제한한다.
사용 될 수 있는 곳 - 클래스, 멤버변수, 메서드, 생성자
private - 같은 클래스 내에서만 접근이 가능하다.
default - 같은 패키지 내에서만 접근이 가능하다.
protected - 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다.
public - 접근 제한이 전혀 없다.
class에서 사용가능한 제어자 - public, default
멤버변수와 메서드 - public, protected, default, private
어떤 접근 제어자도 사용하지 않았으면 자동으로 (default) 제어자가 사용된 것이다.
Author And Source
이 문제에 관하여(Java 제어자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@snowgom/Java-제어자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)