会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132384个问题
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 346楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 347楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 348楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 352楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 354楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 357楼

1.遇到的问题:

if(this.age<man.age())和if(this.age>man.age())这两行代码在man.age()那里报错,提示
Method call expected不知道问题出在哪边,我在成员变量前加个private然后用man.getAge()就
没问题.

2.代码区
package it.bzcxy;

import java.util.Arrays;

/*
对某个类的对象之间做比较,就需要实现Comparable 接口。接口中只有一个方法 compareTo,这个方法定义了对象之间的比较规则。
依据这个“比较规则”,我们就能对 所有对象实现排序。方法中,将当前对象和obj这个对象进行比较,如果大于返回1,等于返回 0,
小于返 回-1.等于返回0。集合中的元素两两进行比较,通过正数和负数决定谁前谁后,也就是升序降序
 */
public class DemoComparable {
    public static void main(String[] args) {
        //静态初始化不可以拆分写法
        ComparableMan[] man = {new ComparableMan("陈X", 22),
                new ComparableMan("陈X祥", 55),
                new ComparableMan("孙X琴", 54),
                new ComparableMan("陈X慧", 30)
        };
        Arrays.sort(man);//对数组进行排序,根据compareTO重写的比较规则进行排序
        System.out.println(Arrays.toString(man));
    }
}

class ComparableMan implements Comparable{
      String name;
      int age;

     //重写compare接口compareTo的比较规则,对对象进行排序
    @Override
    public int compareTo(Object o) {
        ComparableMan man=(ComparableMan)o;
        if(this.age<man.age()){
            return -1;
        }
        if(this.age>man.age()){
            return 1;
        }
        return 0;
    }

    @Override
    public String toString() {
        //重写toString方法打印对象的姓名属性
        return this.name;
    }

    public ComparableMan(){};

    public ComparableMan(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

报错截图:

image.png

JAVA 全系列/第一阶段:JAVA 快速入门/数组和数据存储 359楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637