1、实验四接口与实现接口的类实验报告课程名称面向对象程序设计实验名称实验四、接口与实现接口的类日期2017/10/30学生学号姓名班级B150404实验目的: 通过本次实验,要求学生能进一步掌握接口、java.lang包中的基础类库和java.util包中的工具类库的使用方法。实验条件: 电脑一台、能上网查阅资料。1.定义Person类,包含name(姓名)、birthday(出生日期)、idCard(身份证号)、sex(性别)、age(年龄)等基本信息,通过使用Comparator接口实验Person类可以按姓名、年龄、出生日期等多种比较规则进行排序。源代码:package shiyansi;i
2、mport java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Comparator;import java.util.Date;public class Person String name; int age; char sex; Date birthday; String idCard; public String getName() return name; public void setName(String name) this.name =
3、name; public int getAge() return age; public void setAge(int age) this.age = age; public char getSex() return sex; public void setSex(char sex) this.sex = sex; public Date getBirthday() return birthday; public void setBirthday(Date birthday) this.birthday = birthday; public String getIdCard() return
4、 idCard; public void setIdCard(String idCard) this.idCard = idCard; public Person(String name, int age, char sex, Date birthday, String idCard) super(); this.name = name; this.age = age; this.sex = sex; this.birthday = birthday; this.idCard = idCard; Override public String toString() / TODO Auto-gen
5、erated method stub SimpleDateFormat sd = new SimpleDateFormat(yyyy年MM月dd日); String strbirthday = sd.format(birthday); return String.format(姓名:%s,年龄:%d,出生日期:%s, name, age, strbirthday); public static void sort(ArrayList persons, Comparator rule, int direction) for (int i = 0; i persons.size() - 1; i+
6、) for (int j = 0; j 0) Person tmp = persons.get(j); persons.set(j, persons.get(j + 1); persons.set(j + 1, tmp); break; case 1:/ 降序 if (pare(persons.get(j), persons.get(j + 1) 0) Person tmp = persons.get(j); persons.set(j, persons.get(j + 1); persons.set(j + 1, tmp); break; public static void main(St
7、ring args) ArrayList persons = new ArrayList(); Calendar calendar = Calendar.getInstance(); calendar.set(2003, 5, 3); Date birth = calendar.getTime(); Person person = new Person(liuyuxiao, 20, 女, birth, 3878545); persons.add(person); calendar.set(2003, 5, 12); birth = calendar.getTime(); person = ne
8、w Person(yuzhen , 20, 男, birth, 385657); persons.add(person); calendar.set(2003, 2, 1); birth = calendar.getTime(); person = new Person(zhenqian , 34, 男, birth, 235ffgh); persons.add(person); System.out.println(排序之前的顺序:); for (Person item : persons) System.out.println(item.toString(); / 排序 Comparato
9、r rule = new CompareName(); sort(persons, rule, 0); System.out.println(按姓名排序的集合:); for (Person item : persons) System.out.println(item.toString(); rule = new CompareAge(); sort(persons, rule, 1); System.out.println(按年龄排序的集合:); for (Person item : persons) System.out.println(item.toString(); rule = ne
10、w CompareBirthday(); sort(persons, rule, 0); System.out.println(按出生日期排序的集合:); for (Person item : persons) System.out.println(item.toString(); rule = new CompareBirthdayAndAge(); sort(persons, rule, 0); System.out.println(按出生日期和年龄排序的集合:); for (Person item : persons) System.out.println(item.toString()
11、; class CompareName implements Comparator Override public int compare(Person P1, Person P2) / TODO Auto-generated method stub return P1.getName().compareTo(P2.getName(); class CompareAge implements Comparator Override public int compare(Person P1, Person P2) / TODO Auto-generated method stub return
12、P1.getAge() - P2.getAge(); class CompareBirthday implements Comparator Override public int compare(Person P1, Person P2) / TODO Auto-generated method stub return P1.getBirthday().compareTo(P2.getBirthday(); class CompareBirthdayAndAge implements Comparator Override public int compare(Person P1, Person P2) / TODO Auto-generated method stub if (P1.getAge() = P2.getAge() return P1.getBirthday().compareTo(P2.getBirthday(); else return P1.getAge() - P2.getAge(); 实验结果:2.首先定义基本几何图形接口(IShape),然后定义IShape的实现类Circle(圆形)、Square(正方形)和Triangle(三角形)。要求计算各种图形的面积和周长。(提示:求三角形的面积用海伦公式:,其中a,b,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1