java面向对象题 请设计一个具备比较功能的类(例如 员工类, 需要有姓名, 年龄, 薪水三个成员属性需要私有并提供get, set方法, 可以通过构造函数进行初始化,并且按照薪水进行排序)题目有点看不懂!它是要求我根据薪水对什么进行排序啊?求大神帮助,希望写出详细代码!java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重点就是一个“比较”,一个类中包含姓名, 年龄, 薪水三个属性,比较的应该是薪水这个属性,比如定义俩对象,通过get薪水,然后比较他们的大小。 重写一个compare方法。public Class User{private String name;private String id;private Long salary;public void setName(String name) { this.name = name; }public String getName() { return name; }//剩下的一样public boolean compare(long l1,long l2){//写一个比较l1和l2大小的方法。} } 楼主不要听楼上的,他的解答不正确。自己做吧,初学java的孩纸伤不起啊,不想学没必要学这个的。 public boolean compare(long l1,long l2){//写一个比较l1和l2大小的方法。} 工资怎么可能是long类型,一点常识都没!!! 初学的自己先去理解下思想吧class Test { public Test(){ //在这里面赋给变量初值.} private String name ; private int age ; private double money ; //set,get自己补充.}简单给你敲了一个,其余的自己补充吧,可以给你个思路:1.在构造器里面进行初始化,2.用薪水排序就是:姓名 年龄 薪水x 23 2000y 18 1800z 21 1700这样按照薪水的高低排序.最简单的方法,可以用数组对他们进行排序。刚开始都难,慢慢来吧。。加油! 楼主是需要这个意思么?public class Employee { private String userName; private int age; private Double salary; public Employee(String userName, int age, double salary) { this.userName = userName; this.age = age; this.salary = salary; } @Override public String toString() { StringBuilder sb = new StringBuilder(256); sb.append("{userName:").append(userName); sb.append("age:").append(age); sb.append("salary:").append(salary).append("}"); return sb.toString(); }// getter、setter方法 ..........}/** * 根据工资进行升序的 * */public class EmployeeSalaryAscComparator implements Comparator<Employee> { @Override public int compare(Employee o1, Employee o2) { return o1.getSalary().compareTo(o2.getSalary()); } }/** * 测试 * */public class EmployeeTest { private static final Log log = LogFactory.getLog(EmployeeTest.class); @Test public void test() { TreeSet<Employee> employees = new TreeSet<>(new EmployeeSalaryAscComparator()); employees.add(new Employee("test3", 24, 42345.67)); employees.add(new Employee("test1", 21, 12345.67)); employees.add(new Employee("test2", 23, 32345.67)); for (Employee employee : employees) { log.info(employee); } }}执行结果 :{userName:test1age:21salary:12345.67}{userName:test2age:23salary:32345.67}{userName:test3age:24salary:42345.67} 测试代码里TreeSet<Employee> employees = new TreeSet<Employee>(new EmployeeSalaryAscComparator());这么些,写少了 题目的意思是设计一个可以用Collections对List<Employee>排序的类 楼主可以让该对象实现一个Comparable的接口 然后重写那个比较的方法 比较的依据就是工资那个属性没记错的话 原来方法是return 0. 那么你改成return this.salary - other.salary这样的话 你如果对象放在数组里 那就用Arrays.sort()这个方法,如果用TreeSet就可以直接搞定了lz加油TreeSet也可以写个比较器 这个自己看看api 一个小问题 jvm的问题 达人帮我写个bat批处理文件运行jar包 Struts 的web.xml配置问题 怎么实现将windows的文本文件拖放到Jtextarea中呢?? 安装myeclipse时报幻数不匹配请换一张安装盘 有没有人用过 BreakIterator 啊? 要回家了,高兴。散分。随便问,有从1号北京到沈阳的吗? java的帮助在哪?类似msdn的?? 如何设置JBuilder5的栈大小? 求一个低损失压缩图片的方法。 JNI问题
public Class User{
private String name;
private String id;
private Long salary;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
//剩下的一样
public boolean compare(long l1,long l2){
//写一个比较l1和l2大小的方法。
}
}
自己做吧,初学java的孩纸伤不起啊,不想学没必要学这个的。
//写一个比较l1和l2大小的方法。
}
//在这里面赋给变量初值.} private String name ;
private int age ;
private double money ;
//set,get自己补充.
}简单给你敲了一个,其余的自己补充吧,
可以给你个思路:
1.在构造器里面进行初始化,
2.用薪水排序就是:
姓名 年龄 薪水
x 23 2000
y 18 1800
z 21 1700
这样按照薪水的高低排序.最简单的方法,可以用数组对他们进行排序。
刚开始都难,慢慢来吧。。加油!
public class Employee {
private String userName;
private int age;
private Double salary;
public Employee(String userName, int age, double salary) {
this.userName = userName;
this.age = age;
this.salary = salary;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder(256);
sb.append("{userName:").append(userName);
sb.append("age:").append(age);
sb.append("salary:").append(salary).append("}");
return sb.toString();
}
// getter、setter方法
..........
}/**
* 根据工资进行升序的
*
*/
public class EmployeeSalaryAscComparator implements Comparator<Employee> { @Override
public int compare(Employee o1, Employee o2) {
return o1.getSalary().compareTo(o2.getSalary());
}
}
/**
* 测试
*
*/
public class EmployeeTest {
private static final Log log = LogFactory.getLog(EmployeeTest.class);
@Test
public void test() {
TreeSet<Employee> employees = new TreeSet<>(new EmployeeSalaryAscComparator());
employees.add(new Employee("test3", 24, 42345.67));
employees.add(new Employee("test1", 21, 12345.67));
employees.add(new Employee("test2", 23, 32345.67));
for (Employee employee : employees) {
log.info(employee);
}
}
}
执行结果 :
{userName:test1age:21salary:12345.67}
{userName:test2age:23salary:32345.67}
{userName:test3age:24salary:42345.67}
没记错的话 原来方法是return 0. 那么你改成return this.salary - other.salary
这样的话 你如果对象放在数组里 那就用Arrays.sort()这个方法,如果用TreeSet就可以直接搞定了
lz加油TreeSet也可以写个比较器 这个自己看看api