Java の基礎知識

【Javaプログラム】メソッドとメソッドの定義について

メソッドは、フィールドとともにクラスのメンバーと呼ばれます。メソッドとは、クラス内に記述される特定のブロックを指しています。

この記事では、Javaのメソッドに関する解説を行います。

この記事でわかること

  • メソッドとは何か
  • Javaのメソッド定義の基本
  • Javaの特殊なメソッド「mainメソッド」とは何か

メソッドとは?

メソッド(Method)」とは、プログラムにおいて特定の処理をひとまとまりにし名前をつけたものです。メソッド名を指定して呼びだすことで、同じ処理を何度も簡単に呼びだせます。

またメソッドは「引数」を与えることで、内部の処理を変更することもできます。メソッドは「関数」と呼ぶこともあります。メソッドは処理結果を返すものを定義できますし、結果を返さないものも定義できます。

メソッドをうまく定義し使用することは、中級者へのステップアップに繋がります。

かならず理解しましょう。

メソッド定義の基本

メソッドの定義は以下の形が基本となります。

メソッドの書式

[可視性][性的属性] 戻り値の型 メソッド名(引数…) {
  処理;
  :
  return 戻り値;
}

メソッドの可視性

メソッドには可視性という概念があります。

特に、Java言語は以下の可視性の指定が可能です。

メソッドの可視性

  • public:公開
  • protected:部分公開
  • 未指定:より限定的な部分公開
  • private:非公開

これらの可視性を指定する存在を「アクセス修飾子」といいます。この中でもよく使われるのは「public」と「private」です。初心者のうちは、この2つを意識することが重要です。

これらのアクセス修飾子は、「オブジェクト指向プログラミング」のカプセル化を実現する重要な役割をもっています。

アクセス修飾子 クラス内 パッケージ内 サブクラス すべて
public
protected  
修飾子なし    
private      

パブリックメソッドとは?

public」というアクセス修飾子が付けられたメソッドのことを「パブリックメソッド」(public method)といいます。日本語で「公開メソッド」ともいいます。

「パブリックメソッド」は、継承関係の有無に関わらず、全てのクラスから呼びだせるメソッドです。

プライベートメソッドとは?

「private」というアクセス修飾子が付けられたメソッドnことを「プライベートメソッド」(private method)といいます。日本語で「非公開メソッド」ともいいます。

「プライベートメソッド」は、自クラスからのみアクセスできるメソッドです。プライベートメソッドは、ほかのプログラムから呼びだされることが、原則的に不可能になります。

そのため、複雑なプログラムを書く上では、うまくプライベートメソッドとパブリックメソッドを使い分けることが重要です。

静的メソッドと非静的なメソッド

「静的メソッド」とは、「static修飾子」(static)を付けて定義したメソッドのことです。「クラスメソッド」(class method)ともいいます。

対して、「static」が付けられていないメソッドのことを「非静的メソッド」や「インスタンスメソッド」(instance method)といいます。ここでいうスタティックとは、「静的」という意味です。そのため静的メソッドと言うこともあります。

スタティックについての解説は、中級者以降で解説するため詳細は割愛します。とはいえ「静的メソッドから呼びだすメソッドは、同様に静的メソッドでなければならない」というルールがありますので、こちらは覚えておきましょう。

メソッドの引数と戻り値の型

メソッドは「引数」を与えてその内容を処理し、その結果を「戻り値」として返却できます。

引数は以下のように指定します。

戻り値の型 メソッド名(
  引数1の型 引数1の名称,
  引数2の型 引数2の名称,
  …,
  最後の引数の型 最後の引数の名称) {
  :
}

なお、引数がない場合、メソッド定義における丸括弧の中身は空欄になります。

戻り値の型 メソッド名() {
  関数の中身;
  :
}

戻り値の型は、処理した結果を返す際に都合のよい型を1つ指定します。これにはプリミティブ型(基本データ型、int/doubleなど)やクラス(たとえばStringなど)を指定することもできます。

戻り値の型を指定した場合、関数の中に「return 戻り値;」という定義を含めます。この「return」は、指定された位置でメソッドの実行を終了し、値が指定されていた場合、それをメソッドの戻り値として採用します。

もしも戻り値が不要な場合、型として「void」を指定します。戻り値がないため、「return 戻り値;」という定義は不要です。ただし、メソッドの実行を終了させるために戻り値を指定せずに「return;」と書くことは可能です。

mainメソッドとは?

Javaにおいて、mainメソッドは最も重要な存在と言っても過言ではありません。なぜなら、Javaではかならず一つの「mainメソッドが必要である」と定められているからです。

Javaでは、コンパイルされたプログラムを実行する際に、まずmainメソッドを実行します。これを「エントリーポイントを実行する」といい、mainメソッドを「プログラムのエントリーポイント」といいます。

Javaでは、このエントリーポイントは、以下の定義であることが義務付けられます。

public static void main(String[] args) {
  :
}

これによって、「main」というメソッドが定義されます。

これまでのメソッドの詳細を理解していれば、この定義の意味が理解できます。

  • パブリックメソッドである
  • スタティックメソッドである
  • 戻り値がない
  • 引数として「args」という文字列配列を受け取る

mainメソッドはパブリックメソッドなので、ほかのプログラムから呼びだせます。これは、私たち自体がプログラムを実行できるのも「mainメソッドが公開されているから」と言うわけです。

また、引数の「args」というのは、「コマンドライン引数」を処理するために存在しています。コマンドライン引数は、中級以降の内容で解説します。

まとめ

これまでJava入門ではさまざまなサンプルを扱ってきました。しかしこれまでは、あえて「mainメソッド」について解説をしませんでした。

今回の記事を理解した上で、過去の解説を読み直してみると、さらなる理解が可能になるでしょう。

ポイント

  • 「メソッド」とは、プログラムにおいて特定の処理をひとまとまりにし名前をつけたもの
  • その処理を名前を指定して呼びだすことで、同じような処理を簡単に呼びだせる
  • メソッドにはアクセス修飾子やスタティック修飾子を付けられる
  • メソッドには戻り値の型がある場合はその型を、ない場合は「void」と指定する
  • メソッドには引数を半角カンマ(,)で区切って指定できる。ない場合は空欄にできる

よく読まれている記事

1

Shellとは? Shellとは、人間の理解できる言葉を機会へ伝えるプログラムです。 Linux環境でコマンドプロンプト画面を開いているとき、常にShellは起動している状態です。 「Shell」とは ...

2

Linuxは主にサーバー用として利用されるOSです。大規模な基幹システムの開発者、ロボットや家電開発等の組み込み系エンジニア、ネットワーク機器やデータベースに携わるインフラエンジニアは触れることが多い ...

3

プログラミング言語を習得しようと思った時、必ずと言っていいほど候補として挙げられるのが「Java」というプログラミング言語です。 「Java」は、現在日本で最も使われている言語であり、非常に人気のある ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-Java の基礎知識