63实验三

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

班级:学号:姓名:实验三面向对象程序设计一实验目的与要求1、编写java应用程序,完成类、对象的创建及使用;完成成员方法和构造方法的创建及使用。2、掌握权限访问控制符public和private的用法;实现类的继承;实现变量的隐藏和方法的重写;实现成员方法和构造方法的重载;掌握多态的意义,学会多态在程序设计中的应用。3、编写java应用程序,完成接口的实现;体会抽象类和接口的区别;体会接口的继承原理;将接口和类分别定义在不同的包中,掌握包的使用。二实验内容1、定义一个学生类,为其添加成员变量为学号、年龄、姓名、班级和学校,其中学号为最终变量,学校为类变量;为其添加构造方法以完成对学生对象的初始化;为其添加成员方法getInfo(),作用是获取学生的所有信息;在main中创建一个学生对象,并验证学生类中所有方法。publicclassstudent{finalStringnumber;Stringname;StringClass;intage;staticStringschool=hefeishifan;publicstudent(Stringnumber,Stringname,StringClass,intage){this.number=number;this.name=name;this.age=age;this.Class=Class;}publicvoidgetinfo(){System.out.println(学号:+number);System.out.println(姓名:+name);System.out.println(年纪:+age);System.out.println(班级:+Class);System.out.println(学校:+school);}班级:学号:姓名:publicstaticvoidmain(String[]args){studentstu=newstudent(1210461020,韩成,2012级计算机2版,23);stu.getinfo();}}2、在第一题的基础上,添加三个成员方法以用来改变年龄、姓名、班级的值;添加五个成员方法以用来分别获取学号、年龄、姓名、班级和学校的值;在main中创建一个学生对象,并验证这些方法。publicclassstudent{finalStringnumber;Stringname;StringClass;intage;staticStringschool=hefeishifan;publicstudent(Stringnumber,Stringname,StringClass,intage){this.number=number;this.name=name;this.age=age;this.Class=Class;}publicvoidgetinfo(){System.out.println(学号:+number);System.out.println(姓名:+name);System.out.println(年纪:+age);System.out.println(班级:+Class);System.out.println(学校:+school);}publicvoidchange_name(Stringname){this.name=name;}publicvoidchange_age(intage){this.age=age;}publicvoidchange_Class(StringClass){班级:学号:姓名:this.Class=Class;}publicStringget_number(){returnnumber;}publicStringget_name(){returnname;}publicintget_age(){returnage;}publicStringget_Class(){returnClass;}publicStringget_school(){returnschool;}publicstaticvoidmain(String[]args){studentstu=newstudent(1210461020,韩成,2012级计算机2版,23);System.out.println(修改之前的值:);System.out.println(学号:+stu.get_number());System.out.println(姓名:+stu.get_name());System.out.println(年纪:+stu.get_age());System.out.println(班级:+stu.get_Class());System.out.println(学校:+stu.get_school());stu.change_name(韩成成);stu.change_age(20);stu.change_Class(嵌入式);System.out.println();System.out.println(修改之后的信息);stu.getinfo();}}班级:学号:姓名:3、修改学生类中成员的访问权限,体会public和private两种访问权限的用法。classstudenta{finalStringnumber;privateStringname;StringClass;intage;staticStringschool=hefeishifan;publicstudenta(Stringnumber,Stringname,StringClass,intage){this.number=number;this.name=name;this.age=age;this.Class=Class;}publicvoidgetinfo(){System.out.println(学号:+number);System.out.println(姓名:+name);System.out.println(年纪:+age);System.out.println(班级:+Class);System.out.println(学校:+school);}publicclasstess{publicvoidmain(String[]args){studentastu=newstudenta(1210461020,韩成,2012级计算机2版,23);System.out.println(修改之前的值:);stu.getinfo();stu.age=21;System.out.println(修改之后的信息);stu.getinfo();}}}班级:学号:姓名:4、定义一个People类,它包含属性有姓名name和性别sex,为People类派生出一个子类Employee类,为其增加两个属性年龄age和工资等级grade,工资等级分A、B、C三个等级,在子类中增加用于打印出员工的姓名、性别、年龄和工资等级的方法print,编写一个应用程序,测试定义的类。publicclassPeoplea{Stringname;Stringsex;publicPeoplea(Stringname,Stringsex){this.name=name;this.sex=sex;}publicstaticvoidmain(String[]args){Employeestu=newEmployee(韩成,男,22,A);stu.print();}}classEmployeeextendsPeople{intage;Stringgrade;publicEmployee(){}publicEmployee(Stringname,Stringsex,intage,Stringgrade){super(name,sex,age);this.age=age;this.grade=grade;}publicvoidprint(){System.out.println(姓名:+name);System.out.println(年纪:+age);System.out.println(性别:+sex);班级:学号:姓名:System.out.println(工资等级:+grade);}}5、定义一个People类,它包含属性有姓名name和性别sex和年龄age,一个构造方法,用来初始化这三个属性;定义一个People类的子类Student,添加一个属性学好number,添加两个构造方法,一个有参构造方法,一个无参构造方法,他们都要调用父类的构造方法或本类的构造方法来完成对象的初始化,添加两个成员方法,一个是选课choose(),用来输出“我没有选课”,另一个是选课choose(String),用来选择由参数指定的课程。publicclassPeople{protectedStringname;protectedStringsex;protectedintage;publicPeople(){}publicPeople(Stringname,Stringsex,intage){this.name=name;this.sex=sex;this.age=age;}publicstaticvoidmain(String[]args){Studentstu=newStudent(韩成,男,22,1210461020);stu.choose();stu.choose(java);}}classStudentextendsPeople{Stringnumber;publicStudent(){}publicStudent(Stringname,Stringsex,intage,Stringnumber){super(name,sex,age);this.number=number;}publicvoidchoose(){System.out.println(我没有选课);}publicvoidchoose(Stringcourse){System.out.println(我的选课+course);班级:学号:姓名:}}6、创建一个接口Shape,其中有抽象方法area,类Circle、Rectangle实现area方法计算其面积并返回,又有Star类实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型的方法isStar;在main方法中创建一个数组,根据随机数向其中加入Shape的不同子类对象,然后将数组元素依次取出,判断其是否为Star类,如是返回其个数,否则返回其面积。班级:学号:姓名:运行结果三实验内容中遇到的问题、解决方法和体会。通过这次实验,我学会了类的定义和成员变量初始化以及使用构造方法,还有类的继承与多态的知识和接口的知识。1、在一个java文件中,可以有两个类,但是有且只有一个public类,并且将加有关键字public的类的类名与文件名一致,且首字母要大写,另一个类可以在public类的内部或外部,可以继承public类或作public类的父类。2、Private访问权限:这个成员只能在这个类的内部使用,其他类不能访问。Public访问权限:这个成员既可以被同一个包中的其他类访问,也可以被位于不同包继承此父类的子类访问,但不能被不同包的类访问。习题三1.简述this引用的作用。在构造器中,代表该构造器所创建的实例对象。在方法中,指调用该方法的对象。2.类的成员初始化的顺序如何?静态变量、静态初始化块(变量、初始化块)构造器。班级:学号:姓名:3.什么是接口?什么是抽象类?二者有何区别?接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。接口可以多继承,抽象类不行,接口定义方法,不能实现,而抽象类可以实现部分方法。接口中基本数据类型为static而抽类象不是的。4.简述Java运行多态时的含义。在面向对象编程中,多态是指一个接口有多种实现方式,即一个接口使用不同实例执行不同的操作。在java中多态有两种

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功