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

クラス名 変数名 = new クラス名 ( ) ;
Mainクラスのなかに「Shainクラス」のインスタンスを生成すると以下のようになります。(※変数名を「 s 」にしました)
public class Main {
public static void main (String[ ] args) {
Shain s = new Shain ( ) ; ← Shain クラスからインスタンスを生成
}
}
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 + " を雇用しました!") ;
}
}
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になってしまった" ) ;
}
}
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( ) ; ← 休憩
}
}
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になってしまった
社員Aは、営業をした!
能力値が5上昇した
社員Aは、8秒間デスクワークした!
能力値が8上昇した
社員Aは、休憩をした!
能力値が113から0になってしまった
これで、「Main クラス」を使って「Shain クラス」を呼び出してプログラムを実行させることができました。