컴퓨터공학 💻 도서관📚

Part2. 2-17 static 메서드 본문

✅🌲강의 복습 노트/패캠 JavaSpring 강의,코드 복습

Part2. 2-17 static 메서드

들판속초록풀 2025. 1. 30. 22:30

* static 메서드 정의와 호출

static 메서드(클래스 메서드)도 static 변수와 동일하게 클래스 이름으로 직접 호출한다

 

private static int serialNum = 1000;

public static int getSerialNum() {    // static 메서드 정의
	return serialNum;
}
System.out.println(Employee.getSerialNum());  // static 메서드 호출 : 클래스 이름으로 호출

 

static 메서드에서는 인스턴스 변수를 사용할 수 없다. 
static 메서드는 인스턴스 생성 전에 호출될 수 있으므로 static 메서드 내부에서는 인스턴스 변수를 사용할 수 없다. 

메서드가 호출됐을 때 이 메서드가 수행이 되려면
이 메서드 안에 있는 요소들은 다 메모리를 가지고 있어야 한다
그렇기에 인스턴스 변수(멤버변수)는 사용할 수 없다

 

public static void setSerialNum(int serialNum) {
		int i = 0;
		
		employeeName = "Lee";   // 인스턴스 변수를 사용해서 오류발생
		Employee.serialNum = serialNum;
}

 

변수의 유효 범위(scope)와 생성과 소멸(life cycle)은 각 변수의 종류마다 다름

 

static 변수는 프로그램이 메모리에 있는 동안, 즉, 언로드 될 때까지 계속 그 영역을 차지하므로 너무 큰 메모리(ex. 큰 배열)를 할당하는 것은 좋지 않다

멤버 변수가 너무 많으면 인스턴스 생성 시 쓸데없는 메모리가 할당되니 상황에 따라 적절하게 변수를 사용해야 한다


클래스 내부의 여러 메서드에서 사용하는 변수는 멤버 변수로 선언하는 것이 편리해서 좋다

Comments