未分類

メソッドの基本

投稿日:

「キャラクター」クラスを作成するときには、キャラクターに関するさまざまな「機能」を、メソッドというしくみでまとめることができます。

メソッドは、フィールドとともにクラスのメンバと呼ばれます。

下記のブロックの中に「モノの機能」をまとめるのです。

「戻り値」や「引数」という耳慣れない用語が使われていますね。これらは、後で説明します。ここでは、おおまかなイメージだけを眺めておくことにしましょう。

メソッドにはいくつかの文をまとめて記述します。これを

メソッドを定義するといいます。

たとえば、次のようなコードがメソッドの定義です。これは「キャラクターの情報を出力する」という機能をまとめたメソッドとなっています。

メソッドを呼び出す

先ほどのshow()メソッドを呼び出すには、次のように記述してください。

Character chara1;    オブジェクトを作成する

chara1 = new Character(); オブジェクトを作成する

chara1.show();      メソッドを呼び出す

main()メソッド内で呼び出すには、オブジェクトをさす変数名にピリオド(.)をつけ、メソッド名と()を記述します。

すると先ほど定義したメソッドの処理がまとめて行えるようになります。

main()メソッド内でCharacterクラスのオブジェクトのshow()メソッドを呼び出しています。この部分が処理されると画面にキャラクターの属性と体力が表示されます。main()メソッドでもう一度show()メソッドを呼び出しているので、再びshow()メソッドの処理が行われます。つまり、

  1. メソッドを呼び出す部分の処理が行われると、
  2. メソッド内部にうつって処理が行われる
  3. メソッド内の処理が終わると、呼び出し元に戻って続きを処理する

フィールドにアクセスする方法

Characterクラスの外にあるmain()メソッドの中で、フィールドを記述したときは、chara1にピリオドをつけて、アクセスしています。(20,21行目)

一方、Characterクラスの内側では、フィールドに何もつけずにアクセスしています。(9,10行目)

これは、クラスの外ではそのフィールドが

変数chara1のさすオブジェクトのフィールド、であることを示さなければならないためです。

これに対して、クラスの中で扱っているフィールドとは、

「その時処理されているオブジェクト自身」のフィールドという意味になっています。

なお、「オブジェクト自身」を表すことを強調して、this.という指定をつけることができます。

System.out.println(“キャラクターの属性は” + this.zokusei + “です。”);

メソッドにアクセスする方法

メソッドもフィールドと同じようにクラスの外では、オブジェクトをさす変数名をつけて、呼び出していました。どのオブジェクトであるのかを特定するためです。

なお、メソッドの呼び出しは、メソッドの定義と同じクラス内でも行うことができます。

CharacterクラスにはshowCharacter()メソッドを定義しました。そして、同じクラスのshow()メソッドを呼び出しています。この時、メソッド名だけを単独で記述しています。

また、メソッドもクラス内では、this.をつけて呼び出すことができます。

16行目  show();→this.show();

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

サンプルイメージ

オーバーライド

新しくメンバを付け加えるように、サブクラスを拡張してきました。サブクラスで新しくメソッドを記述するときには、 スーパークラスとまったく同じメソッド名・引数の数・型をもつメソッドを定義することができる …

サンプルイメージ

論理演算子

これまでいろいろな条件判断文を記述してきました。もっと複雑な条件を書ければ便利な場合があります。 スコアが「Sランク」であり、かつ、ゴールドがあったら・・・ →最強の装備にする このような複雑な条件を …

サンプルイメージ

練習問題(クラスの利用)(前半)

      練習10-1 MarkPrinterMain1~4クラスを実行すると下図の様な実行結果となるようにMarkPrinterクラスを作成してください。 練習10-2 MarkPrinterクラ …

サンプルイメージ

練習問題解答(クラスの機能)

          ここまでは、クラスとその機能を見てきました。次の章では、クラスを実際に活用していく方法を学んでいきましょう。

サンプルイメージ

練習問題(メソッド)解答例

次の章ではクラスのアクセス制限、オーバーロード、コンストラクタについて学んでいきましょう。