Java/chapter2

ch09 NumberPrinter

낭구리 2021. 8. 25. 17:50
package ch09;

public class NumberPrinter {
	
	private int id;
    static int waitNumber; //대기번호
	//static을 사용함으로써 waitNumber의 변수를 공유
	
	public NumberPrinter(int id) {
		this.id = id;
		waitNumber = 1;
		
	}
	
	//번호표를 찍어 주세요.
	public void printWaitNumber() {
		System.out.println(id + "기기의 대기 순번 : "+ waitNumber);
		waitNumber++;
	}

}

 

package ch09;

public class MainTest1 {

	public static void main(String[] args) {

		System.out.println(NumberPrinter.waitNumber);
		
		NumberPrinter numberPrinter1 = new NumberPrinter(1); //메모리에 올린 인스턴스
		NumberPrinter numberPrinter2 = new NumberPrinter(2); //인스턴스들이 공유하는변수 : static
		//힙영역에 n1 n2 만들어두고 stack에 main을 할당하고 힙영역의 n1 , n2에서 stack의 영영에 주소를 할당
		//객체와 상관없이 미리 만들어지는 변수라 접근해서 현재값이 얼마인지 알수있게된다. - static
		//static 메모리 구조가 다른곳에 존재하기때문에 태양이라고도한다. 태양은 객체생성과 상관 없이 미리 할당 되어 있다.
		//태양이라는 변수에 접근하여 공유한다.
		//static을 사용하지않을경우 n1 n2가 각각 독립적이지만 static을 쓰게되면 메모리에 static이라는 변수에 생성이되어 인스턴스들이 공유하는변수로 생성
		
		//왼쪽 기계
		//1.번호표를 뽑음
		numberPrinter1.printWaitNumber();
		//2.번호표를뽑음
		numberPrinter1.printWaitNumber();
		numberPrinter1.printWaitNumber();
		numberPrinter2.printWaitNumber();
		numberPrinter2.printWaitNumber();
		numberPrinter1.printWaitNumber();
		numberPrinter1.printWaitNumber();
		
		//오른쪽 기계
		numberPrinter2.printWaitNumber();
		numberPrinter2.printWaitNumber();
		

	}

}

'Java > chapter2' 카테고리의 다른 글

ch09 Company  (0) 2021.08.25
ch09 Employee  (0) 2021.08.25
ch08 Person this란?  (0) 2021.08.25
ch07 Hero  (0) 2021.08.25
ch07 Bank  (0) 2021.08.25