728x90
728x90
= 상속 + Method
<문제> (난이도 하) (return이 붙고 안붙고가 아직 정확하게 성립되지 않았음!)
(in phone calss)
//DmbPhone은 Phone클래스를 상속 받습니다.
//channel 변수를 생성하고, color, model, channel을 초기화 하는 생성자를 작성하세요.
//메인메서드가 정상적으로 실행되도록 메서드를 추가하세요.
//(main class를 보고서 판단하면 된다) 폰같은 경우는 그냥 상속받는거니까 상속받는 걸로 끝.
(in mainclass)
//Dmb폰 객체 생성
//Phone클래스에서 상속받은 멤버 변수에 접근
//Phone에서 상속받은 메서드 호출
//DmbPhone에서 선언한 메서드 호출
<정답>
모델: 햅틱
색상: 메탈그레이
채널: 10
전원을 켭니다.
벨이 울립니다.
나: 여보세요??
상대방: 안녕하세요? XX보험입니다.
전화를 끊습니다.
TV를 켭니다
채널:7번
TV를 끕니다
전원을 끕니다.
<해설>
<phone class>
package quiz04;
public class Phone {
String model;
String color;
void powerOn() {
System.out.println("전원을 켭니다.");
}
void powerOff() {
System.out.println("전원을 끕니다.");
}
void ring() {
System.out.println("벨이 울립니다.");
}
void sendVoice(String message) {
System.out.println("나: " + message);
}
void recieveVoice(String message) {
System.out.println("상대방: " + message);
}
void hangUp() {
System.out.println("전화를 끊습니다.");
}
}
<DmbPhone Class>
package quiz04;
public class DmbPhone extends Phone{
//DmbPhone은 Phone클래스를 상속 받습니다.
//channel 변수를 생성하고, color, model, channel을 초기화 하는 생성자를 작성하세요.
//메인메서드가 정상적으로 실행되도록 메서드를 추가하세요.
//(main class를 보고서 판단하면 된다) 폰같은 경우는 그냥 상속받는거니까 상속받는 걸로 끝.
//생성자는 상속이 되지 않는다.
int channel;
DmbPhone(String pname,String pcolor,int pch){
model=pname;
color=pcolor;
channel=pch;
}
void turnOnDmb() {
System.out.println("TV를 켭니다");
}
void changeChannel(int aa) {
channel=aa;
System.out.println("채널:"+aa+"번");
//다른방식
// System.out.println("변경된 채널:"+channel);
// return channel;
}
void turnOffDmb() {
System.out.println("TV를 끕니다");
}
}
<MainClass>
package quiz04;
public class MainClass {
public static void main(String[] args) {
//Dmb폰 객체 생성
DmbPhone dp = new DmbPhone("햅틱", "메탈그레이", 10);
//Phone클래스에서 상속받은 멤버 변수에 접근
System.out.println("모델: " + dp.model);
System.out.println("색상: " + dp.color);
//DmbPhone에서 선언한 멤버 변수에 접근
System.out.println("채널: " + dp.channel);
//Phone에서 상속받은 메서드 호출
dp.powerOn();
dp.ring();
dp.sendVoice("여보세요??");
dp.recieveVoice("안녕하세요? XX보험입니다.");
dp.hangUp();
//DmbPhone에서 선언한 메서드 호출
dp.turnOnDmb(); //기능: TV를 켭니다 출력
dp.changeChannel(7); //기능: channel변수를 전달받은 변수로 변경후 출력
dp.turnOffDmb(); //기능: TV를 끕니다 출력
dp.powerOff();
}
}
728x90
'수업 복습하기 > Java Quiz' 카테고리의 다른 글
Quiz 29 - 오버로딩 + 배열 (0) | 2021.08.30 |
---|---|
Quiz 28 - Overriding + Overload (0) | 2021.08.30 |
Quiz 26 - 생성자 + Method (2) (0) | 2021.08.29 |
Quiz 25 - 생성자 + Method (0) | 2021.08.29 |
Quiz 24 - Method 연습 (0) | 2021.08.29 |