Java はじめて14 〜クラスの作り方〜

今回は、クラスの作り方をやります。以前似たようなことをやっていますが、違う視点で記載します。

クラスの作り方

とりあえずは、構文(書き方)を記載します。

public クラス名 {
   // フィールド変数
   public String  firstName;
   public int age;
   // これは外部から参照できない
   private int zako;
   /**
    * JavaDoc部分
    */
   public static void main(String[] args) {
       // メインメソッド(クラスのメンバメソッドではない)
   }
   /** JavaDoc */
   public void menberMethod() {
       // メンバーメソッド(newすると使える)
   }
}

簡単に書くと、上のように書きます。

インスタンス化

単純に「new」することです。この「new」を行うとクラスの中の「メンバ」が使用可能になります。
具体的には、以下の通りです。上のコードを参考に記載します。

インスタンス化不要

メインメソッドがインスタンス化しなくても使用できます。
本当は「static」がついているので「静的メソッド」とか呼ばれるメソッドですが、後々にこの部分は記載します。

インスタンス化必要

メンバXXXはインスタンス化が必要です。具体的には上のフィールド変数、メンバーメソッドはインスタンス化しないと使用できません。「なんでか」って?

インスタンス化することで、クラスがただの「型」だったのがインスタンス(メモリ領域を確保)して、フィールド変数、メンバメソッドを使用するためのメモリ領域を確保、インスタンスとしてクラスを1つ生成するので、使用可能になります、。。

わかりやすく

あるウェブサーバーでユーザーがログインする時のケースで考えます。
この時に、ユーザークラスは「ログイン」する前はインスタンスがありませんが、ログインする時に、ユーザーの情報をDBから取得し、インスタン化してデータをクラスにセットします。
これは、ユーザーがログインした文だけ(つまりユーザーの数だけ)インスタンスが生成されます。

問題

  1. メインメソッドを持つ、クラス「Yusha」を作成し、「Hello World」をコンソールに出力するクラスを作成してください。

  2. 上で作成したクラスに「kogeki()」メソッドを追加して、同様にコンソールに「勇者の攻撃!はぐれプログラマに8のダメージ。」と出力してください。