java

【はじめてのJava】インスタンス変数とstatic変数の確認問題【オブジェクトとクラス編】


はじめてのJava

このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。


オブジェクトとクラス編

オブジェクトとクラス編では、Javaを扱う上で非常によく出てくる「オブジェクト」や「クラス」について扱っていきます。

今回は「インスタンス変数」と「static変数」の内容の理解度の確認問題です。厳密な確認というよりは、ちょっとしたチェック用の問題です。気軽に解答してみてください。


目次


例題

ソースコードや実行結果の表示部分はコメントに従った内容を埋めてください。

例題:
Carクラスの例

class Car{
  //整数型のnumberをここに書いてください
 }

 

解答:
Carクラスの例

class Car{
  int number;
 }

問題

次のクラスを作りました。

BadSmartPhoneクラス

class BadSmartPhone{
  String maker;
  static String number;
}

Javaでは、クラス内に定義される変数はインスタンス変数とstatic変数の2種類があります。

上記のBadSmartPhoneクラスの場合、makerがインスタンス変数、numberがstatic変数です。

ここで、BadSmartPhoneクラスを利用するUsePhoneクラスを考えてみます。

UsePhoneクラス

class UsePhone{
  public static void main(String[] args){

    BadSmartPhone phone1 = new BadSmartPhone();
    BadSmartPhone phone2 = new BadSmartPhone();

    phone1.maker = "SAK";
    phone2.maker = "tech";

    phone1.number = "090-XXXX-YYYY";
    phone2.number = "080-ZZZZ-WWWW";

    System.out.println("phone1");
    System.out.println(phone1.maker);
    System.out.println(phone1.number);

    System.out.println("phone2");
    System.out.println(phone2.maker);
    System.out.println(phone2.number);
  }
}

上記のUsePhoneクラスを実行した場合、画面には次のように表示されます。

phone1
/* ここを解答 */
/* ここを解答 */
phone2
/* ここを解答 */
/* ここを解答 */

解答例はこちら

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解答例

次のクラスを作りました。

BadSmartPhoneクラス

class BadSmartPhone{
  String maker;
  static String number;
}

Javaでは、クラス内に定義される変数はインスタンス変数とstatic変数の2種類があります。

上記のBadSmartPhoneクラスの場合、makerがインスタンス変数、numberがstatic変数です。

ここで、BadSmartPhoneクラスを利用するUsePhoneクラスを考えてみます。

UsePhoneクラス

class UsePhone{
  public static void main(String[] args){

    BadSmartPhone phone1 = new BadSmartPhone();
    BadSmartPhone phone2 = new BadSmartPhone();

    phone1.maker = "SAK";
    phone2.maker = "tech";

    phone1.number = "090-XXXX-YYYY";
    phone2.number = "080-ZZZZ-WWWW";

    System.out.println("phone1");
    System.out.println(phone1.maker);
    System.out.println(phone1.number);

    System.out.println("phone2");
    System.out.println(phone2.maker);
    System.out.println(phone2.number);
  }
}

上記のUsePhoneクラスを実行した場合、画面には次のように表示されます。

phone1
SAK
080-ZZZZ-WWWW
phone2
tech
080-ZZZZ-WWWW

はじめてのJavaシリーズの目次はこちら
オブジェクトとクラス編はこちら


java 11 の練習問題一覧はこちら
はじめてのJavaシリーズの練習問題一覧はこちら

  • このエントリーをはてなブックマークに追加

PAGE TOP