JAVA
[JAVA] static final과 final이란?
ChrisJang
2020. 11. 17. 13:06
final 변수란?
: 한번 값을 선언하면 Immutable 형식(값 변경이 불가능한)이 된다.
final 클래스란?
: 클래스를 final로 선언한다면, 이 클래스를 상속하는 것을 허용하지 않겠다는 뜻이다.
final 메소드란?
: 메소드의 오버라이딩을 금지시키겠다는 뜻이다.
: 클래스의 상속은 되지만 메소드만 재정의하여 사용할 수 없다.
static 변수란?
: static 으로 선언된 변수는 메모리 공간에 하나만 존재하며, 어디서나 접근이 가능한 변수이다.
어디서나 접근이 가능하려면 static 변수도 public으로 선언되어야 한다.
- 클래스 내부에서는 얼마든지 직접 접근이 가능하다.
- 클래스 외부에서 인스턴스의 이름이나 클래스의 이름을 통해 접근하는 것도 가능하다.
static 변수의 초기화 시점
: static 변수는 인스턴스가 생성되기 이전에 별도의 메모리 공간에 할당되어 초기화까지 완료된다.
초기화되는 시점은 JVM(Java Virtual Machin) 에 의해서 클래스가 메모리 공간에 올라가는 순간이다.
static 변수 사용 이유
: 인스턴스 간에 데이터 공유가 필요한 상황에서 static 변수를 선언한다.
static final 선언
: 클래스 내부 또는 외부에서 참조의 용도로만 선언된 변수는 static final로 선언한다.
ex ) static final double PI = 3.14;
static 메소드란?
: 인스턴스를 생성하지 않아도 static 메소드를 호출할 수 있다.
사용 이유는 객체를 생성할 필요가 없는 메소드에 붙인다.
인스턴스 변수에 접근하지 않는다면 static 메소드로 정의해야 한다.
출처 :
hunit.tistory.com/159?category=523912