1. 답 1
interface는 implements로 class에 구현된다.
2. 답 3
디폴트 메소드는 오버라이딩 된다.
3. 답4
구현 객체를 인터페이스 타입으로 변활할때, 자동으로도 된다
4. 답 1,2,3,4
implements로 구현된 class와 상속받은 class는 모두 타입변환이 가능하다
//---
5. Tv On
1 2 3 4 5 | public interface Task1_Remocon { public void TvOn(); } | cs |
1 2 3 4 5 6 7 | public class Task1_TvOn implements Task1_Remocon { public void TvOn() { System.out.println("Tv를 켰습니다."); }; } | cs |
1 2 3 4 5 6 7 | public static void main(String[] args) { Task1_TvOn tvremocon = new Task1_TvOn(); tvremocon.TvOn(); } | cs |
6.animal
1 2 3 4 | public interface Task2_Soundable { public String sound(); } | cs |
1 2 3 4 5 6 7 | public class Task2_Cat implements Task2_Soundable { public String sound() { return "야옹"; }; } | cs |
1 2 3 4 5 6 7 | public class Task2_Dog implements Task2_Soundable { public String sound() { return "멍멍"; }; } | cs |
1 2 3 4 5 6 7 | public class Task2_SoundableExample { public void printSound(Task2_Soundable soundable) { System.out.println(soundable.sound()); }; } | cs |
1 2 3 4 5 6 7 8 9 | public static void main(String[] args) { Task2_SoundableExample soundableEx = new Task2_SoundableExample(); soundableEx.printSound((Task2_Soundable)new Task2_Cat()); soundableEx.printSound((Task2_Soundable)new Task2_Dog()); } | cs |
7. DB Contect
-익일 재확인 예정입니다
1 2 3 4 5 6 7 8 | public interface Task3_DataAccessObject { String nType =""; void select(); void insert(); void update(); void delete(); } | cs |
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 | public class Task3_MySqlDao implements Task3_DataAccessObject { final String nType = "MySql"; @Override public void select() { System.out.println(nType+" DB에서 검색"); } @Override public void insert() { System.out.println(nType+" DB에 삽입"); } @Override public void update() { System.out.println(nType+" DB를 수정"); } @Override public void delete() { System.out.println(nType+" DB에서 삭제"); } } | cs |
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 | public class Task3_OracleDao implements Task3_DataAccessObject { final String nType = "Oracle"; @Override public void select() { System.out.println(nType+" DB에서 검색"); } @Override public void insert() { System.out.println(nType+" DB에 삽입"); } @Override public void update() { System.out.println(nType+" DB를 수정"); } @Override public void delete() { System.out.println(nType+" DB에서 삭제"); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 | public class Task3_DaoExample { public void dbWork(Task3_DataAccessObject dao) { dao.select(); dao.insert(); dao.update(); dao.delete(); } } | cs |
1 2 3 | Task3_DaoExample dao = new Task3_DaoExample(); dao.dbWork(new Task3_OracleDao()); dao.dbWork(new Task3_MySqlDao()); | cs |
8. method
1 2 3 4 5 | public interface Task4_A { public void method1(); } | cs |
1 2 3 4 5 6 7 | public class Task4_B implements Task4_A { public void method1() { System.out.println("B - method1()"); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 | public class Task4_C implements Task4_A { public void method1() { System.out.println("C - method1()"); } public void method2() { System.out.println("C - method2()"); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Task4_Example { public static void action(Task4_A a) { a.method1(); if(a instanceof Task4_C) { Task4_C c = (Task4_C)a; c.method2(); } } } | cs |
1 2 3 | Task4_Example ex = new Task4_Example(); ex.action(new Task4_B()); ex.action(new Task4_C()); | cs |
9.
1 2 3 4 5 6 7 8 9 10 11 12 | public class Menu { String strName; int nPay; public Menu(String strName, int nPay) { this.strName = strName; this.nPay = nPay; } } | cs |
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | public abstract class LunchMenu { Scanner scanner = new Scanner(System.in); public String shopName; String strName; int nLunchMainPay; int nManuCnt =4; public Menu[] MainList = new Menu[nManuCnt]; int nSnackManuCnt = 4; public Menu[] snackList = new Menu[nSnackManuCnt]; public LunchMenu() { //Menu (strName ,nPay) this.strName ="null"; this.nLunchMainPay = 4500; // // 쌀밥 + 불고기 + 두부조림 + 미역국 // 500 + 2000 + 1000 + 1000 //주식 MainList[0] = new Menu("쌀밥" , 500 ); MainList[1] = new Menu("불고기" , 2000 ); MainList[2] = new Menu("두부조림" , 1000 ); MainList[3] = new Menu("미역국" , 1000 ); //간식 this.snackList[0] = new Menu("요플레" , 800 ); this.snackList[1] = new Menu("바나나" , 500 ); this.snackList[2] = new Menu("우유" , 500 ); this.snackList[3] = new Menu("아몬드" , 700 ); } public void SnackList() { System.out.println(" <간식 메뉴>"); System.out.println("번호\t 메뉴 \t가격"); for(int i =0; i< snackList.length; i++) { if(snackList[i] != null) { System.out.print(" "+(i+1) +"\t"); System.out.print(snackList[i].strName +"\t"); System.out.print(snackList[i].nPay +"\n"); } } System.out.println(""); } // 반복 유무 확인 public boolean isAgain(Scanner scanner ,String strAsk) { // true : 진행 , false : 미진행 boolean bRtn = false; //Scanner scanner = new Scanner(System.in); String strCheck = "-1"; scanner.reset(); while (true) { System.out.println(strAsk+" (Y/N)"); //Write = BaseFuntion.Write(); strCheck = scanner.next(); if( !strCheck.equals("N") && !strCheck.equals("n") && !strCheck.equals("Y") && !strCheck.equals("y") ) // 메모리에 저장된 값과 동일 여부를 확인 { System.out.println("입력값이 잘못됐습니다. Y/N을 입력해주세요"); continue; } else break; } if(strCheck.equals("Y") || strCheck.equals("y") ) bRtn = true; return bRtn; } public void Buy() { int nManuCheck =0; int nNumCheck =0; System.out.println("먹을 간식을 선택하세요 , 못먹는 간식이 있으면 0을입력하세요"); System.out.println("(못먹는 간식이 있으면 0을입력하세요)"); nManuCheck = scanner.nextInt(); --nManuCheck; System.out.println("----------------------------"); System.out.println("\t배식 리스트"); System.out.println("----------------------------"); System.out.println(" 메뉴 \t\t 금액"); int ntotPay =0; int nPay = 0; //주식 for(int i =0; i< MainList.length; i++) { nPay = MainList[i].nPay; System.out.print(" "+MainList[i].strName+"\t"); System.out.printf("%10d\n",MainList[i].nPay); ntotPay += nPay; } System.out.printf("\t---간식---\n"); //간식 if(nManuCheck >= 0) { nPay = snackList[nManuCheck].nPay ; ntotPay += nPay; System.out.print(" "+snackList[nManuCheck].strName+"\t"); System.out.printf("%10d\n",nPay); } System.out.printf("\n총결제 금액 : %10d\n",ntotPay); //scanner.close(); } } | cs |
1 2 3 4 5 6 7 | public class Child extends LunchMenu{ } | cs |
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 | public class Run { public static void main(String[] args) { Child Chile1 = new Child(); Chile1.SnackList(); Chile1.Buy(); System.out.println(""); System.out.println(""); Chile1.SnackList(); Chile1.Buy(); System.out.println(""); System.out.println(""); Chile1.SnackList(); Chile1.Buy(); } } | cs |
10.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public interface interfaceToy { void UseToyList(int nAge); String GetName(int nNum); String GetMove(int nNum); String GetLight(int nNum); String GetMissile(int nNum); String GetUseAge(int nNum ); boolean isUseAge(int nNum , int nAge); } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class Toy { String strName; boolean bMove; boolean bLight; boolean bMissile; int nUseAge; public Toy(String strName, boolean bMove, boolean bLight, boolean bMissile, int nUseAge) { this.strName = strName; this.bMove = bMove; this.bLight = bLight; this.bMissile = bMissile; this.nUseAge = nUseAge; } } | cs |
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | public class ToyShop implements interfaceToy{ Toy[] ToyList = new Toy[4]; public ToyShop() { //제품 등록 // 이름 , 팔다리 , 불빛 , 미사일 , 연령대 ToyList[0] = new Toy("곰돌이" , true , false ,false , 0); ToyList[1] = new Toy("로보트" , true , false ,true , 5); ToyList[2] = new Toy("비행기" , false , true ,true , 7); ToyList[3] = new Toy("탱크" , false , false ,true , 10); } @Override public void UseToyList(int nAge) { System.out.println("\t\t----------------------------"); System.out.println("\t\t\t구매가능 장난감 리스트"); System.out.println("\t\t----------------------------"); System.out.println("장난감\t팔다리움직임\t불빛발사기능\t미사일발사기능\t연령대 "); System.out.println("-----------------------------------------------------------------"); for(int i =0; i< ToyList.length; i++) { if(isUseAge(i , nAge)) { //연령이 통과하면 보여준다 System.out.print(GetName(i)); System.out.print("\t "+GetMove(i)); System.out.print("\t\t "+GetLight(i)); System.out.print("\t\t "+GetMissile(i)); System.out.print("\t\t"+GetUseAge(i) + "\n"); } } } @Override public boolean isUseAge(int nNum , int nAge) { if(ToyList[nNum].nUseAge <= nAge) return true; else return false; } @Override public String GetName(int nNum) { return ToyList[nNum].strName; } @Override public String GetMove(int nNum) { if(ToyList[nNum].bMove) return "O"; else return "X"; } @Override public String GetLight(int nNum) { if(ToyList[nNum].bLight) return "O"; else return "X"; } @Override public String GetMissile(int nNum) { if(ToyList[nNum].bMissile) return "O"; else return "X"; } @Override public String GetUseAge(int nNum) { if(ToyList[nNum].nUseAge > 1) return ToyList[nNum].nUseAge+ "세 이상"; else return "전체연령"; } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class Run { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in) ; ToyShop toyshop = new ToyShop() ; int nAge; System.out.println("아이의 나이를 입력하세요"); nAge = scanner.nextInt(); toyshop.UseToyList(nAge); System.out.println("아이의 나이를 입력하세요"); nAge = scanner.nextInt(); toyshop.UseToyList(nAge); scanner.close(); } } | cs |