java/realization

[realization] 5. ๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ๋ฅผ ํฌํ•จํ•œ ์ธํ„ฐํŽ˜์ด์Šค

jeri 2024. 6. 11. 01:49
๋ฐ˜์‘ํ˜•

1. [๋ถ€๋ชจ] ๐Ÿ–จrealization > Printable์ธํ„ฐํŽ˜์ด์Šค

package realization;

public interface Printable {

	//์ถ”์ƒ๋ฉ”์†Œ๋“œ(Abstract Method) : ์ž์‹ํด๋ž˜์Šค์—์„œ ๋ฐ˜๋“œ์‹œ ์˜ค๋ฒ„๋ผ์ด๋“œ ์„ ์–ธ
	void print();

	//JDK8 ์ด์ƒ์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ๋ช…๋ น์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์˜ ๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ ์„ ์–ธ ๊ฐ€๋Šฅ
	//๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ(Default Method) : ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ž์‹ํด๋ž˜์Šค์— ์˜ค๋ฒ„๋ผ์ด์Šค ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋ฉ”์†Œ๋“œ - ์˜ค๋ฒ„๋ผ์ด๋“œ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
	//ํ˜•์‹)default ๋ฐ˜ํ™˜๋ช… ๋ฉ”์†Œ๋“œ๋ช…(์ž๋ฃŒํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋ช…,...) { ๋ช…๋ น;... }
	default void scan() {
		System.out.println("[์—๋Ÿฌ]์Šค์บ” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.");
	}

}

2. [์ž์‹] ๐Ÿ–จrealization > PrintSingleํด๋ž˜์Šค

package realization;
public class PrintSingle implements Printable {

	@Override
	public void print() {System.out.println("[ํ”„๋ฆฐํŠธ]๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.");}
}

3. [์ž์‹] ๐Ÿ–จrealization > PrintMultiํด๋ž˜์Šค

package realization;
public class PrintMulti implements Printable {

	@Override
	public void print() {System.out.println("[๋ณตํ•ฉ๊ธฐ]๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.");}

	@Override
	public void scan() {System.out.println("[๋ณตํ•ฉ๊ธฐ]๋ฌธ์„œ๋ฅผ ์Šค์บ”ํ•ฉ๋‹ˆ๋‹ค.");}
}

4. [์ž์‹] ๐Ÿ–จrealization > PrintableApp ์‹คํ–‰ํ”„๋กœ๊ทธ๋žจ

package realization;
public class PrintableApp {
	public static void main(String[] args) {

		//1.
    	//๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์„ ์–ธ
		Printable printOne=new PrintSingle();
        
		printOne.print(); //[ํ”„๋ฆฐํŠธ]๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

		//๋ถ€๋ชจ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
		printOne.scan(); //[์—๋Ÿฌ]์Šค์บ” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

		//2.
		Printable printTwo=new PrintMulti();
		printTwo.print(); //[๋ณตํ•ฉ๊ธฐ]๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
		printTwo.scan();  //[๋ณตํ•ฉ๊ธฐ]๋ฌธ์„œ๋ฅผ ์Šค์บ”ํ•ฉ๋‹ˆ๋‹ค.

	}
}



๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€์ˆ˜0