個別指導 Javaプログラミングスクール 武蔵浦和(中浦和)

現役SE(システムエンジニア)が埼京線の武蔵浦和(中浦和)周辺でJavaプログラミング学習の個別指導を行っています。

オブジェクト指向2

[Java]オブジェクト指向の練習問題

オブジェクト指向の練習問題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・プログラミング未経験の社会人の方がほとんどです。
▼興味があれば、下記リンクをご確認ください。

java-musashiurawa.hatenablog.com