java面向对象题请设计一个具备比较功能的类(例如 员工类, 需要有姓名, 年龄, 薪水三个成员属性需要私有并
java面向对象题
请设计一个具备比较功能的类(例如 员工类, 需要有姓名, 年龄, 薪水三个成员属性需要私有并提供get, set方法, 可以通过构造函数进行初始化,并且按照薪水进行排序)
题目有点看不懂!它是要求我根据薪水对什么进行排序啊?
求大神帮助,希望写出详细代码!
初学的自己先去理解下思想吧。。。
class Test {
public Test(){
//在这里面赋给变量初值.
}
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}
[解决办法]
测试代码里
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
