회원가입 클래스 GetMembers를 생성하라
- 단, 회원 고유의 식별번호(int idNumber)를 부여하고, 생성된 식별 번호의 1의 자리 숫자가 오늘 날짜의 1의자리 숫자와 일치하면 "당첨입니다"라는 문구를 출력한다.
- 회원가입시 기입하는 정보(field)는 String: id, password, phoneNumber 이다.
- idNumber은 정적 필드로 정의한다.
import java.util.Calendar;
import java.util.GregorianCalendar;
class GetMembers {
private static int idNumber = 0;
private static int day;
private String id = new String();
private String password = new String();
private String phoneNumber = new String();
// -- 클래스 초기화 블록 -- //
static {
GregorianCalendar today = new GregorianCalendar(); // 현재 날짜
day = today.get(Calendar.DATE); // today의 일
} //class initiation
// -- 인스턴스 초기화 블록 -- //
{
if(++idNumber%10 == day%10) {
System.out.println("당첨입니다.");
} // if
} // instance initiation
public GetMembers(String id, String password, String phoneNumber) {
this.id = id; this.password = password; this.phoneNumber = phoneNumber;
System.out.printf("%s님 가입을 환영합니다.\n 회원님은 %d번째 고객님이십니다.", this.id, idNumber);
}
} // GetMembers
클래스 초기화 볼록
- 생성자가 인스턴스 실행시마다 실행되는 것과 달리, 클래스 초기화 블록은 단 한 번만 실행된다.
- 클래스가 초기화 될 때 실행되는 블록으로 실행되는 시점은 다음과 같다.
- 클래스의 인스턴스가 생성될 때
- 클래스의 클래스 메서드가 호출될 ㄸ대
- 클래스의 클래스 변수에 값이 대입될 때
- 클래스의 상수가 아닌 클래스 변수값이 추출될 때
인스턴스 초기화 블록
- 인스턴스 생성시 모든 생성자가 실행될 때, super 클래스의 생성자를 호출한 뒤, 인스턴스 초기화 블록이 실행되고, 그 다음 생성자 블록의 소스가 실행된다.
- 모든 인스턴스에 공통으로 적용할 사항을 여기에서 실행한다.