Java代码编译报错:public class Main相关问题求助
排查Java编译错误:多个public类的问题
嘿,我一眼就看出问题所在啦!你遇到的编译错误完全是Java的基础规则在起作用——咱们来一步步拆解:
问题根源
Java有个严格的规则:一个.java源文件里只能存在一个public类,而且这个public类的名字必须和文件名完全一致(大小写都要匹配)。你现在的代码里同时写了public class Forecast和public class Main两个public类,这直接违反了这个规则,所以Eclipse肯定会报错。
两种可行的解决方案
方案1:拆分到不同文件(推荐)
把两个类分别放到独立的源文件里,这样每个public类都能符合命名规则:
- 创建
Forecast.java,代码如下:
public class Forecast { public int temperature; public int pressure; }
- 创建
Main.java,补全你没写完的方法(比如changeTheSomething),示例代码:
public class Main { // 补全完整的方法定义 public static void changeTheSomething(Forecast forecast) { // 这里写你的业务逻辑,比如修改温度或气压 forecast.temperature += 2; } // 主方法用于测试 public static void main(String[] args) { Forecast weather = new Forecast(); weather.temperature = 23; weather.pressure = 1012; changeTheSomething(weather); System.out.println("修改后的温度:" + weather.temperature); } }
方案2:保留一个public类
如果想把两个类放在同一个文件里,只能保留一个public类(类名必须和文件名一致),另一个去掉public修饰符。比如文件命名为Main.java,代码如下:
// 去掉public,这个类只能在当前包内访问 class Forecast { public int temperature; public int pressure; } public class Main { public static void changeTheSomething(Forecast forecast) { // 你的逻辑代码 } public static void main(String[] args) { Forecast weather = new Forecast(); // 测试代码 } }
额外提醒
另外你之前的代码里changeTheS...是不完整的方法定义,一定要补全方法的名称、参数和方法体,不然也会触发编译错误哦!
内容的提问来源于stack exchange,提问作者JavaJunior
相关产品推荐
相关产品推荐

