m0_62667564 2022-10-29 13:07 采纳率: 84.8%
浏览 43
已结题

用equals 方法比较两个数字的大小

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input1 = scanner.nextInt();
int input2 = scanner.nextInt();
SimpleInteger n1 = new SimpleInteger(input1);
SimpleInteger n2 = new SimpleInteger(input2);
System.out.println("n1's value is "+n1.getValue());
System.out.println("n1 is even? " + n1.isEven());
System.out.println("n1 is odd? " + n1.isOdd());
System.out.println("n1 is prime? " + n1.isPrime());
System.out.println("n1 equals n2? "+n1.equals(n2));
}
}

class SimpleInteger{
private int value;
public int getValue(){
return value;
}
public SimpleInteger(int value){
this.value = value;
}
public boolean isPrime(){
int i;
if(value==1){
return false;
}
else {
for (i = 2; i < value; i++) {
if (value % i == 0)
return false;
}
}
if(i==value){
return true;
}
else{
return false;
}
}
public boolean isEven(){
if(value%2==0)
{
return true;
}
else
{
return false;
}
}
public boolean isOdd(){
if(value%2==0)
{
return false;
}
else
{
return true;
}
}
/*public boolean equals(SimpleInteger n2){

}*/

}
如果equals方法这么写:
public boolean equals(int n2){
if(value == n2){
return true;
}
else{
return false;
}
}
当输入两个相同的数字时也会输出false, 在不改变主函数的情况下应该怎么改,才能正确输出,麻烦帮忙修改一下

  • 写回答

4条回答 默认 最新

  • a5156520 2022-10-29 13:39
    关注

    把equals方法的参数变为SimpleInteger类型即可,因为如果是int类型,就自动调用了Object类的equals方法了, 可以在原来代码的equals加一个打印语句,测试其是否被调用就知道了,修改如下:

    参考链接:
    java小笔记(重写equals)_CHSN的博客-CSDN博客_java重写equals方法

    
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            
            Scanner scanner = new Scanner(System.in);
            int input1 = scanner.nextInt();
            int input2 = scanner.nextInt();
            
            SimpleInteger n1 = new SimpleInteger(input1);
            SimpleInteger n2 = new SimpleInteger(input2);
            
            System.out.println("n1's value is "+n1.getValue());
            System.out.println("n1 is even? " + n1.isEven());
            System.out.println("n1 is odd? " + n1.isOdd());
            System.out.println("n1 is prime? " + n1.isPrime());
            System.out.println("n1 equals n2? "+n1.equals(n2));
        }
    }
    
    class SimpleInteger{
        
        private int value;
        public int getValue(){
            return value;
        }
        public SimpleInteger(int value){
            this.value = value;
        }
        
        public boolean isPrime(){
            int i;
            if(value==1){
                return false;
            }
            else {
                for (i = 2; i < value; i++) {
                    if (value % i == 0)
                        return false;
                    }
            }
            
            if(i==value){
                return true;
            }
            else{
                return false;
            }
        }
        
        public boolean isEven(){
            if(value%2==0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        
        public boolean isOdd(){
            if(value%2==0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        /*public boolean equals(SimpleInteger n2){
        
        }*/
    
    
        public boolean equals(SimpleInteger n2){
            //System.out.println("equals is run!");
            if(value == n2.getValue()){
                return true;
            }
            else{
                return false;
            }
        }
        
    }
    
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月29日

悬赏问题

  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?