package Company;
public class Employee {
// 상속 관계 - 부모클래스 정의 - 멤버변수의 접근제한자 ? --> protected
// 사원 정보
// 사번, 이름, 나이, 폰, 입사일, 부서, 결혼여부 - T/F 저장
// empId, name, age, phone, empDate, dept, marriage
// static : empId가 1000번부터 순차적으로 1씩 부여하여 자동으로 사번이 부여되도록 하고 싶음
private int serial_num = 1000;
protected int empId;
protected String name;
protected int age;
protected String phone;
protected String empDate;
protected String dept;
protected boolean marriage;
public Employee() {}
public Employee(String name, int age) {
this.empId = ++serial_num;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return empId + "/" + name + "/" + age;
}
}
이러한 코드가 있을 때 결과는
1001/이순신/34
1001/강감찬/28
이렇게 나온다.
왜 그럴까??
static 변수는 정적변수로 프로그램 시작부터 끝날 때까지 존재하는 변수
메모리 공간 - data 영역에 존재함(힙영역에 존재하는 클래스들과는 별개)
만약 회사 이름 같이 공통적으로 같은 값을 가지는 변수라면 굳이 클래스별로 하나씩 만들어서 메모리를 낭비할 필요 없이
→ 공통으로 사용되는 변수니까 메모리를 낭비할 필요없이 data영역에 존재하는 static변수로 변경