Java エラー
Q&A
解決したいこと
Enjine.java にエラーがでる原因がわからないので、
解決したい。ファイル構成はsrc→test02 → Engine.java Main.java
発生している問題・エラー
Enjine.java
public static void main(String[] args) {
このコードでエラーが出てる。
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
Enjine.java
package test02;
public class Engine {
public static void main(String[] args) {
//エンジン種類
public String driveSystem = "4サイクルエンジン";
//部品数
public int parts = 128;
//現在の排気量(cc)
public int requiredGas = 0;
//最大排気量(cc)
final public int MaxrequiredGas = 360;
//エンジン名称
public String engineName = "TanakaDX";
//エンジンの製品番号
public String productNo = "原型";
//エンジン起動状態
boolean condition = false;
//初期化済みチェック
boolean initializate = false;
//手動で行う初期化メソッド
public void initialization(String tmpProductNo) {
//初期化を実行
productNo = tmpProductNo;
requiredGas = 0;
condition = false;
//初期化が完了したのでフラグをtrueに変更
initializate = true;
System.out.println(engineName + productNo + "のエンジンを初期化");
}
/*
* エンジンを起動するメソッド
*/
public void run() {
//エンジンが初期化済みか確認
//初期化されている場合は起動を試みる
if (initializate) {
//実際の起動内容
System.out.println(engineName + productNo + "の");
System.out.println("エンジンを起動して動かします。");
int startProbability = new java.util.Random().nextInt(100) + 1;
if (startProbability >= 5) {
condition = true;
System.out.println("エンジンの起動に成功しました。");
conditionCheck(startProbability);
} else {
System.out.println("エンジンの起動に失敗しました");
}
//エンジンの起動状態を確認
//起動できている場合は排気ガスを出すように処理する。
//起動できていない場合は再度起動をかける
if (condition) {
requiredGas = MaxrequiredGas;
} else {
System.out.println("再度エンジンを起動します。");
startProbability = new java.util.Random().nextInt(100) + 1;
if (startProbability >= 5) {
condition = true;
requiredGas = MaxrequiredGas;
System.out.println("エンジンの起動に成功しました。");
conditionCheck(startProbability);
} else {
System.out.println("エンジンの起動に失敗しました");
}
}
} else {
//エンジンの初期化がされていない時に実行する処理
System.out.println("エンジンは初期化されていません。");
System.out.println("初期化を行ってから起動してください。");
}
System.out.println();
}
//エンジンの状態を確認するためのメソッド
public void conditionCheck(int startProbability) {
if (condition && startProbability >= 90) {
System.out.println("エンジンは最高の状態で起動しています。");
} else if (condition && startProbability >= 20) {
System.out.println("エンジンは良好です。");
} else if (condition) {
System.out.println("なんとか起動できました");
} else if (condition != true) {
System.out.println("エンジンは稼働していません");
} else {
System.out.println("起動時に予期せぬ動作が発生しています");
}
}
//エンジンの状態を確認するためのメソッド
public void conditionCheck(boolean condition,boolean initializate) {
System.out.println(engineName + productNo + "の状態を確認します");
if(initializate && condition ) {
System.out.println("エンジンは起動済みです。");
} else if(initializate) {
System.out.println("エンジンは未起動です");
} else if(initializate != true) {
System.out.println("初期化が完了していません");
}
System.out.println();
}
//エンジンの名称確認メソッド
public void nameCheck() {
System.out.println("このエンジンは" + engineName + "です");
System.out.println("個体番号は" + productNo + "です");
}
}
Main.java
package test02;
public class Main {
public static void main(String[] args) {
// エンジンAからエンジンDまで、同じ種類だが違うエンジン個体
Engine engineA = new Engine();
Engine engineB = new Engine();
Engine engineC = new Engine();
Engine engineD = new Engine();
// 各エンジンの動作確認
engineA.run(); // 初期化せずに実行
engineB.initialization("1号機");
engineB.run();
engineC.initialization("2号機");
engineC.run();
engineD.initialization("3号機");
engineD.run();
// 各エンジンの起動状態を確認
engineA.conditionCheck(engineA.initializate, engineA.condition);
engineB.conditionCheck(engineB.initializate, engineB.condition);
engineC.conditionCheck(engineC.initializate, engineC.condition);
engineD.conditionCheck(engineD.initializate, engineD.condition);
}
}
自分で試したこと
Engine.javaに public static void main(String[] args) {
を削除するとエラーがなくなる。
原因は不明。
0