본문 바로가기
Language/Java

자바 static 변수, 메소드 예제 및 사용이유

by wakestand 2019. 11. 18.
반응형

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();
	}

}
반응형

댓글