728x90
제어자란?
제어자란 클래스, 변수, 메소드 선언부 앞쪽에 함께 사용되어 부가적의미를 부여한다.
종류
- 접근제어자
public, protected, default, private
- 그 외의 제어자
static, final, abstract, native, transient, synchronized, volatile, strictfp
여러가지 제어자를 조합하여 사용하는 것 가능
접근 제어자는 하나만 사용가능
순서는 상관없지만, 접근제어자를 맨 앞에 두는 경향이 있다.
static
의미 : 공통적인 / 클래스의
인스턴스가 아닌 클래스에 관계된 것이기 때문에 인스턴스를 생성하지 않고도 사용이 가능하다.
인스턴스 변수 vs 클래스(static) 변수
인스턴스 변수 : 하나의 클래스로 부터 생성되었어도, 서로 다른 값을 가진다. (별개의 인스턴스)
클래스 변수 : 인스턴스에 관계없이 값을 가지며, 하나의 변수를 모든 인스턴스가 공유한다.
인스턴스 메소드 vs 클래스(static) 메소드
static메소드는 메소드 내에서 인스턴스 멤버 사용X
→인스턴스 멤버를 사용하지 않는 메서드는 static메서드로 선언하는 것이, 인스턴스를 생성하지 않고 호출이 가능하기 때문에, 편리하며 속도도 빠르다.
static으로 선언 가능한 것들
- 클래스 변수(static 변수)
- 클래스 초기화 블럭
- 클래스 메소드(static 메소드)
//클래스(static) 변수
static int width = 200;
static int height = 300;
//클래스 초기화 변수
static {
//static 변수의 복잡한 초기화 수행 (주로 클래스변수를 초기화할 때 사용)
//클래스가 메모리에 로드될 때 한 번만 수행
}
// 클래스(static) 메서드
static int max(int a, int b){
return a > b ? a : b;
}
추가예정)
final
abstract
access modifier
728x90
'LANGUAGE > JAVA' 카테고리의 다른 글
[JAVA] 배열 Array (0) | 2021.10.28 |
---|---|
[Java] 열거형(enums) (0) | 2021.09.22 |