オブジェクト指向2
オブジェクト指向の練習問題1で作成した下記クラスの機能を拡張しましょう。
また、練習問題1で指定したアクセス修飾子を、もう一度適切だったか見直してみましょう。
スーパークラス:SmartPhone
サブクラス:Iphone
まずは、mainメソッド内のプログラムと実行結果を確認してください。
問題2
public class main { public static void main(String[] args) { //SmartPhoneをインスタンス化 System.out.println(SmartPhone.pdctName + "をインスタンス化します。"); SmartPhone smart = new SmartPhone(); System.out.println("-------------------------\n"); System.out.println(Iphone.makerName +"社の" + Iphone.itemName + "をインスタンス化していきます。"); System.out.println("インスタンス化された" + Iphone.itemName + "の数:現在" + Iphone.getCount() + "台"); // 初期状態のiphoneをインスタンス化 System.out.println("-------------------------"); System.out.println("▼初期設定のiPhoneをインスタンス化▼"); Iphone iphone = new Iphone(); System.out.println(); iphone.turnOff(); iphone.call("09087654321"); System.out.println("\n▼初期設定のiPhoneを通話状態、接続状態"); System.out.println("通話状態:" + iphone.getCallStatus()); System.out.println("接続状態:" + iphone.getInternetStatus()); System.out.println("\nインスタンス化された" + iphone.itemName + "の数:現在" + iphone.getCount() + "台"); //iPhone8をインスタンス化 System.out.println("-------------------------"); System.out.println("▼iPhone8をインスタンス化▼"); Iphone iphone8 = new Iphone("iphone8", "4.7インチ", 128); System.out.println("\n▼初期設定のiphoneの通話状態を確認する。"); System.out.println("通話状態:" + iphone.getCallStatus()); System.out.println("▼iphone8の通話状態を確認する。"); System.out.println("通話状態:" + iphone8.getCallStatus()); System.out.println(); iphone8.call("08012345678"); System.out.println("通話状態:" + iphone8.getCallStatus()); iphone8.call("08022223333"); //通話中に発信できるかテスト iphone8.hangUp(); System.out.println("通話状態:" + iphone8.getCallStatus()); iphone8.call("08011112222"); System.out.println("\nインスタンス化された" + iphone8.itemName + "の数:現在" + iphone8.getCount() + "台"); //iPhone10をインスタンス化 System.out.println("-------------------------"); System.out.println("▼iPhone10をインスタンス化▼"); Iphone iphone10 = new Iphone("iphone11", "5.8インチ", 64); System.out.println("\n▼初期設定のiPhoneの接続状態"); System.out.println("接続状態:" + iphone.getInternetStatus()); System.out.println("▼iphone11の接続状態を確認する。"); System.out.println("接続状態:" + iphone10.getInternetStatus()); System.out.println(); iphone10.browser(); //接続中にブラウザを起動 iphone10.turnOff(); System.out.println("接続状態:" + iphone10.getInternetStatus()); iphone10.browser(); //未接続状態でブラウザを起動 System.out.println("\nインスタンス化された" + iphone10.itemName + "の数:現在" + iphone10.getCount() + "台"); } }
実行結果
SmartPhoneをインスタンス化します。 プロダクト名:SmartPhone ------------------------- apple社のiPhoneをインスタンス化していきます。 インスタンス化されたiPhoneの数:現在0台 ------------------------- ▼初期設定のiPhoneをインスタンス化▼ プロダクト名:SmartPhone 端末ID:00001 型名:未設定 画面サイズ:未設定 容量:0GB インターネットに接続します。 インターネットにつながりました。 インターネットを切断しました。 09087654321に発信します。 電話につながりました。 ▼初期設定のiPhoneを通話状態、接続状態 通話状態:true 接続状態:false インスタンス化されたiPhoneの数:現在1台 ------------------------- ▼iPhone8をインスタンス化▼ プロダクト名:SmartPhone 端末ID:00002 型名:iphone8 画面サイズ:4.7インチ 容量:128GB インターネットに接続します。 インターネットにつながりました。 ▼初期設定のiphoneの通話状態を確認する。 通話状態:true ▼iphone8の通話状態を確認する。 通話状態:false iphone8から08012345678に発信します。 電話につながりました。 通話状態:true 電話を切りました。 通話状態:false iphone8から08011112222に発信します。 電話につながりました。 インスタンス化されたiPhoneの数:現在2台 ------------------------- ▼iPhone10をインスタンス化▼ プロダクト名:SmartPhone 端末ID:00003 型名:iphone11 画面サイズ:5.8インチ 容量:64GB インターネットに接続します。 インターネットにつながりました。 ▼初期設定のiPhoneの接続状態 接続状態:false ▼iphone11の接続状態を確認する。 接続状態:true Safariを起動します。 インターネットを切断しました。 接続状態:false インターネットに接続します。 インターネットにつながりました。 Safariを起動します。 インスタンス化されたiPhoneの数:現在3台
mainメソッドと実行結果、下記コメントを元に、SmartPhoneクラスを改良しましょう。
練習問題1で作成したプログラムを必要であれば修正しましょう。
public class SmartPhone { //フィールド String pdctName = "SmartPhone"; boolean callStatus = false; boolean internetStatus = false; //メソッド //➀インターネットに接続するメソッドをオーバーロードしましょう ////引数にブラウザ情報を受け取って、インターネットに接続してブラウザを起動するメソッドを作成しましょう }
mainメソッドと実行結果、下記コメントを元に、IPhoneクラスを改良しましょう。
練習問題1で作成したプログラムを必要であれば修正しましょう。
public class Iphone { //フィールド String makerName = "apple"; String itemName = "iPhone"; int count = 0; String itemId; String type; String size; int storage; String defaultBrowser = "Safari"; //コンストラクタ //➀引数のあるコンストラクタを作成しましょう //メソッド //➀電話を掛けるメソッドをオーバーライドしましょう ////初期状態じゃない、商品化されたiPhoneから通話する場合は、商品名を表示しましょう //➁ブラウザを起動するメソッドを作成しましょう }
さいたま市南区の武蔵浦和駅(中浦和駅)周辺でプログラミングを勉強したい・興味のある方に、
個別指導でJavaのプログラミングを教えています。生徒さまはIT・プログラミング未経験の社会人の方がほとんどです。
▼興味があれば、下記リンクをご確認ください。