You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码编译报错:public class Main相关问题求助

排查Java编译错误:多个public类的问题

嘿,我一眼就看出问题所在啦!你遇到的编译错误完全是Java的基础规则在起作用——咱们来一步步拆解:

问题根源

Java有个严格的规则:一个.java源文件里只能存在一个public类,而且这个public类的名字必须和文件名完全一致(大小写都要匹配)。你现在的代码里同时写了public class Forecast和public class Main两个public类,这直接违反了这个规则,所以Eclipse肯定会报错。

两种可行的解决方案

方案1:拆分到不同文件(推荐)

把两个类分别放到独立的源文件里,这样每个public类都能符合命名规则:

  1. 创建Forecast.java,代码如下:
public class Forecast { 
    public int temperature; 
    public int pressure; 
}
  1. 创建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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:44:22