Java プログラム

【Javaの基礎知識】メソッドとメソッドの定義について

2020年4月13日

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

独立前は、誰もが不安でいっぱい。近い将来、フリーランスとして独立を考えている方が独立初期に躓かないために「独立前にやるべきことチェックリスト」をご紹介します。 当記事は前編となる「お金まわり編」。全て ...

2

ゲームなどのエンタメ分野での導入が進んでいるVR。言葉自体は耳にしたことがあっても、その意味を詳しく知らないという人も多いのではないでしょうか。また、次世代の新たな技術をビジネスに積極的に活用していく ...

3

フリーランスの確定申告には、青色申告と白色申告の2種類があります。いったいどちらの申告方法を選ぶべきなのでしょうか。 この記事では、青色申告と白色申告、それぞれのメリット・デメリットを把握することでベ ...

4

フリーランスの仕事場は、自宅をはじめとし、カフェや図書館、コワーキングスペースなど自由に選べます。しかし全ての場所で100%集中ができるどうかは、人それぞれです。どのような環境が自身の仕事場として快適 ...

5

フリーランスのITエンジニアとして、一番難しいのは「自己管理」と言えるでしょう。 自分の体調管理はもとより、仕事のスケジュール等すべて自分で管理します。もちろんフリーランスに有給休暇等ありませんから休 ...

-Java プログラム

Copyright© Beエンジニア , 2020 All Rights Reserved.