컴퓨터공학 💻 도서관📚
Part2. 2-17 static 메서드 본문
* 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. 큰 배열)를 할당하는 것은 좋지 않다
멤버 변수가 너무 많으면 인스턴스 생성 시 쓸데없는 메모리가 할당되니 상황에 따라 적절하게 변수를 사용해야 한다
클래스 내부의 여러 메서드에서 사용하는 변수는 멤버 변수로 선언하는 것이 편리해서 좋다
'✅🌲강의 복습 노트 > 패캠 JavaSpring 강의,코드 복습' 카테고리의 다른 글
Part2. 2-19 static과 싱글톤 패턴 복습 (0) | 2025.02.04 |
---|---|
Part2. 2-18 싱글톤 패턴 : 프로그램에서 인스턴스가 유일해야 하는 경우 사용하는 디자인 패턴 (0) | 2025.02.03 |
Part2. 2-16 static 변수: 여러 인스턴스에서 공통으로 사용하는 변수 (0) | 2025.01.28 |
Part2. 2-13, 14, 15 객체 간의 협력 (0) | 2025.01.02 |
Part2. 2-12 this (0) | 2024.12.27 |
Comments