




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验四 面向对象程序设计一、实验目的:1、熟悉Java面向对象程序设计的基本思想。2、掌握类与对象的定义及使用方法。3、理解成员变量的继承与隐藏,方法的覆盖与重载4、掌握java继承中父类及其子类的定义方法。5、掌握子类重写父类同名方法的方法。1、(1)创建一个Rectangle类,添加两个(private)属性width与height (2)创建一个构造方法,选择width与height为形式参数。 (3)在Rectangle类中添加两个方法计算矩形的周长和面积package com.mypackage;public class Rectangle private double width,height; public Rectangle(double a,double b)width=a;height=b; public double perimeter()return 2*(width+height); public double area()return width*height; public void disply1()System.out.println(矩形的周长是:+this.perimeter(); public void disply2()System.out.println(矩形的面积是:+this.area(); /* * param args */public static void main(String args) / TODO 自动生成的方法存根Rectangle c; c=new Rectangle(5.5,6.6); c.disply1(); c.disply2();2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。最后在主方法main中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。(一个文件中包含三个class和main)a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。package com.mypackage;import java.util.Scanner;class Trangle boolean n;public boolean boo()if(a+bc&a-bx3&x1-x2x3) Trangle c1; c1=new Trangle(x1,x2,x3); c1.disply1(); c1.disply2(); else System.out.println(不能构成三角形); LaderClass c2; c2=new LaderClass(2,3,5); c2.disply(); CircleClass c3; c3=new CircleClass(2.5); c3.disply1(); c3.disply2(); 3、运行程序,并理解成员变量的继承与隐藏,方法的覆盖与重载。class A int sum,num1,num2; public A() num1=10; num2=20; sum=0; void sum1() sum=num1+num2; System.out.println(sum=+num1+num2+=+sum); void sum2(int n) num1=n; sum=num1+num2; System.out.println(sum=+num1+num2+=+sum); class B extends A int num2; public B() num2=200; void sum2() sum=num1+num2; System.out.println(sum=+num1+num2+=+sum); void sum2(int n) num1=n; sum=num1+num2; System.out.println(sum=+num1+num2+=+sum); void sum3(int n) super.sum2(n); System.out.println(sum=+num1+num2+=+sum); public class test public static void main (String arg) B m=new B(); m.sum1(); m.sum2(); m.sum2(50); m.sum3(50); 运行结果 成员变量的作用范围是整个类,可用修饰符控制变量的作用范围。继承是指特殊类对象拥有一般类的所有属性与方法,通过父类和子类,实现类的层次化,从一般逐步特殊化。 子类可继承父类中所有的成员变量,如上例中public B中的 void sum2() sum=num1+num2; System.out.println(sum=+num1+num2+=+sum);输出结果为sum=10+200=210,其中10就是对父类A中成员变量num1的继承;所谓隐藏就是子类自己重新给变量(与父类中变量的名称一样)赋初始值时,此时父类的变量值则被隐藏,如上述程序段中的sum2是200,而非20。若在子类中已对成员变量重新赋值却仍想使用父类中的值,则需在成员变量前加super。 在同一个类中定义了多个同名而内容不同的成员方法,称这些方法是重载的方法。重载的方法主要是通过参数列表的个数、参数的数据类型和参数的顺序来区分。如sum2( )和sum2(20)就属于方法的重载。方法覆盖即方法重写,是指通过面向对象系统的继承机制,子类可继承父类的方法,特征可能与父类不同,java允许子类对父类的同名方法重新定义。由于重写的同名方法存在于子类与父类的关系中,所以只需在方法引用时指明引用的是父类还是子类即可。如程序中子类B重写了父类A中的方法sum2(int n),但在主方法中使用时进行了B m=new B();的定义,说明使用的是子类中的方法。4、理解下面3个类的定义,分析它们之间的关系,写出运行结果。package com.mypackage;import java.io.*;class SuperClassint x;SuperClass ()x=3;System.out.println(in SuperClass : x=+x);void dosomthing()System.out.println(in SuperClass.dosomthing();class SubClass extends SuperClassint x;SubClass()super();x=5;System.out.println(in SubClass :x=+x);void dosomthing()super.dosomthing();System.out.println(in SubClass.dosomthing();System.out.println(super.x=+super.x+sub.x=+x);public class Inheritance1 /* * param args */public static void main(String args) / TODO 自动生成的方法存根SubClass subC=new SubClass(); subC.dosomthing();SubClass是对SuperClass的继承,Inheritance1是主类,在主方法中分别对前两种类的引用,程序执行时要先从主类开始。SubClass中的super();是继承了父类的方法,所以运行时首先输出的是父类方法的结果in SubClass :x=3,接着才是子类的in SubClass :x=5,子类方法dosomthing中又调用了父类的此方法,多以输出结果为in SuperClass.dosomthing(),in SubClass.dosomthing()最后执行System.out.println(super.x=+super.x+sub.x=+x);结果为super.x=3sub.x=55、接口和继承的综合应用定义一个接口(IShapeArea),其中包含返回面积的方法(getArea)。定义一个矩形类(Rectangle),派生出一个正方形类(Square),即父类为矩形类,再定义一个圆类(Circle),三者都要求实现接口IShapeArea,自行扩充成员变量和方法。在主方法中建一数组,数组中放入一些上述类型的对象,并计算它们的面积之和。package com.mypackage;/* * author Pengwei Wang * myFirstJava * com.mypackage * version * Create in 2013-10-23 下午8:16:53 * Jiekou.java */ interface IShapeArea double PI=3.14159; abstract double getArea(); class Rectangle implements IShapeArea double width,height; public Rectangle(double w,double h)width=w;height=h; public double getArea()return width*height; public void disply()System.out.println(矩形的面积是:+this.getArea(); public Rectangle() class Square extends Rectangledouble side; public Square(double a)side=a; public double getArea()return side*side; public void disply()System.out.println(正方形的面积是:+this.getArea(); class Circle implements IShapeAreadouble radius;public Circle(double r)radius=r;public double getArea()return PI*radius*radius;public void disply()System.out.println(圆的面积是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生心理健康教育 课件 第九章大学生生命教育与心理危机应对
- 应急地震安全培训
- 园林绿化作业人员考试黑钻押题含答案详解(新)
- 2025年西安海棠职业学院传统康复治疗技术期末测试卷附参考答案详解(模拟题)
- 免疫功能低下人群秋季腹泻治疗特殊性与策略
- 代沟合同(标准版)
- 房管合同(标准版)
- 2025年数字文化产业商业模式创新与数字文化产业商业模式创新模式研究报告
- 2025年绿色供应链管理在制造业的绿色供应链合作伙伴关系优化与风险管理框架实施报告
- 2025年工业互联网平台云计算资源动态分配策略与智能原子识别融合报告
- 超声科法律法规与工作规范
- 小学中国新疆课件教学
- 乒乓球基础知识简介课件
- DB15∕T 972-2024 医疗机构物业管理服务规范
- 矿产堆场整治方案(3篇)
- 2025光伏发电建设项目文件归档与档案规范
- 木板企业板材加工厂安全生产双重预防机制方案(2024-2024新标准实施)
- 人教版一年级数学上册数学游戏自测卷(含答案)
- 生物质颗粒工人管理制度
- 【内蒙古】2024内蒙古事业单位联考考试笔试附带答案详解
- 生物医药公司采购管理制度
评论
0/150
提交评论