【はじめての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シリーズの目次はこちら
オブジェクトとクラス編はこちら