Printer02

"Java Stuty"

Posted by Chungman on March 22, 2021

UserMain

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package Java0322.UserMain.abs02;

/*
 * 프린터를 선택하세요(1.LG 2.삼성)=> 1
 * 
 */
public class UserMain {

	public static void main(String[] args) {
		
		Menu menu = new Menu();
		menu.choice();

	}

}

Menu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package Java0322.UserMain.abs02;

import java.util.Scanner;

public class Menu {

	public int selectMenu() {
		Scanner sc = new Scanner(System.in);
		System.out.println("LV2프린트를 선택하세요(1.LG 2.삼성 3.HP) => ");
		int no = sc.nextInt();
		sc.nextLine();
		
		return no;
	}
	
	public void choice() {
		int type = selectMenu();
		print(type);
	}
	
	public void print(int no) {
		
		Printer p = null;
		switch(no) {
		case 1 :
			p = new LGPrinter();
			break;
		case 2 :
			p = new SamsungPrinter();
			break;
		case 3 :
//			p = new HPInkjetPrinter();
			p = new HPLaserPrinter();
			break;
		}
		if(p != null)
			p.print();
		else {
			System.out.println("잘못 선택하셨습니다.");
		}
		
		/*
		switch(no) {
			case 1 :
				LGPrinter lg = new LGPrinter();
				lg.print();
				break;
			case 2 :
				SamsungPrinter sam = new SamsungPrinter();
				sam.print();
				break;
			case 3 :
				HPPrinter HP = new HPPrinter();
				HP.print();
				break;
		}
		*/
	}
}

Printer

1
2
3
4
5
6
7
8
package Java0322.UserMain.abs02;

public abstract class Printer {

	String productName;
	
	public abstract void print();
}

LGPrinter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package Java0322.UserMain.abs02;

public class LGPrinter extends Printer{

	@Override
	public void print() {
		System.out.println("LG프린터에서 출력중...");
	}
	
	/*
	public void lgPrint() {
		System.out.println("LG프린터에서 출력중...");
	}
	*/
	
}

SamsungPrinter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package Java0322.UserMain.abs02;

public class SamsungPrinter extends Printer{

	@Override
	public void print() {
		System.out.println("삼성프린터에서 출력중...");
	}
	
	/*
	public void samPrint() {
		System.out.println("삼성프린터에서 출력중...");
	}
	*/
}

HPPrinter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package Java0322.UserMain.abs02;

public abstract class HPPrinter extends Printer {


}

class HPLaserPrinter extends HPPrinter {

	@Override
	public void print() {
		System.out.println("HP 레이저프린터에서 출력중...");
	}

}

class HPInkjetPrinter extends HPPrinter {
	
	@Override
	public void print() {
		System.out.println("HP 잉크젯프린터에서 출력중...");
	}
	
}