지극히 개인적인 개발블로그
static란 무엇일까? 본문
변수나 메소드 앞에 static이 붙는걸 많이 봤다. 무슨 의미이고 어떨때 사용될까?
public class HousePark {
static String lastname = "박";
public static void main(String[] args) {
HousePark pey = new HousePark();
HousePark pes = new HousePark();
}
}
이와같이 값이 변하지 않을 변수에 static을 사용하면 메모리 사용에 이점을 볼 수 있다.
다만 변수의 값이 변경되지 않기를 원한다면 static보다는 final을 사용하는것이 더 좋다.
static을 사용하는 또 한가지 이유로 공유의 개념을 들 수 있다. static 으로 설정하면 같은 곳의 메모리 주소만을 바라보기 때문에 static 변수의 값을 공유하게 되는 것이다.
static method
Static Method는 객체의 생성 없이 호출이 가능하며, 객체에서는 호출이 불가능하다.
public class Test {
private String name1 = "MangKyu";
private static String name2 = "MangKyu";
public static void printName(){
// System.out.println(name1); 불가능한 호출
System.out.println(name2);
}
}
예제에서 보다시피 static method에서는 static이 선언되지 않은 변수의 접근이 불가능하다.