Java新手求助:无法在已有类中调用目标方法
问题解决:调用方法时出现未定义错误
你的代码存在几个关键问题:
- 你把
emergencyButtonToggled定义成了内部类,而不是方法,所以main方法里调用时会提示找不到该方法。Java中方法的正确格式是返回类型 方法名(参数列表) { 逻辑代码 },不是类结构。 - else分支里的
break语句无效,当前代码没有循环或switch结构,break只能用在这两种场景下。 - 内部类里的
main方法缺少返回类型(应该是public static void main),但实际上你完全不需要这个内部类的main方法,直接把应急逻辑写成普通方法即可。 - 类名不符合Java规范,类名应首字母大写(比如
EmergencyButton),虽然不影响编译,但建议遵守规范。
修正后的代码:
import java.util.Scanner; public class EmergencyButton { public static void main(String[] args) { Scanner value = new Scanner(System.in); System.out.println("Is the emergency button pressed? (Yes/No)"); String button = value.nextLine(); if (button.equals("Yes")) { System.out.println("The emergency button is pressed."); emergencyButtonToggled(); } else if (button.equals("No")) { System.out.println("Buzzer is not buzzing"); System.out.println("No emergency"); } else { System.out.println("Invalid input, please enter Yes or No"); } value.close(); } // 改成静态方法,因为main是静态方法,直接调用静态方法不需要实例化类 public static void emergencyButtonToggled() { System.out.println("Buzzer is buzzing"); System.out.println("Emergency, Manual Stop"); System.out.println("Emergency, Water Reservoirs empty"); } }
额外说明:
- 把
emergencyButtonToggled改成了静态方法,因为main是静态方法,静态方法可以直接调用同类中的其他静态方法,不需要创建类的实例。 - 优化了else分支的结构,用
else if替代嵌套if,代码更简洁。 - 添加了输入合法性判断,处理用户输入非Yes/No的情况。
- 调用
value.close()关闭Scanner对象,避免资源泄漏。
内容的提问来源于stack exchange,提问作者ohgoditdoesntwork
相关产品推荐
相关产品推荐

