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

Java创建含min、max、isEven、square方法的类调用报错求助

报错原因

你的isEven方法定义时明确要求接收1个int类型的入参,但是在main方法中调用MyMath.isEven()时没有传入任何参数,实际参数和形式参数的数量不匹配,因此触发编译报错。
另外你当前的代码还存在一个冗余问题:构造方法接收了两个int参数,但没有将参数值保存到类的成员变量中,传入的3和4后续无法被类的方法直接使用。

解决方法

你可以根据自己的需求选择任意一种方案修改:

方案1:调用方法时传入对应参数

不需要修改方法定义,仅修改main方法中的调用逻辑,调用所有方法时按照定义传入对应数量的参数即可,示例:

public static void main(String[] args){
    hw8 MyMath = new hw8(3, 4);
    // 传入要判断是否为偶数的整数,比如判断3就传3
    MyMath.isEven(3);
    // 其他方法调用示例
    MyMath.min(3,4);
    MyMath.max(3,4);
    MyMath.square(4);
}

方案2:改造类结构,保存初始化传入的参数

如果你希望实例化时传入的两个参数可以直接被后续方法复用,不需要每次调用都传参,可以修改类的结构,新增成员变量存储参数,按需调整方法逻辑:

import java.util.*;

public class hw8{
    // 新增成员变量存储初始化传入的两个数
    private int num1;
    private int num2;

    public hw8(int a, int b){
        // 将入参赋值给成员变量
        this.num1 = a;
        this.num2 = b;
    }

    public void min(){
        System.out.println(Math.min(num1, num2));
    }
    public void max(){
        System.out.println(Math.max(num1, num2));
    }
    // 可自行选择判断num1还是num2,这里示例判断num1
    public void isEven(){
        System.out.println(num1 % 2 == 0);
    }
    // 可自行选择计算num1还是num2的平方,这里示例计算num2
    public void square(){
        System.out.println(num2 * num2);
    }

    public static void main(String[] args){
        hw8 MyMath = new hw8(3, 4);
        // 不需要传参直接调用即可
        MyMath.isEven();
        MyMath.min();
        MyMath.max();
        MyMath.square();
    }
}

额外优化建议

  • Java类名建议遵循大驼峰命名规范,将hw8改为Hw8更符合行业通用编码规范
  • 如果方法需要更高的复用性,建议调整为有返回值的形式,比如public boolean isEven(int a),方法内返回判断结果,而不是直接打印结果,方便其他业务逻辑调用该方法的返回值做后续处理。

内容的提问来源于stack exchange,提问作者flopprfr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:36:02