资源描述:
《实验三 面向对象程序设计的继承、多态等特性的练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、信息科学与工程学院《Java程序设计》上机实验报告专业班级姓名学号实验时间指导教师程骅成绩实验名称实验三面向对象程序设计的继承、多态等特性的练习实验目的1)掌握类的继承机制。2)熟悉类中成员变量和方法的访问控制。3)熟悉方法或构造方法多态性。4)熟悉接口的定义方法。主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)一.实验内容1.编写程序实现如下功能:已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法
2、(修改年龄、显示基本信息)及一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。(1)源程序classPerson{publicStringname;publicStringsex;publicintage;Person(Stringname,Stringsex,intage){this.name=name;this.sex=sex;this.age=age;}}classStudentextendsPerson{publicStringsno;publicStringclassno;publicvoidupdat
3、eAge(intage){this.age=age;注:“实验记录及个人小结”部分不够可另附页或在背面续写第页主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)}Student(Stringname,Stringsex,intage,Stringsno,Stringclassno){super(name,sex,age);this.sno=sno;this.classno=classno;}publicStringtoString(){return("姓名:"+name+"性别:"+sex+"年龄:"+age+"
4、学号:"+sno+"班号:"+classno+"");}}publicclassTestStudentPerson{publicstaticvoidmain(String[]args){inti;Studentstu[]=newStudent[2];stu[0]=newStudent("小明","男",20,"2001112135062","1102班");stu[1]=newStudent("小木","女",23,"2001112135063","1102班");stu[0].updateAge(18);stu[1].update
5、Age(19);for(i=0;i<2;i++){System.out.println(stu[i]);}}}(2)实验结果2.输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。步骤一:在编辑调试工具中输入课本例5-4TestVirtualInvoke.java程序,编译运行,观察程序的运行结果,并思考为什么产生这样的结果。(1)源程序publicclassTestVirtualInvoke{staticvoiddoStuff(Shapes){注:“实验记
6、录及个人小结”部分不够可另附页或在背面续写第页主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)s.draw();}publicstaticvoidmain(String[]args){Circlec=newCircle();Trianglet=newTriangle();Linel=newLine();doStuff(c);//作为实参,调用对象是3个类对象,上溯造型使其隐藏.doStuff(t);doStuff(l);}}classShape{voiddraw(){System.out.println("Sh
7、apeDrawing");}}classCircleextendsShape{voiddraw(){System.out.println("DrawCircle");}}classTriangleextendsShape{voiddraw(){System.out.println("DrawThreeTriangle");}}classLineextendsShap{voiddraw(){System.out.println("DrawLine");}}(2)运行结果步骤二:将Shape类定义为abstactclassShape{…
8、…},然后重新定义Shape抽象类的派生类Circle、Triangle、Line,最后编译运行,观察程序的运行结果是否和上面的结果相同。(1)源程序publicclassTestVirtualInvoke{staticvoiddoS