实验五类和对象编程(构造方法使用)_第1页
实验五类和对象编程(构造方法使用)_第2页
实验五类和对象编程(构造方法使用)_第3页
实验五类和对象编程(构造方法使用)_第4页
实验五类和对象编程(构造方法使用)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 类和对象编程构造方法使用一、实验目的1.理解构造方法;2.掌握构造方法的使用;3.掌握构造方法的继承与多态。二、实验器材计算机硬件环境:PIII 667以上计算机;软件环境:MyEclipse6.0以上。三、实验内容1、程序功能:分析下列程序的功能,掌握this、super 和super(的用法。程序首先定义Point(点)类,然后创建点的子类Line(线)。最后通过LX3_10 类输出线段的长度。程序中通过super(a,b调用父类Point 的构造方法为父类的x 和y 赋值。在子类Line 的setLine方法中,因为参数名和成员变量名相同,为给成员变量赋值,使用this 引用,告

2、诉编译器是为当前类的成员变量赋值。在length 和toString 方法中使用父类成员变量时,使用super 引用,告诉编译器使用的是父类的成员变量。(1 程序源代码如下。class Point protected int x, y;Point(int a, int b setPoint(a, b;public void setPoint(int a, int b x=a;y=b;class Line extends Point protected int x, y;Line(int a, int b super(a, b;setLine(a, b;public void setLine(i

3、nt x, int y this.x=x+x;this.y=y+y;public double length( int x1=super.x, y1=super.y, x2=this.x, y2=this.y;return Math.sqrt(x2-x1 * (x2-x1 + (y2-y1 * (y2-y1;public String toString( return "直线端点:" + super.x + "," + super.y + " " +x + "," + y + " 直线长度:"

4、+ this.length(;public class EXP3_10public static void main(String args Line line=new Line(50, 50;(2)编译并运行2、分析下列程序的功能,理解构造方法的重载。构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。(1 程序源代

5、码如下。class RunDemo private String userName, password;RunDemo( 全部为空!"RunDemo(String name userName=name;RunDemo(String name, String pwd this(name;password=pwd;check(;void check( String s=null;if (userName!=nulls="用户名:"+userName;elses="用户名不能为空!"if (password!="12345678"

6、s=s+" 口令无效!"elses=s+" 口令:*"public class EXP3_12 public static void main(String args new RunDemo(;new RunDemo("张三"new RunDemo(null,"李四"new RunDemo("王五","12345678"3、设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成

7、绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。要求父类与子类都具有无参数构造方法和带参数构造方法,在子类构造方法中调用父类的构造方法。表 课程成绩等级本科生标准研究生标准80-100优秀90100优秀70-80良好8090良好60-70一般7080一般50-60及格6070及格50以下不及格60以下不及格编写测试类,在测试类里分别使用无参数构造方法和有参数构造方法创建若干个Und

8、ergaduate与Postgraduate对象,计算他们的成绩,并输出他们的个人信息。四、实验步骤Student类packagepublic class Student private String name;private float chinese;private float english;private float math;public String getName(return name;public void setName(String =name;public float getChinese( return chinese;public void

9、 setChinese(int chinese this.chinese = chinese;public float getMath( return math;public void setMath(int math this.math = math;public float getEnglish( return english;public void setEnglish(int english this.english = english;public Student(String name,float chinese,float english,float

10、= name;this.chinese = chinese;this.math = math ;this.english = english;public Student(System.out.println("全部为空!"public void getGrade(本科生类packagepublic class Student private String name;private float chinese;private float english;private float math;public String getName(return name;public v

11、oid setName(String =name;public float getChinese( return chinese;public void setChinese(int chinese this.chinese = chinese;public float getMath( return math;public void setMath(int math this.math = math;public float getEnglish( return english;public void setEnglish(int english this.engl

12、ish = english;public Student(String name,float chinese,float english,float = name;this.chinese = chinese;this.math = math ;this.english = english;public Student(System.out.println("全部为空!"public void getGrade(研究生类packagepublic class Student private String name;private float ch

13、inese;private float english;private float math;public String getName(return name;public void setName(String =name;public float getChinese( return chinese;public void setChinese(int chinese this.chinese = chinese;public float getMath( return math;public void setMath(int math this.math =

14、math;public float getEnglish( return english;public void setEnglish(int english this.english = english;public Student(String name,float chinese,float english,float = name;this.chinese = chinese;this.math = math ;this.english = english;public Student(System.out.println("全部为空!"

15、public void getGrade(Text类packagepublic class Student private String name;private float chinese;private float english;private float math;public String getName(return name;public void setName(String =name;public float getChinese( return chinese;public void setChinese(int chinese this.chinese = chinese;public float getMath( return math;public void setMath(int math this.math = math;public float getEnglish( return english;public void setEnglish(int english th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论