java类与对象.docx_第1页
java类与对象.docx_第2页
java类与对象.docx_第3页
java类与对象.docx_第4页
java类与对象.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

实验3、类与对象1、 实验目的1. 理解 Java 语言面向对象编程基本思想。2. 了解类的基本特征,掌握类的定义,了解类中成员变量和成员方法的特性及作用,掌握成员变量的声明和成员方法的定义。3. 掌握对象的声明及创建。4. 掌握使用对象调用成语变量和成员方法。5. 掌握定义构造方法、定义多个构造方法及使用构造方法创建对象。6. 掌握static关键字,并可以阐述出static变量及static方法的特点。7. 掌握this关键字,并会在构造方法中使用this关键字。8. 掌握使用this关键字区分局部变量和成员变量。9. 掌握方法的定义和调用。10. 掌握方法重载,理解类的多态性。11. 掌握构造方法及构造方法的重载。12. 了解包的作用,掌握包的层次结构结构。13. 掌握package和import语句,使用java平台提供的包中的类以及自定义包中的类,掌握一些重要的操作步骤。2、 实验内容及步骤 1、案例学习 (1)任务学习Point类:本例是对直角坐标系中点(Point)的描述类,即实现一个Point类,该类包含:表示坐标的两个double型变量x、y构造方法Point()和Point(double xx, double yy)两个成员方法,分别返回x值和y值的double getX()和double getY()。 根据以上要求Point类定义如下: class point double x,y; public Point() x = 0 ; y = 0 ; public Point(double xx,double yy) x = xx; y = yy ; public double getX() return x ; public double getY() return y; 思考题 编写一个应用程序使用Point类,得到图4-1的结果。 在Point类中添加成员方法,完成当前点与另一个点的距离。 参考方法声明: public double distanceOfPoints(Point p2) /自行填写代码 (2) 实验报告 将应用程序写在实验报告中。 将求两个点的距离的方法代码写在实验报告中。 图3-1 程序结果二、按要求填写定义类的代码练习 1、任务 按照对类的要求,将代码补充完整,并编写Java应用程序,创建三个类的对象,并完成相应功能。 (1)类要求:编写3个类:Trangle,Lader和Circle,分别用来刻画“三角形”,“梯形”和“圆形”。具体要求如下;Trangle类具有类型double的三个边以及周长、面积属性,Trangle类具有返回周长,面积以及修改三个边的功能。另外,Trangle类还具有一个boolean类型的属性。该属性用来判断三个数能否构成一个三角形。Lader类具有类型为double的上底,下底,高和面积属性,具有返回面积的功能。Circle类具类型为double的半径、周长和面积属性,具有返回周长、面积的功能。(2)补充的代码模版按照上述类的定义要求完成代码模版。class Trangle double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) 【代码1】 / 参数a, b, c分别赋值给sideA, sideB, sideC if(【代码2】) /a, b, c构成三角形的条件表达式 【代码3】 / 给boo赋值 else 【代码4】 / 给boo赋值 double getLength() 【代码5】 / 方法体,要求计算出length的值并返回 public double getArea() if(boo) double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ; return area; else System.out.println(不是一个三角形,不能计算面积); return 0; public void setABC(double a,double b,double c) 【代码6】 / 参数a, b, c分别赋值给sideA, sideB, sideC if(【代码7】) / a, b, c构成三角形的条件表达式 【代码8】 /给boo赋值。 else 【代码9】 / 给boo赋值 class Lader double above,bottom,height,area; Lader(double a,double b,double h) 【代码10】 / 方法体 double getArea( ) 【代码11】 / 方法体,,要求计算出area返回 class Circle double radius,area; Circle(double r) 【代码12】 / 方法体 double getArea( ) 【代码13】 / 方法体,要求计算出area返回 double getLength( ) 【代码14】 / getArea方法体的代码,要求计算出length返回 void setRadius(double newRadius) radius=newRadius; double getRadius( ) return radius; public class AreaAndLength public static void main(String args ) double length,area; Circle circle=null; Trangle trangle; Lader lader; 【代码15】 /创建对象circle 【代码16】 /创建对象trangle 【代码17】 /创建对象lader 【代码18】 / circle调用方法返回周长并赋值给length System.out.println(圆的周长:+length); 【代码19】 / circle调用方法返回面积并赋值给area System.out.println(圆的面积:+area); 【代码20】 / trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); 【代码21】 / trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); 【代码22】 / lader调用方法返回面积并赋值给area System.out.println(梯形的面积:+area); 【代码23】 / trangle调用方法返修改三个边的代码,要求将三个边修改为12,34,1 【代码24】 / trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); 【代码25】 / trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); (3)实验报告内容填写代码运行程序后,将运行结果写在实验报告中。3、类变量与类方法练习任务一:实例学习(1)通过两个类StaticDemo和LX5_1学习静态变量/方法与实例变量/方法的区别。实例源代码如下:class StaticDemo static int x; int y; public static int getX() return x; public static void setX(int newX) x = newX; public int getY() return y;public void setY(int newY) y = newY;public class LX5_1 public static void main(String args) System.out.println(静态变量x=+StaticDemo.getX(); System.out.println(实例变量y=+StaticDemo.getY(); StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); b.setY(4); System.out.println(静态变量a.x=+a.getX(); System.out.println(实例变量a.y=+a.getY(); System.out.println(静态变量b.x=+b.getX(); System.out.println(实例变量b.y=+b.getY(); (2)思考题学习、编译和运行上面的源程序,将运行结果写在实验报告中。如果出现错误提示请将错误提示写在实验报告中。在实验报告中指出错误代码,并改正。在getX()方法中添加语句y+是否可以,不可以的话说明原因。(3)实验报告将思考题写在实验报告中。任务二:根据要求编写代码,注意static变量的使用。(1)定义一个类Count,Count中定义一个int类型类变量counter。创建Count对象时,将递增counter,并把counter的值赋予该对象的int类型的serialNumber变量。这样,如果把serialNumber看作为对象的序列号,则通过类变量counter将使Count类的每个对象都被赋予了唯一的序列号。(2)程序模版以下为参考程序,其中serialNumber和counter自行分析决定是否定义为static。 class Count/声明变量serialNumber /声明变量counter public Count() /递增counter serialNumber = counter; public int getSerialNumber() return serialNumber; public class TestStaticVarpublic static void main(String args) /创建10个元素的Count数组 for(int i = 0;icc.length;i+) /为每个数组元素分配实体 System.out.println(cc+i+.serialNumber=+cci.getSerialNumber(); *4.关键字this的练习任务一:编译程序,如果出错的话修改错误。(1)代码: class Person private String name; private int age; public Person() System.out.println(一个新的Person对象被实例化。); public Person(String name,int age) = name ; this.age = age ; this(); public String getInfo() this(); return 姓名:+name+,年龄:+age; (2)思考题学习、编译和运行上面的源程序,将运行结果写在实验报告中。如果出现错误提示请将错误提示写在实验报告中。在实验报告中指出错误代码,并改正。(3)实验报告将思考题写在实验报告中。任务二:学习以下实例,编译并找出错误,改正。 (1)实例代码 class Person private String name; private int age; public Person() this(LXH,30); System.out.println(一个新的Person对象被实例化。); public Person(String name) this(); public Person(String name,int age) this(name); this.age = age ; public String getInfo() return 姓名:+name+,年龄:+age; (2)思考题 学习、编译和运行上面的源程序,将运行结果写在实验报告中。如果出现错误提示请将错误提示写在实验报告中。在实验报告中指出错误代码,分析错误原因。 (3)实验报告 将思考题写在实验报告中。5类的多态性-方法重载练习任务一:根据要求将类的定义补充完整。(1)要求:Insort类通过方法重载实现对不同的数进行从大到小排序输出。程序模板如下:class IntSort public String sort(int a, int b) 【代码1】 return a+ +b; else 【代码2】 【代码3】 int swap; if (ab) 【代码4】 if (aarrj+1) 【代码9-11】 for (int i=0; i=1) & (m=1) & (dc&a+cb&c+ba) System.out.println(我是一个三角形); boo=true; else System.out.println(我不是一个三角形); boo=false; public void getArea( ) if(boo) do

温馨提示

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

评论

0/150

提交评论