자바 static 메서드

728x90

static을 붙이는 메서드

메서드에 static이 붙는 경우는 어떤 불변의 기능을 언제든지 실행시켜야 할 때 static이 붙는다.

 

예를 들어 원의 둘레를 구하는 메서드를 구현한다고 하면, 이 경우는 static이 붙여져서 선언된다.

이유: 어느 전 국가에서나 통용되는 범용적인 공식이기 때문에 static을 붙여서 선언한다.

 

위처럼 메서드의 기능을 잘 생각해서 static을 붙일지 말지 결정하여 메서드를 선언한다.

 

 

아래에는 static이 붙은 메서드에 일반 멤버변수가 들어간 경우이다.

  • 이 때 static 메서드과 멤버변수는 이미 메모리가 할당되어 객체 호출없이 static 멤버변수를 사용 가능하지만 일반 멤버변수는 메모리 할당이 되어있지 않기 때문에 사용이 불가능하다.
  • 따라서 메서드안에 객체를 호출해줘야 일반 멤버변수를 사용할 수있다.

 

class NoAccessWay{
	static int num;
	int memvari;

public static void noAccessWay() {
//		static 메서드이기 때문에 일반 멤버변수는 접근이 불가
//		이유는 일반 멤버변수는 메모리 할당이 되어있지 않기 떄문에 메서드 안에서 객체를 호출해줘야 정상적으로 실행이 가능하다
		NoAccessWay w = new NoAccessWay();
		w.memvari++; //접근 불가
		num++;
	}
}
728x90