////
Search

JAVA

챕터 10 : 클래스와 객체 7

문제

// 상황 : DVD방에 3개의 서로다른 tv가 있다. 영업을 하다보니 각 tv의 특별한 기능은 거의 사용될 일이 없고 기본적인 켜기/끄기 만 사용된다. 현재 리모콘이 3개나 있는습니다. // 문제 : 알바를 편하게 하기 위해서 표준Tv 리모콘을 구현해주세요. class Main { public static void main(String[] args) { System.out.println("== 표준Tv 리모콘 들여오기 전 =="); 샤오미Tv a샤오미Tv = new 샤오미Tv(); 삼성Tv a삼성Tv = new 삼성Tv(); LGTv aLGTv = new LGTv(); a샤오미Tv.켜기(); // 출력 => 샤오미Tv 켜집니다. a샤오미Tv.끄기(); // 출력 => 샤오미Tv 꺼집니다. a샤오미Tv.vr켜기(); // 출력 => 샤오미Tv vr켜기! a삼성Tv.켜기(); // 출력 => 삼성Tv 켜집니다. a삼성Tv.끄기(); // 출력 => 삼성Tv 꺼집니다. a삼성Tv.ar켜기(); // 출력 => 삼성Tv ar켜기! aLGTv.켜기(); // 출력 => LGTv 켜집니다. aLGTv.끄기(); // 출력 => LGTv 꺼집니다. aLGTv.게임모드전환(); // 출력 => LGTv 게임모드전환! System.out.println("== 표준Tv 리모콘 들여온 후 =="); // 표준Tv 리모콘을 저장할 수 있는 변수를 만든다. 표준Tv a표준Tv; // a표준Tv 변수에 샤오미Tv 객체를 연결한다. // 중요 : 다른말로 a샤오미Tv 변수안에 있던 샤오미Tv 리코몬을 표준Tv 리모콘화 해서 a표준Tv변수에 넣는다. a표준Tv = a샤오미Tv; a표준Tv.켜기(); // 출력 : 샤오기TV 켜집니다. a표준Tv.끄기(); // 출력 : 샤오기TV 꺼집니다. // a표준Tv 변수에 삼성Tv 객체를 연결한다. a표준Tv = a삼성Tv; a표준Tv.켜기(); // 출력 : 삼성TV 켜집니다. a표준Tv.끄기(); // 출력 : 삼성TV 꺼집니다. // a표준Tv 변수에 LGTv 객체를 연결한다. a표준Tv = aLGTv; a표준Tv.켜기(); // 출력 : LGTV 켜집니다. a표준Tv.끄기(); // 출력 : LGTV 꺼집니다. // LGTV만의 고유 기능을 표준Tv 리모콘을 이용해서 호출하기 => 불가능 // (LGTv) => a표준Tv 변수에 있던 표준Tv 리모콘이 LGTv리모콘화 해서 `aLGTv2` 변수에 들어간다. LGTv aLGTv2 = (LGTv)a표준Tv; aLGTv2.게임모드전환(); } } // 이 클래스는 오직 리모콘을 만들기 위해서 만들어졌습니다. class 표준Tv { void 켜기() { } void 끄기() { } } class 샤오미Tv extends 표준Tv { void 켜기() { System.out.println("샤오미Tv 켜집니다."); } void 끄기() { System.out.println("샤오미Tv 꺼집니다."); } void vr켜기() { System.out.println("샤오미Tv vr켜기!"); } } class 삼성Tv extends 표준Tv { void 켜기() { System.out.println("삼성Tv 켜집니다."); } void 끄기() { System.out.println("삼성Tv 꺼집니다."); } void ar켜기() { System.out.println("삼성Tv ar켜기!"); } } class LGTv extends 표준Tv { void 켜기() { System.out.println("LGTv 켜집니다."); } void 끄기() { System.out.println("LGTv 꺼집니다."); } void 게임모드전환() { System.out.println("LGTv 게임모드전환!"); } }
Java
복사

챕터 11 : 클래스와 객체 8

문제

// 문제 : 아래가 실행되도록 해주세요. class Main { public static void main(String[] args) { 사람 a사람 = new 사람(); a사람.나이 = 20; a사람.a왼팔 = new(); } } class 사람 { // 클래스안에 변수를 정의 할 수 있다. int 나이; 팔 a왼팔; } class{ }
Java
복사
// 문제 : 아래가 실행되도록 해주세요. class Main { public static void main(String[] args) { 전사 a전사 = new 전사(); a전사.나이 = 20; a전사.a무기 = new(); a전사.a무기 = new(); } } class 전사 { int 나이; 무기 a무기; } interface 무기 { } classimplements 무기 { } classimplements{ }
Java
복사
// 문제 : 아래가 실행되도록 해주세요. class Main { public static void main(String[] args) { 전사 a전사 = new 전사(); String 이름 = "칸"; a전사.이름 = 이름; a전사.나이 = 20; a전사.자기소개(); a전사.나이++; a전사.자기소개(); a전사.나이 = 30; a전사.이름 = "카니"; a전사.자기소개(); a전사.a무기 = new(); a전사.공격(); // 출력 : 카니가 활로 공격합니다. a전사.a무기 = new(); a전사.공격(); // 출력 : 카니가 칼로 공격합니다. } } class 전사 { // 인스턴스 변수 String 이름; // 인스턴스 변수 int 나이; // 인스턴스 변수 무기 a무기; void 자기소개() { System.out.println("안녕하세요. 저는 " + this.나이 + "살 " + this.이름 + " 입니다."); } void 공격() { this.a무기.사용(this.이름); } } class 무기 { void 사용(String 사용자_이름) {} } classextends 무기 { void 사용(String 사용자_이름) { System.out.println(사용자_이름 + "가 칼로 공격합니다."); } } classextends 무기 { void 사용(String 사용자_이름) { System.out.println(사용자_이름 + "가 활로 공격합니다."); } }
Java
복사