Java はじめて15 〜クラス型変数の使い方〜

Javaで作成したクラスを使う方法を記載します。クラスの作成は、以下のようにコードを書くと作れます。今回の内容はクラス名 変数名 = null;のように使用するときの使用するときの話です。

クラス定義

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

クラス変数の使い方

今回は、作成したクラスの中にメインメソッドを作り、自分のクラスを変数に代入して使用します。
下にサンプルコードを示します。

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

シンプルにこんな形でコードを作成しました。
「書き方」と同じ構成なのでわかりやすいと思いますが、いかがでしょうか?細かい説明は省きますが、メインメソッドの場合は、クラスをnewして使用しないとクラス内のメソッドを使用することができません。

クラスからクラスを呼ぶ

上のコードともう1つ作成して見ます。

public SecondSampleCls {
   // フィールド変数
   public String  firstName;
   public int age;
   // これは外部から参照できない
   private int zako;

/** JavaDoc */
   public void secondMethod() {
       // メンバーメソッド(newすると使える)
       System.out.rintln("Hello MemberMethod!);
   }
}

はじめのクラスに「メインメソッド」がないだけの同じうようなクラスです。
そして、はじめのクラスをちょっと修正します。

public SampleCls {
   // フィールド変数
   public String  firstName;
   public int age;
   // これは外部から参照できない
   private int zako;
   /**
    * JavaDoc部分
    */
   public static void main(String[] args) {
       // メインメソッド(クラスのメンバメソッドではない)
       SampleCls main = new SampleCls();
       main.menberMethod();
       SecondSampleCls second = new SecondSampleCls();
       second.sendMethod();
   }
   /** JavaDoc */
   public void sendMethod() {
       // メンバーメソッド(newすると使える)
       System.out.rintln("This is SecondMethod!);
   }
}

このような形でメインメソッドから他の作成したクラスを呼び出します。当然java.lang.XXXのようなクラスもこれと同じようにメソッドを呼び出し使用することができます。

例えばいいかのコードはjava.lang.Stringクラスの「equals()」を使用しています。

public static void main(String[] args) {
   String str = "test";
   if ("test".equals(str) {
      System.out.println("testです");
   } else {
      System.out.println("testではありません");
   }
}

「"(ダブルクォーテーション)」で囲った文字はStringクラスとみなされます。

こんな感じでしょうか?

でわでわ。。。