| この問題を解くためには… |
| → 応用編第4日目参照 |
|---|
問題4:インターフェース
prob4-1.(難易度:★)
以下のプログラムが、期待された実行結果通りにプログラムが動くように、インターフェースICellPhone、IComputer、IMailerを実装しなさい。
probex4-1:CellPhone.java
package problemex4;
public class CellPhone implements IPhone,IMailer,IComputer{
// メールを送信する
public void sendMail(){
System.out.println("メールを送る");
}
// メールを受信する
public void recieveMail(){
System.out.println("メールを受信する");
}
// webを閲覧する
public void borwseWeb(){
System.out.println("ウェブを閲覧する");
}
// ゲームをする
public void playGame(){
System.out.println("ゲームをする");
}
// 電話をかける
public void callPhone(){
System.out.println("電話を掛ける");
}
// 電話を受ける
public void recievePhone(){
System.out.println("電話を受ける");
}
}
package problemex4;
public class Problemex4_1 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
CellPhone cp = new CellPhone();
funcPhone(cp);
funcMailer(cp);
funcComputer(cp);
}
// 電話としての処理
public static void funcPhone(IPhone phone){
phone.callPhone(); // 電話を掛ける
phone.recievePhone(); // 電話を受ける
}
// メーラーとしての処理
public static void funcMailer(IMailer mailer){
mailer.sendMail(); // メールを送信する
mailer.recieveMail(); // メールを受信する
}
// コンピュータとしての処理
public static void funcComputer(IComputer computer){
computer.playGame(); // ゲームをする
computer.borwseWeb(); // ウェブを閲覧する
}
}
電話を掛ける
電話を受ける
メールを送る
メールを受信する
ゲームをする
ウェブを閲覧する
電話を受ける
メールを送る
メールを受信する
ゲームをする
ウェブを閲覧する
prob4-2.(難易度:★)
以下のプログラムが、期待された実行結果通りにプログラムが動くように、インターフェースIAlarm、IClockおよび、Problemex4_2のmainメソッド内を実装しなさい。
probex4-2:AlarmClock.java
package problemex4;
// アラームつき時計クラス
public class AlarmClock implements IClock,IAlarm{
public void alarm(){
System.out.println("アラームを鳴らす");
}
public void setAlarm(){
System.out.println("アラームをセットする");
}
public void stopAlarm(){
System.out.println("アラームを止める");
}
public void showTime(){
System.out.println("時刻を知る");
}
public void adjustTime(){
System.out.println("時刻を修正する");
}
}
package problemex4;
public class Problemex4_2 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
AlarmClock ac = new AlarmClock(); // アラーム付き時計クラスのインスタンスを生成
}
// アラームとしての処理
public static void funcAlarm(IAlarm alarm){
alarm.setAlarm(); // アラームのセット
alarm.alarm(); // アラームを鳴らす
alarm.stopAlarm(); // アラームを止める
}
// 時計としての処理
public static void funcClock(IClock clock){
clock.adjustTime(); // 時間を調整する
clock.showTime(); // 時間を表示する
}
}
アラームをセットする
アラームを鳴らす
アラームを止める
時刻を修正する
時刻を知る
アラームを鳴らす
アラームを止める
時刻を修正する
時刻を知る









