1、java接口与实现接口的类实验报告实验报告课程名称面向对象程序设计实验名称实验六、接口与实现接口的类日期2018/4/29学生学号姓名班级实验目的:通过本次实验, 要求学生能进一步掌握接口、 java.lang 包中的基础类库和java.util 包中的工具类库的使用方法。实验条件:电脑一台、能上网查阅资料。1. 定义 Person 类,包含 name(姓名)、birthday (出生日期) 、idCard (身份证号)、 sex (性别)、 age( 年龄 ) 等基本信息,通过使用 Comparator 接口实验Person 类可以按姓名、年龄、出生日期等多种比较规则进行排序。源代码:pac
2、kage person;publicclassPerson Stringname;StringidCard;Stringbirthday;charsex ;intage ;publicPerson() publicPerson(Stringname, StringidCard , Stringbirthday , char sex , int age ) super();this. name =name;this. idCard= idCard ;this. birthday=birthday ;this. sex=sex ;this. age=age ;精选文库package person;
3、import java.util.Comparator;public class CompareName implements ComparatorOverridepublic int compare(Person p1, Person p2 ) /TODO 自动生成的方法存根return p1 . pareTo( p2 . name);package person;import java.util.Comparator;public class CompareBirthday implements ComparatorOverridepublic int compare(Person p1,
4、 Person p2 ) /TODO 自动生成的方法存根return p1 . birthday .compareTo( p2 . birthday );package person;import java.util.Comparator;public class CompareAge implements ComparatorSuppressWarnings ( deprecation )Overridepublic int compare(Person p1, Person p2 ) /TODO 自动生成的方法存根return new Integer( p1 . age ).compare
5、To( new Integer( p2 . age); 2精选文库package person;import java.util.Arrays;public class PersonText public static void main(String args ) /TODO 自动生成的方法存根int n=5;Personperson =new Personn;person0=new Person(张三,4569,1996年6月6日 , 男 , 22);person1=new Person(李四,1234,1995年4月3日 , 男 , 23);person2=new Person(王五,2
6、589,1997年3月5日 , 男 , 21);person3=new Person(赵丽,3698,1998年2月5日 , 女 , 20);person4=new Person(宋月,5869,1998年1月1日 , 女 , 20);System.out .println( 原来顺序为 : );for( inti =0; i n ; i +) System. out.println(姓名 :+person i . name+性别 :+person i . sex +年龄 :+person i .age +生日 :+person i .birthday);System.out .println
7、(n按姓名排序后顺序为:);Arrays.sort ( person, new CompareName();for( inti =0; i n ; i +) System. out.println(姓名:+person i .name+性别 :+person i .sex +年龄 :+person i .age +生日 :+person i .birthday);System.out .println(n按年龄排序后顺序为:);Arrays.sort ( person, new CompareAge();for( inti =0; i n ; i +) System. out.println(
8、姓名:+person i .name+性别 :+person i .sex +年龄 :+person i .age +生日 :+person i .birthday);System.out .println(n按生日排序后顺序为:);Arrays.sort ( person, new CompareBirthday();for( inti =0; i n ; i +) System. out.println(姓名:+person i .name+性别 :+person i .sex +年龄 :+person i .age +生日 :+person i .birthday); 3精选文库实验结果
9、:2. 首先定义基本几何图形接口(IShape ),然后定义 IShape 的实现类 Circle(圆形 ) 、Square(正方形) 和 Triangle(三角形 ) 。要求计算各种图形的面积和周长。( 提示 : 求三角形的面积用海伦公式:SL*(La) * (L b) * (L c) ,其中 a,b,c是三角形的边长, L=(a+b+c)/2,即周长的一半。)源代码:package jiekoushape; 4精选文库public interface IShape public double area();public double length();package jiekoushape
10、;public class Circle implements IShape private String name;private double r ;public Circle(String name, double r ) super ();this . name = name;this . r = r ;public String getName() return name;public void setName(String name) this . name = name;public double getR() return r ;public void setR( double
11、 r ) this . r = r ; 5精选文库Overridepublic double area() /TODO 自动生成的方法存根return Math. PI *Math. pow( r , 2);Overridepublic double length() /TODO 自动生成的方法存根return Math. PI * r *2;Overridepublic String toString() /TODO 自动生成的方法存根return name+ 周长是: +length()+ , + 面积是: +area();package jiekoushape;public class
12、Square implements IShape private String name;private double a;public Square(String name, double a) super ();this . name = name;this . a = a; 6a* a;精选文库public String getName() return name;public void setName(String name) this . name = name;public double getA() return a;public void setA( double a) thi
13、s . a = a;Overridepublic double area() /TODO 自动生成的方法存根returnOverridepublic double length() /TODO 自动生成的方法存根return 4* a;Override 7精选文库public String toString() /TODO 自动生成的方法存根return name+ 周长是: +length()+ , + 面积是: +area();package jiekoushape;public class Triangle implements IShape private String name;pr
14、ivate double a;private double b;private double c ;publicTriangle(Stringname, double a, double b, double c) super ();this. name = name;this. a =a;this. b =b;this. c =c;public String getName() return name;public void setName(String name) this . name = name;public double getA() return a; 8精选文库public vo
15、id setA( double a) this . a = a;public double getB() return b;public void setB( double b) this . b = b;public double getC() return c;public void setC( double c) this . c = c;public double area() /TODO Auto-generated method stubdouble l =( a +b+c )/2;return Math. sqrt ( l *( l - a)*( l - b)*( l - c);
16、public double length() /TODO Auto-generated method stubreturn a+b+ c ; 9精选文库Overridepublic String toString() /TODO 自动生成的方法存根return name+ 周长是: +length()+ , + 面积是: +area();package jiekoushape;public class DemoIShape public static void main(String args ) /TODO 自动生成的方法存根IShapeshape =null;shape =new Circ
17、le( 圆形 ,3);System.out .println(shape.toString();shape =new Square(正方形 ,4);System.out .println(shape.toString();shape =new Triangle( 三角形 ,3,4,5);System.out .println(shape.toString(); 10精选文库实验结果:实验总结(结论或问题分析) :本次实验,主要是对接口、 java.lang 包中的基础类库和 java.util 包中的工具类库的使用,其中最难得就是使用 Comparator 对 Person 类进行排序,通过查阅资料了解了 Comparator 如何使用,受益匪浅。实验成绩 任课教师签名 11
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2