版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计实验报告2014年10月17日姓名班级软工班学号13139042课程Java语言程序设实验项目构造方法与指导教师名称计名称继承、实验目的:。编写程序定义圆类Circle,把圆的性质和行为用代码块封装起来。圆的性质包括圆的半径,圆心坐标,行为包括计算圆面积,计算圆周长、设置半径、获取半径、计算圆个数。实例化若干个圆对象,调用相应方法计算出圆面积、圆周长并计圆个数。编程实现类的继承。编写父类People,子类Student继承自人类。人类具有姓名,性别,年龄等性质,还具有吃和说的行为。学生类继承父类,还拥有学号性质和学习行为。构造人类和学生类的对象,调用吃、说、学习的方法输出有关信
2、息。使用Java的继承关系来描述动物世界的特征和关系。(1)抽象出项目问题中的对象:动物、老鼠、熊猫。(2)抽象出每种对象所具有的性质:名字和食物。(3)抽象出每种对象所具有的行为,动物具有吃的行为和睡觉的行为,老鼠除具有动物行为外还具有打洞行为。(4)抽象出继承关系,老鼠类和熊猫类作为子类继承父类动物类,子类继承父类的属性和方法。4定义汽车类,其中包含所有汽车共有的属性如名字、排量、油耗、时速等,包含行为如点火、熄火、前进、倒退、鸣笛等,然后在测试类中用定义的类来创建对象,输出该对象的属性和行为信息。5按以下要求编写程序创建一个正方形类,添加正方形的边作为成员变量在正方形类中添加两种方法分别
3、计算正方形的周长和面积编程在测试类中输出一个正方形的周长和面积二、实验原理(可以流程图的形式出现,加以文字说明)定义圆类Circle.(1)抽象出Circle类包含成员变量radius、x和y,它们的类型均为double,代表了圆的半径和坐标属性。成员方法setRadius()、getRadius()、calcArea()、calcGirth(),分别实现设置半径、返回半径、计算面积、计算周长的行为。其中setRadius()方法用于给半径赋值没有返回值,类型为void。calcArea()、calcGirth()、getRadius()方法用于计算和返回半径值,类型为double。(2)声明
4、用于保存圆数量的成员变量num,由Circle类创建任意圆对象时num值均要加1。num变量应该是被所有圆对象共享,所以使用static关键字声明num为静态变量。使用static声明静态方法getNum()用来返回num值,返回类型为int。具体声明语句为:privatestaticintnum;publicstaticintgetNum()returnnum;(3)使用staticfinal关键字声明静态的符号常量PI(符号常量通常定义为大写字母),并给其赋值为3.14159,该常量可以被所有Cirlce类的圆对象使用,具体声明语句为:publicstaticfinaldoublePI=3
5、.14159;(4)定义两个构造方法,一个无参的构造方法和一个带参数构造方法,其中带参构造方法对圆对象进行初始化,将参数r传递给圆对象的成员变量radius,。无参构造方法则不初始任何变量。若需要在圆对象被创建时将圆的数量num增加,可以在构造方法里对num变量进行增加。(5)程序的入口方法main,在该方法中实例化若干个圆对象,并调用该对象的setRadius()、getRadius()、calcArea()、calcGirth()、getNum()方法来输出该对象的半径、周长、面积属性及圆个数。实现类的继承.(1)人类是学生类的父类,人类具有姓名,性别,年龄等性质,学生类是人类的子类也具有
6、如上性质,并且学生类还具有学号这一特性。所以人所具有的共性都封装在人类这一父类中,学生类不但继承了人类的共性还具有自己的特有属性学号。人类中具有了吃和说的行为,学生也继承了这些行为,并且学生还具有了学习这行为。根据以上分析定义两个类People和Student,People类包括成员变量name、sex、age属性,成员方法eat()和speek()。其中name、sex、age属性的访问控制符定义为tected修饰的成员可以被本包中的类以及其子类继承访问。eat()、speek()方法的访问控制符定义为public,public修饰的方法其访问权限最大可以被所有类访问。(2)使用extend
7、s关键字实现继承,学生类继承人类共有的属性和方法,此外具有stuNo学号属性和learn()学习方法。(3)父类People中定义的构造方法负责对name、sex、age变量初始化,子类Student中定义构造方法继承父类构造并对stuNo属性初始化。在Student类的构造方法的第一句使用super(name,sex,age)语句显式调用父类构造,保证父类构造被调用之后再调用子类构造。(4)编写程序的入口方法main,在该方法中实例化人类对象和学生对象,并调用对象的相应方法输出信息。描述动物世界的特征和关系.(1)动物世界的名字和食物是共有的属性,吃和睡觉是共有的行为。定义Animal类,在
8、该类中定义成员变量name和food,成员方法eat()和sleep()。根据封装性的要求将name和food属性定义为private私有的,保证该属性只能被在本类内部访问,其他类或派生类要访问该属性可以通过public公有的方法setName()、getName()、setFood()、getFood()进行访问,其中setXXX()方法用于给属性赋值,getXXX()方法用于返回属性。(2)定义老鼠类Mouse和熊猫类Panda,这两类均继承自Animal类,继承动物类的name和food属性以及eat()和sleep()方法。Mouse类和Panda类在构造方法中调用setName()和
9、setFood()方法对名称和食物属性初始化。(3)老鼠类定义打洞方法dig()输出信息。(4)定义测试类AnimalTest,编写程序入口main()方法,在该方法中创建老鼠和熊猫对象,调用相应方法输出信息。4汽车的属性和行为。(1)建立汽车类Car,汽车属性:名字,排量,油耗,时速分别记作成员变量name,pailia,oilconsume,speed.均用private修饰。定义公共方法点火,熄火,前进,倒退,鸣笛分别为fire(),unfire(),go(),back(),whistle().(2)创建有参构造函数car(Stringname,intpailia,intoilconsu
10、me,intspeed)初始化属性,创建类事例car输出属性和行为。5.求正方形周长和面积。建立Square类,定义边长为sl,用private修饰。创建方法grith()和are()分别求周长和面积。创建有参构造方法square(intsl),初始化边长,创建圆对象并输出周长和面积。三、实验代码定义圆类Circle.publicclassCircleprivatedoubleradius;/圆的半径privatedoublex;横坐标privatedoubley;纵坐标privatestaticintnum;/圆的个数privatestaticfinaldoublePI=3.14159;pu
11、blicdoublegetRadius()/返回半径returnradius;publicvoidsetRadius(doubleradius)/设置半径this.radius=radius;publicdoublecalcArea()/计算圆面积returnPl*this.radius*this.radius;publicdoublecalcGrith()/计算圆周长return2*PI*this.radius;publicstaticintgetNum()/返回圆的个数returnnum;publicCircle()无参数构造方法num+;publicCircle(doubleradius
12、,doublex,doubley)/带参数构造方法if(radius0)System.out.println(半径不可以为负数!);_(=r+()e(Do_eo.e(Duu+=-IsCm=)c_d.lno.22SAS_(=r+()sn_peE(D6.e(Duu+=-wM-呂C凰=)c匸d.lno.EPSAS_()_0o_eoz2ou+=-申晅呂CN凰=)u_c一d.lno.EPSAS_(=r+()e(Do_eoz(Duu+=-IsCN凰=)c一d.lno.EPSAS_(=r+()sn_peE(D6z(Duu+=-wM-呂CN凰=)c匸d.lno.EPSAS_()_0o_eQQ_ou+=-申晅呂
13、Lm=)u_c匸d.lno.EPSAS_(=r+()e(Do_eQL(Duu+=-IsLm=)c_d.lno.22SAS_(=r+()sn_peE(D6(Duu+=-wM-呂Lm=)c_d.lno.22SASe凰灰贱5二(Loe)(ouomcduhe(DuuDUO0凰聯灰贱5二(locn)(duomouhcn(duuduoL凰灰贱5=(Lu-sw0一-qnd-+lunu;HA.szlkHx.szlwn一peHsrqparszlSystem.out.println(圆3的周长:+circle3.calcGrith();System.out.println(圆的个数:+Circle.getNum(
14、);实现类的继承.classPeople/父类人protectedStringname;/姓名protectedStringsex;/性别protectedintage;/年龄protectedStringgetName()/返回姓名returnname;protectedvoidsetName(Stringname)/设置姓名=name;protectedStringgetSex()/返回性别returnsex;protectedvoidsetSex(Stringsex)/设置性别this.sex=sex;protectedlongstuNo;/学号protectedlonggetStuNo
15、()/返回学号returnstuNo;protectedvoidsetStuNo(longstuNo)/设置学号this.stuNo=stuNo;publicstaticvoidlearn()/学习方法System.out.println(我的学习方法!);publicStudent(Stringname,Stringsex,intage,longstuNo)/构造方法super(name,sex,age);this.stuNo=stuNo;publicclassTestPeople/测试类publicstaticvoidmain(Stringargs)Studentstudent=newSt
16、udent(张一飞,”男,18,13130001);System.out.print(姓名:+student.getName()+);System.out.print(性别:+student.getSex()+);sys(DITI.OUr*pl12.(-#-=+scdenf.g2-Age()+-J八sysCDln.0s.pl12.(-Jln-=+scdenf.g2.scN0()+=)-peop-e.eaowpeop-e.speakowSHsfudenf.-eamo碰Mwc-assAnima-宀二劇莓privaCDShingnamewM411privaCDShingfoodw)4莓pub=cSh
17、inggezameo0褊回MMrecmnamepub=cvoidsezarme(s=ringname)宀二殆郦M411Hname;pub=cShinggemoodo0褊回肪莓ecmfood;pub=cvoids2.F00d(s=ringfood)宀二殆郦)4莓classPandaextendsAnimal/熊猫类publicPanda(Stringname,Stringfood)/构造方法super(name,food);publicclassAnimalTest/测试类publicstaticvoidmain(Stringargs)Pandapanda=newPanda(熊猫,”竹叶);/实
18、例化熊猫System.out.print(名字:+panda.getName()+t);System.out.println(食物:+panda.getFood()+t);Panda.Eat();/吃Panda.Sleep();睡觉System.out.println();Mousemouse=newMouse(老鼠,”大米”);/实例化老鼠System.out.print(名字:+mouse.getName()+t);System.out.print(食物:+mouse.getFood()+t);Mouse.Eat();吃Mouse.Sleep();睡觉Mouse.dig();打洞4汽车的基
19、本属性和行为.publicclassCar/汽车类privateStringname;/定义名字privateintpailia;/定义排量privateintoilconsume;/定义油耗privateintspeed;/定义时速publicStringgetName()/返回名字returnname;publicvoidsetName(Stringname)/设置名字=name;publicintgetPailia()/返回排量returnpailia;publicvoidsetPailia(intpailia)/设置排量this.pailia=pailia;publicintgetOi
20、lconsume()/返回油耗returnoilconsume;publicvoidsetOilconsume(intoilconsume)/设置油耗this.oilconsume=oilconsume;publicintgetSpeed()/返回时速returnspeed;publicvoidsetSpeed(intspeed)/设置时速this.speed=speed;publicstaticvoidfire()/点火TOC o 1-5 h zSystem.out.print(点火!”);publicstaticvoidoutfire()/熄火System.out.print(熄火!”);
21、publicstaticvoidgo()/前进System.out.print(前进!”);publicstaticvoidback()/倒退System.out.print(倒退!”);publicstaticvoidwhistle。/鸣笛System.out.print(鸣笛!”);publicCar(Stringname,intpailia,intoilconsume,intspeed)/构造方法=name;this.pailia=pailia;this.oilconsume=oilconsume;this.speed=speed;Publicstaticvoidmain(Stringa
22、rgs)Carcar=newCar(宝马,100,50,100);/实例化一个汽车System.out.println(汽车的属性:);System.out.println();System.out.print(汽车品牌:+car.getName()+t);System.out.print(排量:+car.getPailia()+ml+t);System.out.print(油耗:+car.getOilconsume()+ml/h+t);System.out.println(时速:+car.getSpeed()+km/h);System.out.println();System.out.pri
23、ntln();System.out.println(汽车的行为:);System.out.println();publicSqure(intsi)/构造方法this.sl=si;publicclassTest/测试类publicstaticvoidmain(Stringargs)Squres=newSqure(5);+s.grith()+t);System.out.print(”正方形边长:+s.getSI()+t+周长System.out.println(”面积:+s.area();四、实验过程原始记录(数据、图表、计算等)注:此次报告没有相关数据,实验过程详见第二部分实验原理。五、实验结果及分析,以及心得体会定义圆类Circle.62.8318125.6636188.4954Circle314.1591256.636227.431-MJsersSAdninistratnrDesktopjauacCircle.java的12300-面间面123半半兰ti勺勺勺A-JnpAUUJnDJ-123.B00233圆圆圆心得体会:主要是构建3个对象,操作过程中,老是出现3个圆对象结果相同的情况,反复上机测试才发现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年青岛大学成人本科期末考试题库
- 刮痧健康指导
- 第20课马克思主义的诞生2026-2027学年统编版九年级历史上册
- 第一单元 确定位置(单元自测提高卷)-2026人教版六年级数学上册(A4版)
- 2026年江西省赣州市高考英语二模试卷
- 部编版七年级语文上册《走一步再走一步》同步练习
- 湖南永州市零陵区2026年上期义务教育阶段期末考试七年级英语(含答案)
- 湘教版八年级地理上册《第一章 中国的疆域与人口》单元测试卷(带答案)
- 二维码就是一把实名制的菜刀
- 管理制度体系设计
- 投标物资运达施工现场后的保护措施和要求
- 2026年单招人文素养测试题及答案
- 北京市离婚协议书(2026年规范备案版)
- 教师网络行为规范制度
- 医疗机构过敏性疾病门诊建设规范
- 电烙铁使用全攻略:从基础操作到故障维修
- (2025秋新版)湘科版二年级上册科学全册教学设计(教案)
- 2025年中小学中层干部竞聘笔试题及答案
- DB34∕T 4180-2022 农村公益性公墓建设规范
- 金融风险管理温红梅
- 江苏省安全生产许可证实施细则
评论
0/150
提交评论