반응형
static 변수와 메소드를 알아보기 전에
static을 사용하지 않는 경우를 알아보자면
클래스 영역에 있는 변수와 메소드를 사용하기 위해
객체화를 하고 변수와 메소드를 사용하는 것이 보인다
이번에는 static 변수와 메소드를 사용한 경우인데
객체화를 하지 않고도 바로 변수와 메소드를 사용할 수 있는 것이 보인다
이 말은 static을 사용하면 바로 메모리에 할당되기 때문에
객체화를 하지 않고 바로 사용할 수 있다
포인트는 static을 통해 객체화를 하지 않아도 사용할 수 있기 때문에
계속 사용하거나 값을 공유하는 경우에 static을 사용해주면
메모리를 덜 소모하면서 사용할 수 있다는 것이다
예제에 사용한 코드는 아래와 같다
// static을 사용하지 않은 예제
public class NonStaticTest {
int a = 10; // 클래스 영역의 변수
public void call() { // 클래스 영역의 메소드
System.out.println("call method");
}
public static void main(String[] args) {
// static이 없을 경우에는 객체화를 해야 함
NonStaticTest nst = new NonStaticTest(); // 객체화
System.out.println(nst.a);
nst.call(); // 객체화를 해야 클래스 영역의 변수, 메소드를 사용 가능
}
}
// static을 사용한 예제
public class StaticTest {
static int a = 10; // static 변수
public static void call() { // static 메소드(Method)
System.out.println("static method call");
}
public static void main(String[] args) {
// static은 객체화 없이도 사용 가능
System.out.println(a);
call();
}
}
반응형
'Language > Java' 카테고리의 다른 글
자바 List 정의부터 출력까지 (0) | 2019.11.25 |
---|---|
자바 ArrayList, LinkedList 차이 예제로 알아보기 (0) | 2019.11.19 |
자바 배열 선언 및 초기화 방법 및 예제 (0) | 2019.11.18 |
자바 다형성(Polyporhism)이란? & 예제 (0) | 2019.11.12 |
자바 Error Exception 차이 정리 (0) | 2019.11.11 |
댓글