A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 倪杭乘 中级黑马   /  2012-5-9 13:24  /  1899 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 倪杭乘 于 2012-5-9 13:26 编辑

程序比较长,直接看后面的就行,实现comparable接口,覆盖compareTo方法中
  1. public class Student implements Comparable<Student>{
  2.         private String name;
  3.         private int ch,en,ma,sum;
  4.         public Student(String name, int ch, int en, int ma) {
  5.                 super();
  6.                 this.name = name;
  7.                 this.ch = ch;
  8.                 this.en = en;
  9.                 this.ma = ma;
  10.                 sum = ch+en+ma;
  11.         }
  12.         public String getName() {
  13.                 return name;
  14.         }
  15.         public void setName(String name) {
  16.                 this.name = name;
  17.         }
  18.         public int getCh() {
  19.                 return ch;
  20.         }
  21.         public void setCh(int ch) {
  22.                 this.ch = ch;
  23.         }
  24.         public int getEn() {
  25.                 return en;
  26.         }
  27.         public void setEn(int en) {
  28.                 this.en = en;
  29.         }
  30.         public int getMa() {
  31.                 return ma;
  32.         }
  33.         public void setMa(int ma) {
  34.                 this.ma = ma;
  35.         }
  36.         public int getSum() {
  37.                 return sum;
  38.         }
  39.         public void setSum(int sum) {
  40.                 this.sum = sum;
  41.         }
  42.         @Override
  43.         public int compareTo(Student o) {
  44.                
  45.                 int temp = sum-o.sum;
  46.                 return temp==0?o.name.compareTo(name):temp;
  47.         }
  48.         
  49. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
compareTo中传入o对象,已经在o对象中封装了私有变量sum,为什么还能通过o.sum方法,如果o中有私有方法也能通过o直接调用,这是为什么
回复 使用道具 举报
没看你上面的代码 首先建议你在写本类中的变量的时候在前面加上this关键字这样有助于代码的可读性
您的compareTo方法写的没错首先判断总分的大小如果一样再去判断姓名的码表的大小 我觉得没错

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
所有变量在类本体中是可以直接被调用的,如果是通过外部类或者包外的类调用私有变量则需要添加set  get方法

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马