【Java 基礎知識】 クラスを統括する「Main クラス」を作成しよう

■ インスタンスを生成しよう

前の【Java 基礎知識】では、クラスの作成方法について学びましたね。
まずは、前回作成した雛型である「Shainクラス」からインスタンスを生成してみましょう!

インスタンスの生成インスタンスの生成
   クラス名 変数名 = new クラス名 ( ) ;

Mainクラスのなかに「Shainクラス」のインスタンスを生成すると以下のようになります。(※変数名を「 s 」にしました)

public class Main {
 public static void main (String[ ] args) {
  Shain s = new Shain ( ) ; ← Shain クラスからインスタンスを生成
 }
}

これで、「社員 s 」というインスタンスができました。


しかし、これでは名前も能力値もないものができてしまうので、社員 s のフィールドに値を与える必要があります。

フィールドに値を代入フィールドに値を代入   変数名. フィールド名 = 値 ;

public class Main {
 public static void main (String[ ] args) {
  Shain s = new Shain ( ) ;
  s.name = " 社員A " ; ← 変数 s の name に代入
  s.value = 100 ; ← 変数 s の value に代入
  System.out.println( " 新入社員 " + s.name + " を雇用しました!") ;
 }
}


「社員 s 」のインスタンスが完成です!ヽ(*´∀`)ノ

プログラムが複雑化してくると、同一クラスから生成された複数のインスタンスに値を代入するのが面倒になってきます。そんなときに便利な、値を自動的に代入してくれるコンストラクタというものもあります。

コンストラクタって何?



■ メソッドの呼び出し

では実際に、今回作成した社員に指示を出してみましょう!

前回作成した「Shainクラス」は下のようにプログラムしましたね。

public class Shain {
 String name ;
 int value ;
 void eigyou( ) { // 営業メソッド
  this.value + = 5 ; ← 能力値を5上昇させる
  System.out.println ( this.name + "は、営業をした!" ) ;
  System.out.println ( 能力値が5上昇した" ) ;
 }
 void desk(int sec) { // デスクワークメソッド
  this.value + = sec ; ← 毎秒、能力値を1上昇
  System.out.println ( this.name + "は、" + sec + 秒間デスクワークした!" ) ;
  System.out.println ( "能力値が" + sec + "上昇した" ) ;
 }
 void rest { // 休憩メソッド
  this.value = 0 ; ← 休憩すると能力値が0になる
  System.out.println ( this.name + "は、休憩をした!" ) ;
  System.out.println ( "能力値が" + this.value + "から0になってしまった" ) ;
 }
}


この「Shainクラス」を「Mainクラス」で呼び出したプログラムを作成してみます。

メソッドの呼び出しメソッドの呼び出し   変数名.メソッド名 ( ) ;

public class Main {
 public static void main (String[ ] args) {
  Shain s = new Shain ( ) ; ← 社員を生成
  s.name = " 社員A " ;
  s.value = 100 ;
  System.out.println( " 新入社員、 " + s.name + " を雇用しました!") ;
  // ここから「社員メソッド」の呼び出し
  s.eigyou( ) ; ← 営業
  s.desk(8) ; ← 8秒間デスクワーク
  s.rest( ) ; ← 休憩
 }
}




このコードを実行すると・・・

メインクラス実行

実行結果

新入社員、社員Aを雇用しました!
社員Aは、営業をした!
能力値が5上昇した
社員Aは、8秒間デスクワークした!
能力値が8上昇した
社員Aは、休憩をした!
能力値が113から0になってしまった


これで、「Main クラス」を使って「Shain クラス」を呼び出してプログラムを実行させることができました。







ひとり言アドバイス

Java 基礎