자바 인프런 - static, final
- static이란?
static은 쉽게 생각해서 공유이다.
클래스는 생성자를 이용해 객체로 만들어서 사용한다. 그런데 현실 세계를 프로그램에 옴겨 놓았을때 문제가 생길 수 있다. 클래스의 값이 한정되어야 하는데 다수의 객체를 생성해서 사용하려고 하면 클래스 한정된 값을 초과하는 버그가 발생한다. 이를 예방하기 위해서 클래스 내에서 static으로 객체 선언을 해서 다른 클래스와 동시에 공유한다. 다른 클래스에서는 클래스 객체를 생성하지 않고 바로 접근 할 수 있다.
package 패키지1
public class LimitValue {
public static int VALUES = 400;
}
package 패키지2
import 패키지1.LimitValue
public class UseValue {
public void Use1(int value) {
LimitValue.VALUES = LimitValue.VALUES - value;
}
}
package 패키지3
import 패키지1.LimitValue
public class UseValue2 {
public void Use2(int value) {
LimitValue.VALUES = LimitValue.VALUES - value;
}
}
package 패키지3
import 패키지1.LimitValue
바로 위에 메인클래스에서 UseValue1,2 메소드를 실행하면 LimitValue 클래스의 VALUES의 값은 400에서 200으로 차감되어 출력된다. 만약 static 선언을 하지 않았다면? 출력 값은 변화없이 400이다.
- static의 장점과 단점
- final이란?