1. Static 변수
여러 인스턴스가 공유하는 변수 (= 클래스 변수) 또는 인스턴스 생성 전에 사용하려는 변수
2. Static 변수 선언 및 접근
public class Employee {
static int serialNum = 1000; # 클래스 변수 serialNum 생성
int employeeId;
String employeeName;
String department;
}
Student.serialNum = 1001; # 인스턴스.serialNum 도 가능
1. Static 메서드
인스턴스 생성 전에 접근 가능한 메서드
2. Static 메서드 선언 및 접근
static int serialNum = 1000; # static 변수
private int employeeId;
private String employeeName;
private String department;
public static int getSerialNum() { # static 메서드
return serialNum;
}
public static void setSerialNum(int serialNum) { # static 메서드
# employeeId = 123 # 에러 (멤버 변수에 접근 불가능)
# this.serialNum = 1005 # 에러 (static 메서드 내에서 this. 키워드 사용 불가능)
# int i = 0; # 정상 (지역 변수 사용 가능)
# serialNum = 1000; # 정상 (클래스 변수 사용 가능)
Employee.serialNum = serialNum;
}
public static void main(String[] args) {
Employee emp1 = new Employee(); # 객체(인스턴스) 생성
Employee.setSerialNum(1004); # emp1.setSerialNum(1004); 도 가능
System.out.println(Employee.serialNum); # emp1.serialNum 도 가능
}
1. 변수의 유효 범위와 메모리
2. Static 규칙