class Product
{
static int count = 0; //클래스 명시적 초기화
int serialNo; //인스턴스 명시적 초기화
{ // 인스턴스 초기화 블럭(객체를 만들때 마다 실행됨)
++count;
serialNo = count;
}
// 아래와 같은 선언은 클래스 초기화 블럭(객체를 아무리 많이 만들어도 한번만 실행됨)
}static{
}
public Product(){} // 생성자
}
class ProductTest{
public static void main(String[] args)
{
// 아래와 같이 인스턴스를 생성할 때마다 인스턴스초기화블럭을 실행한다.(여기선 3번 인스턴스화 했으니 3번 실행되었다)
Product p1 = new Product();
Product p2 = new Product();
Product p3 = new Product();
System.out.println("p1의 제품번호(serial no)는 " +p1.serialNo);
System.out.println("p2의 제품번호(serial no)는 " +p2.serialNo);
System.out.println("p3의 제품번호(serial no)는 " +p3.serialNo);
}
}
결과는
1,2,3 순서대로 시리얼넘이 찍혀서 출력됨
'자바' 카테고리의 다른 글
getter와 setter, 생성자의 접근 제어자 (0) | 2014.01.19 |
---|---|
접근제어자와 제어자 (0) | 2014.01.19 |
생성자를 이용한 인스턴스의 복사 (0) | 2014.01.15 |
여러 개의 값을 리턴하기 (0) | 2014.01.14 |
자바 class의 구성 (0) | 2014.01.07 |