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

メソッドは、フィールドとともにクラスのメンバと呼ばれます。
下記のブロックの中に「モノの機能」をまとめるのです。

「戻り値」や「引数」という耳慣れない用語が使われていますね。これらは、後で説明します。ここでは、おおまかなイメージだけを眺めておくことにしましょう。
メソッドにはいくつかの文をまとめて記述します。これを
メソッドを定義するといいます。
たとえば、次のようなコードがメソッドの定義です。これは「キャラクターの情報を出力する」という機能をまとめたメソッドとなっています。

メソッドを呼び出す
先ほどのshow()メソッドを呼び出すには、次のように記述してください。
Character chara1; オブジェクトを作成する
chara1 = new Character(); オブジェクトを作成する
chara1.show(); メソッドを呼び出す
main()メソッド内で呼び出すには、オブジェクトをさす変数名にピリオド(.)をつけ、メソッド名と()を記述します。
すると先ほど定義したメソッドの処理がまとめて行えるようになります。

main()メソッド内でCharacterクラスのオブジェクトのshow()メソッドを呼び出しています。この部分が処理されると画面にキャラクターの属性と体力が表示されます。main()メソッドでもう一度show()メソッドを呼び出しているので、再びshow()メソッドの処理が行われます。つまり、
- メソッドを呼び出す部分の処理が行われると、
- メソッド内部にうつって処理が行われる
- メソッド内の処理が終わると、呼び出し元に戻って続きを処理する
フィールドにアクセスする方法
Characterクラスの外にあるmain()メソッドの中で、フィールドを記述したときは、chara1にピリオドをつけて、アクセスしています。(20,21行目)
一方、Characterクラスの内側では、フィールドに何もつけずにアクセスしています。(9,10行目)
これは、クラスの外ではそのフィールドが
変数chara1のさすオブジェクトのフィールド、であることを示さなければならないためです。
これに対して、クラスの中で扱っているフィールドとは、
「その時処理されているオブジェクト自身」のフィールドという意味になっています。
なお、「オブジェクト自身」を表すことを強調して、this.という指定をつけることができます。
System.out.println(“キャラクターの属性は” + this.zokusei + “です。”);
メソッドにアクセスする方法
メソッドもフィールドと同じようにクラスの外では、オブジェクトをさす変数名をつけて、呼び出していました。どのオブジェクトであるのかを特定するためです。
なお、メソッドの呼び出しは、メソッドの定義と同じクラス内でも行うことができます。

CharacterクラスにはshowCharacter()メソッドを定義しました。そして、同じクラスのshow()メソッドを呼び出しています。この時、メソッド名だけを単独で記述しています。
また、メソッドもクラス内では、this.をつけて呼び出すことができます。
16行目 show();→this.show();