プログラミング初心者の奮闘記

プログラミング初心者の成長と過程。

オブジェクト指向 Iphoneクラス


package rensyuu;

import java.util.HashMap;
import java.util.LinkedList;

public class Iphone extends SmartPhone {
    public static final String makerName = "apple";
    public static final String itemName = "iphone";
    private static int count = 0;       //staticはクラスが持っている変数
    private String itemId;
    private String type;                           //staticなしはオブジェクトが持っている変数
    private String size;
    private int storage;
    private String defaultBrowser = "Safari";       ///アクセス修飾子つける
    private HashMap<String,Integer> map;
    private LinkedList<String> array;

    //コンストラクタ
    public Iphone() {
        super();
        count++;    //①インスタンス化されたiphoneの台数をカウントできるように、countを1ずつ増やしましょう
        ItemId();
        setType("未設定");
        setSize("未設定");
        setStorage(0);
        getType_Size_Storage(type,size,storage);
        turnOn();           //②インスタンス化されたiphoneは自動的にインターネットに接続します
        setCallStatus(false);
        getInternetStatus();
    }

    public Iphone(String iphonetype,String iphonesize,int iphonestorage) {
        super();
        array = new LinkedList<String>();
        map = new HashMap<String,Integer>();
        count++;
        ItemId();
        setType(iphonetype);
        setSize(iphonesize);
        setStorage(iphonestorage);
        getType_Size_Storage(type,size,storage);
        turnOn();
        setCallStatus(false);
        getInternetStatus();
    }

    //ゲッター
    //①実行結果を元にゲッターを作成しましょう
    public static int getCount() {
        return count;
    }

    public void setType(String iphonetype) {
        type = iphonetype;
    }

    public void setSize(String iphonesize) {
        size = iphonesize;
    }

    public void setStorage(int iphonestorage) {
        storage = iphonestorage;
    }

    public void getType_Size_Storage(String type,String size,int storage) {
        System.out.println("型名:" + type);      //まとめる
        System.out.println("画面サイズ:" + size);
        System.out.println("容量:" + storage + "GB");
    }



    //メソッド
    //①端末IDを作成するメソッドを作成しましょう
    ////端末IDは5桁でインスタンス化された台数の連番を左から0埋めしてください

    public void ItemId() {
        itemId = String.format("%05d",count);
        System.out.println("端末ID:" + itemId );
    }



//public class Iphone8 extends Iphone {


    public void call(String PhoneNumber) {
         if(callStatus == false) {
            setCallStatus(true);
            System.out.println("iphone8から" + PhoneNumber + "に発信します。");      //iphone8を変数に
            System.out.println("電話につながりました。");
        }
    }




//}

//public class Iphone10 extends Iphone {
    public void setInternetStatus(boolean iphonegetInternetStatus) {
        internetStatus = iphonegetInternetStatus;
    }

    public void browser() {
        if(internetStatus == true) {
            System.out.println(defaultBrowser + "を起動します。");
        }else if(internetStatus == false) {
            turnOn();
            System.out.println(defaultBrowser + "を起動します。");
        }

    }


    public void installApp(String applicationName,int usestorage) {
        if(storage - usestorage < 0) {
            System.out.println("容量が足りないので、インストールできません。");
            System.out.println("残容量:" + storage + "GB");
        }else {
            System.out.println(applicationName + "をインストールしました。");
            array.add(applicationName);
            map.put(applicationName,usestorage);
            storage -= usestorage;
            System.out.println("残容量:" + storage + "GB");
        }
    }

    public void showAllApp() {
        System.out.print("インストールされているアプリ:");
        if(array.size() == 0) {
            System.out.println("なし");
        }else {
            for(int i = 0; i < array.size(); i++) {
                String app = array.get(i);
                System.out.print(app);
                if(i != array.size() -1) {
                    System.out.print(",");
                }
            }
            System.out.println();
        }
    }


    public void deleteApp(String applicationName) {
        if(map.containsKey(applicationName)) {
            int usestorage = map.get(applicationName);
            map.remove(applicationName);
            array.remove(applicationName);
            System.out.println(applicationName + "をアンインストールしました。");
            storage += usestorage;
            System.out.println("残容量:" + storage + "GB");
            showAllApp();
        }else {
            System.out.println(applicationName + "はインストールされていません。");
        }
    }
}