




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 类、对象基础知识一、 实验目的1、熟练掌握类、对象的的概念以及对事物的抽象。2、熟练掌握成员、方法的概念以及构造方法的概念。3、理解面向对象的程序设计方法。二、 实验内容与要求1运行下面的程序,理解面向对象的程序设计方法的基本概念。class value public int x,y; public value(int a,int b) x=a; y=b; public class Ch31 public static void main(String args) int total; value num=new value(24,65); total=num.x+num.y; System.out.println(add=+total); 2.This、super和super()的使用 (1)程序功能:说明this、super和super()的用法。程序首先定义Point(点)类,然后创建点的子类Line(线)。最后通过LX3类输出线段的长度。 程序中通过super(a,b)调用父类Point的构造方法为父类的x和y赋值。在子类Line的setLine 方法中,因为参数名和成员变量名相同,为给成员变量赋值,使用this引用,告诉编译器是为当前类的成员变量赋值。在length 和toString 方法中使用父类成员变量时,使用super 引用,告诉编译器使用的是父类的成员变量。 (2)使用this、 super和super()的程序文件源代码如下。 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(int 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 + 直线长度: + this.length(); public class LX3 public static void main(String args) Line line=new Line(50, 50); System.out.println(n+line.toString(); (3)编译并运行程序,结果如图所示。 三、 思考题1、定义一个类实现银行帐户的概念,包括的变量有帐号和存款余额,包括的方法有存款、取款、查询余额和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。提示:关键代码如下:public int getleftmoney()return leftmoney;public void savemoney(double money)leftmoney+=money;public void getmoney(double money)if(money=leftmoney)leftmoney-=money;elseSystem.out.println(只能取:+leftmoney);bankaccount ba=new bankaccount(888123,1000);ba.savemoney(21000);System.out.println(存入21000元后余额为:+ba.getleftmoney();ba.getmoney(11500);System.out.println(11500元后余额为:+ba.getleftmoney();源代码:import java.applet.*;class bankaccount int leftmoney; String name; bankaccount(String na,int mon) name=na; leftmoney=mon; public String getname() return name; public int getleftmoney()return leftmoney;public void savemoney(double money)leftmoney+=money;public void getmoney(double money)if(money=leftmoney)leftmoney-=money;elseSystem.out.println(只能取:+leftmoney);public class gouzao public static void main(String args)bankaccount ba=new bankaccount(888123,1000);ba.savemoney(21000);System.out.println(存入21000元后账户+ba.getname()+余额为:+ba.getleftmoney();ba.getmoney(11500);System.out.println(取走11500元后账户+ba.getname()+余额为:+ba.getleftmoney();运行结果:存入21000元后账户888123余额为:22000取走11500元后账户888123余额为:105002、定义一个“圆”类Circle,该圆类的数据成员包括:圆心点位置及圆的半径;方法成员有:设置圆心位置和半径的方法,获取圆心位置和半径的方法及构造方法。要求构造方法可以接收圆心位置参数,而半径使用缺省值1。编写完整的程序并创建Circle类的对象,并且分别调用各种方法,对比这些方法的执行结果,并据此写出详细的实验报告。import java.applet.*;class Circle double x,y,r;public void set_Circle(double a,double b)x=a;y=b;public void set_r()r=1;public void set_r(float c)r=c;public double re_x()return x;public double re_y()return y;public double re_r()return r;public class ceshipublic static void main(String args)Circle yuan=new Circle();yuan.set_Circle(4, 5);yuan.set_r();System.out.println(选用第一种方法结果为:);System.out.println(圆心的位置为:(+yuan.re_x()+,+yuan.re_y()+);System.out.println(园的半径为=+yuan.re_r();yuan.set_r(2);yuan.set_Circle(5, 5);System.out.println(选用第二种方法结果为:);System.out.println(圆心的位置为:(+yuan.re_x()+,+yuan.re_y()+);System.out.println(园的半径为=+yuan.re_r();运行结果为:选用第一种方法结果为:圆心的位置为:(4.0,5.0)园的半径为=1.0选用第二种方法结果为:圆心的位置为:(5.0,5.0)园的半径为=2.03、定义以上圆类Circle的子类SubCircle,使它具有获取半径方法、设置半径方法和构造方法,要求构造方法可同时接收圆心位置及半径两个参数。编写完整的程序并创建SubCircle类的对象,并且分别调用各种方法,对比这些方法。源代码:import java.applet.*;class Circle double x,y,r;public void set_Circle(double a,double b)x=a;y=b;public void set_r()r=1;public void set_r(float c)r=c;public double re_x()return x;public double re_y()return y;public double re_r()return r;class SubCircle extends Circle public SubCircle() System.out.println(调用了拓展圆的构造方法SubCircle(); public SubCircle(double a,double b,double c) x=a; y=b; r=c; public class yuan public static void main(String args)SubCircle a1=new SubCircle();a1.set_Circle(1,2);a1.set_r(1);System.out.println(-通过父类构造构造函数得到的圆的对象-);System.out.println(该圆对象的圆心为:(+a1.re_x()+,+a1.re_y()+);System.out.println(该圆对象的圆心为:+a1.re_r();SubCircle a2=new SubCircle(1,2,3);System.out.println(-通过自身构造构造函数得到的圆的对象-);System.out.println(该圆对象的圆心为:(+a2.re_x()+,+a2.re_y()+);System.out.println(该圆对象的圆心为:+a2.re_r();运行结果为:调用了拓展圆的构造方法SubCircle()-通过父类构造构造函数得到的圆的对象-该圆对象的圆心为:(1.0,2.0)该圆对象的圆心为:1.0-通过自身构造构造函数得到的圆的对象-该圆对象的圆心为:(1.0,2.0)该圆对象的圆心为:3.04先创建一个Point类,然后定义Trianglele类。在Trianglele类中定义三个Point的实体来表示一个三角形的三个点,再定义一个方法setTri对这三个点进行初始化,然后定义两个方法求三角形的周长、面积。在main()中创建一个对象,求给定三点的三角形的周长、面积。class Pointfloat x,y;public void set_point(float a,float b)x=a;y=b;class TrianglelePoint a,b,c;double a_b,a_c,b_c;public void set_Trianglele(float x1,float y1,float x2,float y2,float x3,float y3)a.set_point(x1, y1);b.set_point(x2, y2);c.set_point(x3, y3);public double re_point1_point2_long(Point n,Point m)return Math.sqrt(n.x-m.x)*(n.x-m.x)+(n.y-m.y)*(n.y-m.y);public double re_area()double p=re_point1_point2_long(a,b)+re_point1_point2_long(a,c)+re_point1_point2_long(b,c);return Math.sqrt(p*(p-re_point1_point2_long(a,b)*(p-re_point1_point2_long(a,c)*(p-re_point1_point2_long(b,c);public double re_long()return (re_point1_point2_long(a,b)+re_point1_point2_long(a,c)+re_point1_point2_long(b,c);public class ceshi1 public static void main(String args) Trianglele a=new Trianglele(); a.set_Trianglele(1, 2, 3, 4, 5, 6); System.out.println(n三角形的周长为:+a.re_long(); System.out.println(n三角形的面积为:+a.re_area(); class Pointfloat x,y;public void set_point(float a,float b)x=a;y=b;class TrianglelePoint a,b,c;public void set_Trianglele(float x1,float y1,float x2,float y2,float x3,float y3)a.set_point(x1, y1);b.set_point(x2, y2);c.set_point(x3, y3);public flo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开学第一课(教学设计)2024-2025学年五年级上册信息技术川教版
- 农产品质检工作操作流程
- 企业知识产权保护案例分析
- 全国上海科教版初中信息技术七年级第二学期第二单元活动一《构思作品并准备视频素材》说课稿
- 一、找规律教学设计-2025-2026学年小学信息技术粤教版B版六年级下册-粤教版(B版)
- 罐头原料处理工特殊工艺考核试卷及答案
- 汽车饰件制造工三级安全教育(公司级)考核试卷及答案
- 2024-2025学年高中物理 第二章 原子结构 4 玻尔的原子模型 能级说课稿 教科版选修3-5
- 水电站地质灾害预警分析报告
- 油气田灾害应急预案分析报告
- 汽修维修外包合同范本
- 2024工勤人员考试公共课程考试题库及参考答案
- 集成电路制造工艺原理集成电路制造工艺原理模板
- 质量教育培训计划方案
- 产品追溯及模拟召回演练计划
- 访学归来讲座课件
- Stata统计分析与应用(第3版)
- 设备使用维修和检修技术通则
- 《酸辣土豆丝制作》课件
- 高职教师职业发展规划方案
- 《肠造口术后并发症护理研究进展综述》7400字
评论
0/150
提交评论