day12_ProductTestEx16

육희영·2021년 10월 27일
0
package com.java1.day12;

//생성자가1개지만  생성자에서 공통으로 수행되어지는 코드를 인스턴스 초기화 블럭에 넣고 사용해 보았다.
class Product {
	// count 를 static 로 선언 하지 안으면 카운트가 안되고 항상 0 이되어서 초기화 블럭에서 1을 더해서 출력하고
	// 다시 0 으로 초기화 된다.
	static int count = 0; // 생성된 인스턴스의 수를 저장하기 위한 변수
	int serialNo; // 인스턴스 고유의 번호

	// ProductTestEx16 인스턴스가 생성될때 마다 count 값을 1씩 증가 시켜서 serialNo 에 저장한다.
	{ // 생성자 보다 인스턴스 초기화 블럭이 호출 우선 순위가 높다.
		count++;
		serialNo = count;
	}

	public Product() {
	};
}

public class ProductTestEx16 {
	public static void main(String[] args) {
		Product p1 = new Product();
		Product p2 = new Product();
		Product p3 = new Product();

		System.out.println("p1의 제품 번호는" + p1.serialNo);
		System.out.println("p1의 제품 번호는" + p2.serialNo);
		System.out.println("p1의 제품 번호는" + p3.serialNo);
		System.out.println("생산된 제품의 수는 모두" + Product.count + "개 입니다.");
	}
}

출력결과

p1의 제품 번호는1
p1의 제품 번호는1
p1의 제품 번호는2
p1의 제품 번호는3
생산된 제품의 수는 모두3개 입니다.
p1의 제품 번호는2
p1의 제품 번호는3
생산된 제품의 수는 모두3개 입니다.

0개의 댓글

관련 채용 정보