1、上海建桥学院实验报告课程名称: 面向对象程序设计 实验类型: 设计型 实验项目名称: 包的设计和使用 类的封装、继承、多态 实验地点: 326 实验日期: 2015 年 10 月 30 日姓名: 许倩然 学号: 1421380 班级: 软工 B14-2 成绩: 一、实验目的及要求1掌握包的创建。2掌握访问控制符的使用3. 掌握继承,以及继承在程序中的具体应用。4. 掌握多态的分类,以及多态在程序中的具体应用。二、实验环境及要求jdk1.5 以上的开发环境,可使用任何编辑器。三、实验内容及步骤实验一:1.创建一个正方形类 Square,正方形的边长的访问权限为 private,将其生成在myapp.square 包中,设计构造方法。2.创建一个圆类 Circle,圆的半径的访问权限为 private,将其生成在 myapp.circle包中,提供一个改变圆半径的成员方法。3.定义一个类,要求:(1)通过键盘流输入正方形的边长和圆的半径。(2)当输入的边长大于半径时,输出圆周长和正方形面积的差值(若输出的差值为负值,请将其转化为正值);当输入的边长小于半径时,输出圆面积和正方形周长的差值。
2、差值通过 DOS 控制台输出(若输出的差值为负值,请将其转化为正值)。源代码(排版工整):package myapp.square;public class Square private double length=0;public Square()public Square(double l)length=l;public double getLength()return length;public double getSC()return length*4;public double getSA()return length*length;package myapp.circle;public class Circle private double radius=0;public void setRadius(double r)radius=r;public double getRadius()return radius;public double getCC()return 2*Math.PI*radius;public double getCA()return Math.PI*
3、radius*radius;import myapp.circle.Circle;import myapp.square.Square;import java.util.Scanner;public class Test public static void main(String args)System.out.println(输入正方形的边长和圆的半径:);Scanner sc=new Scanner(System.in);Square s=new Square(sc.nextDouble();Circle c=new Circle();c.setRadius(sc.nextDouble();sc.close();if(s.getLength()c.getRadius()System.out.println(Math.abs(c.getCC()-s.getSA();elseSystem.out.println(Math.abs(c.getCA()-s.getSC();结果(截图):边长半径: 边长半径:实验二:1.定义一个人类(Person) ,声明在包 app.father,它包
4、含成员变量:private String name;private char sex;构造方法:通过有参重载的构造方法初始化成员变量;成员方法:public void print() /控制台输出此类姓名,性别详细信息2.定义学生类(Student)继承 Person 类,声明在包 app.son,子类的成员变量包括成员变量 :学号(ID)构造方法:带参数的构造方法,初始化所有拥有的成员变量成员方法:public void print()/控制台输出此类详细信息3.定义测试类,生成在包 app.test(仅包含 main 方法)要求:通过运行时多态实现调用 Student 对象的 print 方法(Person stu=new Student(实参); stu.print()。源代码(排版工整):package app.father;public class Person private String name;private char sex;public Person()public Person(String n,char s)name=n; sex=s;public void
5、print()System.out.println(姓名:+ name+ 性别:+sex);public String getName()return name;public char getSex()return sex;package app.son;import app.father.Person;public class Student extends Person private String ID;public Student(String n,char sex,String id)super(n,sex);ID=id;public void print()System.out.println(姓名:+getName()+ 性别:+getSex()+ ID:+ID);package app.test;import app.father.Person;import app.son.Student;public class Test public static void main(String args)Person stu=new Student(小桀 ,男,74576);stu.print();结果(截图):四、分析与讨论(实验过程中发现的重点与难点)实验一中,包的封装必须在程序的第一行;用 private 修饰成员变量无法直接被其他类使用,需要通过该类里设计的相关方法进行修改或获取数值;使用Scanner 需要注意使用完后用变量名.close() 关闭或者释放内存,同时也要注意将输入的字符串转换成题目所需要的类型。实验二中,继承时,子类构造方法要构造父类的成员变量时,用 super(参数)可以进行有参构造,没有则默认父类无参构造;继承也要注意拥有未继承的成员变量;父类和子类有同名的成员方法时,方法覆盖;字符串和单个字符的引用不同,分别用 ” 和 。
《1421380许倩然实验报告2》由会员第***分享,可在线阅读,更多相关《1421380许倩然实验报告2》请在金锄头文库上搜索。