【はじめてのJava】オブジェクトとクラス ~復習問題~
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
オブジェクトとクラス ~復習問題~
プログラムを記述する際、基礎的な概念となるオブジェクトとクラスについて学習を進めてきました。今回は「オブジェクトとクラス編」の内容を復習し、JavaSilverにおいてよく狙われるポイントを確認していきます。
目次
オブジェクト・クラスのおさらい
オブジェクトとは、モノ、対象、概念といった意味です。Javaのプログラムは、基本的にこの「オブジェクト」を単位として作成されます。
オブジェクトには「属性」と「操作」という2つの要素があります。
属性 とは、そのオブジェクトが持っている情報のことです。
操作 とは、そのオブジェクトが持っている機能や動作のことです。
車をオブジェクトとした時、「走行速度」「ナンバー」「メーカー名」などが属性、「アクセル」「ハンドル」「ブレーキ」「クラクション」などが操作にあたります。
クラスとは、Javaでオブジェクトを作成する際のひな型となるもののことです。クラス(設計図)内に「属性」を変数で、「操作」をメソッドで定義します。それをインスタンス化し、インスタンス(実体)を生成することで利用できます。
オブジェクトとクラスに関する各記事は、下記を参照してください。
(1)オブジェクト 記事はこちら
(2)クラス 記事はこちら
問題
それでは、さっそく問題を解いてみましょう!
次のプログラムをコンパイル・実行したときの結果として、正しいものを選びなさい。
public class Cat { String name = "タマ"; static String call = "にゃあ"; void getNameCall() { System.out.println("名前は" + name + "と言います。" + call + "と鳴く!"); } }
A. 「名前はタマと言います。にゃあと鳴く!」表示される。
B. 何も表示されない。
C. 実行時に例外がスローされる。
D. コンパイルエラーが発生する。
E. 実行ができない。
解答
解答 E
解説
今回の問題を解く上で注意すべきポイントは、2点です!
[1]クラスの理解[2]メソッドの理解
これら2点に注目し、設問を見ていきましょう!
本問はCatクラスという、猫に関するクラス定義がされています。
2行目、3行目でnameとcallが変数定義され,初期値としてnameにはタマ・callにはにゃあが設定されています。その後、5行目、6行目ではnameとcallの値を取得し文章を出力するgetNameCallメソッドが定義されています。
public class Cat { String name = "タマ"; //変数定義 初期値「タマ」 static String call = "にゃあ";//変数定義 初期値「にゃあ」 void getNameCall() {//メソッド System.out.println("名前は" + name + "と言います。" + call + "と鳴く!"); } }
一見すると、2・3行目で初期値として設定されたタマ・にゃあが、そのままGetnamecallメソッドにて出力されるプログラムに見えます。しかし、あくまでこのクラスはプログラムの「設計図」です。
2・3行目に関しては、Catクラスにはname・callという「変数」があることを記述しており、タマ・にゃあはそれぞれ初期値として定義されているにすぎません。
5・6行目に関しても同様に、Catクラスにはname・call変数を用いたgetNameCallという「メソッド」が存在することを記述しているだけで、このままの形では実行は行えません。
実際に「設計図」であるクラスを実行し「実体」として出力するには、「インスタンス化」が必要になります。次回以降学習を始めるので、覚えておいてください!
したがって今回の解答は、E. 実行ができない。になります!
次回の内容
今回はオブジェクトとクラスの復習問題を扱いました。
プログラムを書く上で、基礎的な概念ですのできちんと理解しておくようにしてください。
次回は、「設計図」であったクラスを元に作られる「実体」にあたるインスタンスに関して学びます。
はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編
演算子編