getter/setter 구현 중에서 getter만 사용하여 수정하지 못하게 설정.
public class Employee { private static int serialNum = 1000; // private을 사용하여 외부에서 수정하지 못하게 해줌 private int employeeId; private String employeName; private String department; public Employee() { serialNum++; employeeId = serialNum; } public static int getSerialNum() { // getter 만 사용하고 setter는 삭제 return serialNum; } public int getEmployeeId() { return employeeId; } public void setEmployeeId(int employeeId) { this.employeeId = employeeId; } public String getEmployeName() { return employeName; } public void setEmployeName(String employeName) { this.employeName = employeName; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } }
- 클래스 이름으로 호출 가능 ( 클래스 메서드, 정적 메서드 )
System.out.println(Employee.getSerialNum());
public static int getSerialNum() { // 스태틱 메서드에서 인스턴스 변수는 사용할 수 없다.
int i = 0; // 지역변수: getSerialNum함수 내부에서 생성된 함수.
// employeeName = "Park"; // 인스턴스 변수/ 일반멤버변수 를 사용할 수 없다.
// 즉 static메서드에서 사용못함!!!
serialNum = 1000;
// 스태틱변수 사용가능! 로드될때 serialNum은 이미 메모리에 있는 상태이고,
// 일반메서드getSerialNum() 에서 사용하는데 지장없다.
return serialNum;
}