Oracle Java SE8 Silver 試験範囲その6-メソッドとカプセル化

Java Silver

公開日:2018年3月27日

このページでは、Oracle Java SE8 Silverの試験範囲のうち、「メソッドとカプセル化」について概要を説明します。

1.引数と戻り値を使用したメソッド理解

メソッドは、そのクラス上で実装させる動作や振る舞いを表現するために使用します。メソッドは「[修飾子]戻り値の型 メソッド名(引数リスト)」という形で記述します。

引数には、全く設定しなくてもよいし、2個以上の引数を設定することもできます。この引数をメソッドに引き渡して動作させ、結果を戻り値として受け取ります。

戻り値を受け取る場合には、戻り値の型を記入します。受け取らない場合には、戻り値の型には「void」と記述します。

また、戻り値を受け取る場合には、メソッド内に「return 戻り値」という形を記述します。

2.オーバーロード

「オーバーロード」とは、同じ名前のメソッド名やコンストラクタ名を定義できることを表す言葉です。

メソッドやコンストラクタの名前が同じであっても引数の並び、データ型または種類が異なれば、オーバーロードとしてそのメソッドやコンストラクタは使用できます。コンパイルエラーにはなりません。

3.staticキーワード

変数宣言やメソッド記述の際に、staticを付すことでstatic変数やstaticメソッドとして使用することができます。

staticを付すことで、インスタンス変数やインスタンスメソッドとは異なる動作を行わせることができます。

staticを用いると、変数はインスタンス化したそれぞれの場所に値を格納するのではなく、1つの場所に格納され、インスタンス変数とは異なる値を取り扱うことができます。

また、staticメソッドはstaticな変数を引数として扱うことができます。

4.コンストラクタ

「コンストラクタ」とは、インスタンス化されたときに最初に呼び出される処理を記述する際に使用します。

コンストラクタは、「[修飾子]コンストラクタ名(引数リスト){}」という形で記述します。引数は複数記述できますし、記述しないことも可能です。

5.アクセス修飾子の理解

「アクセス修飾子」とは、クラスやコンストラクタ、変数やメソッドに付すもので、他のクラスや継承したサブクラスからアクセスを許可するかどうかを設定するために使用するものです。

アクセス修飾子の種類には、「public」「protected」「private」「何も付さない」があります。例えば、publicを付すと、他のパッケージのクラスからでもアクセスすることができます。

6.カプセル化

「カプセル化」とは、変数とメソッドを一体化させて表現することをいいます。

Javaのカプセル化の原則は、変数はprivateを付して、他のクラスからのアクセスを制限し、メソッドはpublic指定することで、他のクラスからのアクセスを許可します。このようなアクセス修飾子の設定によって、変数はデータを秘匿することができます。他のクラスから変数を取得する場合には、メソッド経由で取得するようにメソッドに記述します。

7.基本データ型変数と参照型変数をメソッド引数とした場合のプログラム動作の違い

メソッドの引数には、基本データ型と参照型の両方とも使用することができます。

引数にどちらのデータ型を使用したかによって、戻り値として受け取る値は異なります。

基本データ型を引数に設定した場合には、メソッドは値のコピーを引数として受け取ります。これに対して、参照型を引数に設定した場合には、値ではなく、値が格納されている場所(オブジェクト)を引数として受け取ります。この違いによって、結果として返ってくる戻り値が異なります。