メソッド
このページでは、メソッドの宣言方法、メソッド宣言時に付与できる修飾子について説明します。メソッドの参照方法についてはJavaの道:インスタンスを参照してください。
宣言
クラスには、そのクラスの"状態"と"振る舞い"を定義します。メソッドは、その内クラスの"振る舞い"を定義するものです。
メソッドの宣言は以下の枠内のフォーマットで構成されています。メソッドは宣言部分と本体に分けることができます。宣言部分はフォーマットの「戻り型 メソッド名 (引数型 引数名)」にあたる部分でそのメソッドに対する他の構成要素との関連、属性を記述します。本体はフォーマットの「{ メソッド本体 }」にあたる部分でそのメソッドの実際の処理を記述します。
戻り型 メソッド名 (引数型 引数名) {
メソッド本体
};
以下にメソッドの宣言部分の各要素について説明します。
-
戻り型
メソッドの呼び出し元に値を返す場合、その値の型を記載します。何の値も返さない場合はvoid型を記載します。void show() { //値を返さないため、戻り型はvoid System.out.println("Hello"); } int calculate(int x) { //呼び出し元に返す値の型intを宣言 int answer = x * 10; return answer; //return文で値を返す。 }
-
(引数型 引数名)
メソッド内に値を引き継ぐ必要がある場合記載します。引数型は引き継ぐ値の型、引数名は引き継ぐ値をメソッド内で使用する際の変数名を表します。引き継ぐ値がない場合は単に( )を記載します。void show() { //引き継ぐ値がないため()を記載 System.out.println("Hello"); } //int型の値を変数xで引き継ぎ、メソッド内で使用します。 int calculate(int x) { int answer = x * 10; return answer; }
メソッド宣言時に付与できる修飾子
メソッド宣言時に付与できる修飾子
修飾子 | 説明 |
---|---|
アクセスレベル | アクセスレベルを指定することにより、メソッドを他のクラスから参照できないなどを指定できるようになります。詳細はアクセスレベルを参照してください。 |
static | メソッドがインスタンスメソッドではなく、クラスメソッドであることを表します。クラスメソッドの詳細はstaticを参照してください。 |
abstract | 処理を実装しないメソッド(抽象メソッド)を生成したい時に使用します。詳細はabstractを参照してください。 |
final | finalを使用した場合、そのメソッドはサブクラスでオーバーライドすることができません。詳細はfinalを参照してください。 |
native | C言語など他の言語で記述されたプログラムをJavaプログラム内で使用したい時に使います。使用したいプログラムにnativeを付け宣言します。 |
synchronized | スレッドを複数同時に走らせる際に同じデータに対し複数のメソッドが呼び出される場合があります。そのような場合、安全にメソッドが実行されるためにsynchronizedを使用します。詳細はスレッドの同期化を参照してください。 |
戻り型 | メソッドを実行した結果をメソッド呼び出し元に返すことができます。ここでは返す値のデータ型を指定します。返す値がない場合はvoid型を使用します。戻り型は宣言時の必須項目です。 |
メソッド名 | メソッド名を宣言します。メソッド名は慣例的に小文字から始め、単語の切れ目は大文字を使用します。またメソッド名として動詞がよく使われます。メソッド名は宣言時の必須項目です。 |
(引数型 引数名) | メソッド内に値を引き継ぐ必要がある場合に、引き継ぐ値の引数型、引数名を宣言します。引き継ぐ値がない場合は( )のみを記載します。(引数型 引数名)は宣言時の必須項目です。 |
throws 例外名 | メソッドで何らかの例外をスローする際に使用します。詳細はthrows、throwを参照してください。 |
【例1】メソッドの宣言例です。
//戻り型としてboolean型を返すクラスメソッドmethodAを宣言しています。
static boolean methodA() {
-------------------------
}
//アクセスレベルがpublic(すべてのクラスから参照できる)で、double型の引数d1、d2を持ち、戻り型を持たない(void)メソッドmethodBを宣言しています。
public void methodB(double d1, double d2) {
-------------------------
}
//メソッド本体の実装を持たない抽象メソッド(abstract)で、戻り型がdouble型、引数にdouble型の引数dを持っているメソッドmethodCを宣言しています。
abstract double methodC(double d);
6メソッド