はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
オブジェクトとクラス編
オブジェクトとクラス編では、Javaを扱う上で非常によく出てくる「オブジェクト」や「クラス」について扱っていきます。
今回は「インスタンス変数」と「static変数」の内容の理解度の確認問題です。厳密な確認というよりは、ちょっとしたチェック用の問題です。気軽に解答してみてください。
目次
例題
ソースコードや実行結果の表示部分はコメントに従った内容を埋めてください。
例題:
Carクラスの例
1 2 3 | class Car{ //整数型のnumberをここに書いてください } |
解答:
Carクラスの例
1 2 3 | class Car{ int number; } |
問題
次のクラスを作りました。
BadSmartPhoneクラス
1 2 3 4 | class BadSmartPhone{ String maker; static String number; } |
Javaでは、クラス内に定義される変数はインスタンス変数とstatic変数の2種類があります。
上記のBadSmartPhoneクラスの場合、makerがインスタンス変数、numberがstatic変数です。
ここで、BadSmartPhoneクラスを利用するUsePhoneクラスを考えてみます。
UsePhoneクラス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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クラスを実行した場合、画面には次のように表示されます。
1 2 3 4 5 6 | phone1 /* ここを解答 */ /* ここを解答 */ phone2 /* ここを解答 */ /* ここを解答 */ |
解答例
次のクラスを作りました。
BadSmartPhoneクラス
1 2 3 4 | class BadSmartPhone{ String maker; static String number; } |
Javaでは、クラス内に定義される変数はインスタンス変数とstatic変数の2種類があります。
上記のBadSmartPhoneクラスの場合、makerがインスタンス変数、numberがstatic変数です。
ここで、BadSmartPhoneクラスを利用するUsePhoneクラスを考えてみます。
UsePhoneクラス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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クラスを実行した場合、画面には次のように表示されます。
1 2 3 4 5 6 | phone1 SAK 080-ZZZZ-WWWW phone2 tech 080-ZZZZ-WWWW |
はじめてのJavaシリーズの目次はこちら
オブジェクトとクラス編はこちら