版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
卷面向对象程序设计实验报告学号:410065姓名:纪啥晔提交日期:2012.10.14成绩:东北大学秦皇岛分校实验一类与对象一、 实验目的掌握类的声明。掌握对象的创建。掌握方法的定义和调用。掌握构造函数的使用。二、 实验内容编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,再定义一个方法setDemo对这三个变量进行初始化,然后定义一个方法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。具体代码如下:publicclassbox(doublelongth,weigth,heigth;voidsetDemo(doublel,doublew,doubleh)(longth=l;weigth=w;heigth=h;System.out.printlnC长:〃+l+〃〃+〃宽:〃+w+〃〃+〃高:〃+h);}voidgetV(doublel,doublew,doubleh)(v=l*w*h;System.out.println(〃V=〃+v);}publicstaticvoidmain(String[]args)(boxb=newbox();b.setDemo(8,4,5);b.getV(8,4,5);}}将上题的方法setDemo改用构造函数实现初始化。具体代码如下:publicclassBox1(doublelongth,weigth,heigth;Box1(doublel,doublew,doubleh)(longth=l;weigth=w;heigth=h;System.out.println(〃长:〃+l+〃〃+〃宽:〃+w+〃〃+〃高:〃+h);}voidgetV(doublel,doublew,doubleh)(v=l*w*h;System.out.println(〃V=〃+v);}publicstaticvoidmain(String[]args)(Box1b=newBox1(7,8,9);b.getV(7,8,9);}}三、思考题一个方法或一个块内定义的变量是否可以在方法外或块外使用?这种变量称为什么?方法的形式参数是否可以在方法之外使用?为什么说构造函数是一种特殊的方法?特殊在哪里?构造函数什么时候执行?被谁调用?编程创建一个Point类,在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。并创建一个对象验证。提示:关键代码如下:voidmove(intnewX,intnewY){x=newX;y=newY;}voidprint(){System.out.println(name+":x="+x+"y="+y);}…p.print();p.move(50,50);System.out.println("**aftermoving**");p.print();//callmethodofanobject定义一个类实现银行帐户的概念,包括的变量有“帐号”和“存款余额”,包括的方法有“存款”、“取款”和“查询余额”。定义主类,创建帐户类的对象,并完成相应操作。提示:关键代码如下:publicintgetleftmoney(){returnleftmoney;}publicvoidsavemoney(doublemoney){leftmoney+=money;}publicvoidgetmoney(doublemoney){if(money<=leftmoney)leftmoney-=money;elseSystem.out.println("只能取:"+leftmoney);}…bankaccountba=newbankaccount(123456,1000);ba.savemoney(2000);System.out.println("存入2000元后余额为:"+ba.getleftmoney());ba.getmoney(1500);System.out.println("1500元后余额为:"+ba.getleftmoney())实验二继承与多态一、 实验目的掌握类的继承方法。掌握变量的继承和覆盖。掌握方法的继承、重载和覆盖。了解接口的实现方法。二、 实验内容运行下面的程序,理解成员变量的继承与隐藏。importjava.io.*;classsum_3(intsum,num1,num2;staticintnum3;〃定义构造函数初始化对象sum_3()(num1=0;num2=0;num3=0;sum=0;}}classsub_sum3extendssum_3(intsum,num1,num2;〃隐藏父类sum_3中的实例变量staticintnum3;〃隐藏父类sum_3中的类变量voidsum(inti,intj,intk)(num1=i;num2=j;num3=k;sum=num1+num2+num3;}}publicclasscomputing(publicstaticvoidmain(Stringarg[])(sub_sum3m1=newsub_sum3();m1.sum(100,200,300);System.out.println("sum="+m1.num1+"+"+m1.num2+"+"+m1.num3+"="+m1.sum);}}运行下面的程序,理解方法的继承。classSort3(doublemax1,max2,max3;Sort3()(max1=-1;max2=-1;max3=-1;}voidsort()(doubles;if(max1<max2)(s=max1;max1=max2;max2=s;}if(max1<max3)(s=max1;max1=max3;max3=s;}if(max2<max3)(s=max2;max2=max3;max3=s;}}}classsub_Sort3extendsSort3(voidsubsort(doublei,doublej,doublek)(max1=i;max2=j;max3=k;sort();〃调用父类中的方法sort()}}publicclassClass1(publicstaticvoidmain(Stringargs[])(sub_Sort3m1=newsub_Sort3();m1.subsort(100,200,300);System.out.println("三个数从大到小为:"+m1.max1+","+m1.max2+","+m1.max3);}}运行下面的程序,理解方法的重载。classSort2or3(doublemax1,max2,max3;Sort2or3()(max1=-1;max2=-1;max3=-1;}voidsort(doublei,doublej)(doubles;max1=i;max2=j;if(max1<max2)(s=max1;max1=max2;max2=s;}}voidsort(doublei,doublej,doublek)(doubles;max1=i;max2=j;max3=k;if(max1<max2)(s=max1;max1=max2;max2=s;}if(max1<max3)(s=max1;max1=max3;max3=s;}if(max2<max3)(s=max2;max2=max3;max3=s;}}}publicclassClass1(publicstaticvoidmain(Stringargs[])(Sort2or3m1=newSort2or3();m1.sort(100,200);System.out.println("两个数从大到小为:"+m1.max1+","+m1.max2);m1.sort(50,150,100);System.out.println("三个数从大到U小为:"+m1.max1+","+m1.max2+","+m1.max3);}}运行下面的程序,理解方法的覆盖。classsort_Demo(inti,j,k,swap;sort_Demo()(i=j=k=swap=0;}voidsort(intt1,intt2[])( 〃父类中的方法用来实现升序〃用选择法按升序排列for(i=0;i<t1-1;i++){k=i;for(j=i+1;j<t1;j++)if(t2[j]<t2[k])k=j;if(k!=i){swap=t2[i];t2[i]=t2[k];t2[k]=swap;}}}}classsub_sort_Demoextendssort_Demo{voidsort(intt1,intt2[]){ 〃子类中的方法实现降序〃用选择法实现降序排列for(i=0;i<t1-1;i++){k=i;for(j=i+1;j<t1;j++)if(t2[j]>t2[k])k=j;if(k!=i){swap=t2[i];t2[i]=t2[k];t2[k]=swap;}}}}publicclassClass1{publicstaticvoidmain(Stringargs[]){inta[]={34,12,8,67,88,23,98,101,119,56};sort_Demom1=newsort_Demo();sub_sort_Demom2=newsub_sort_Demo();System.out.println("排序前的数据为:");for(inti=0;i<10;i++)System.out.print(""+a[i]);〃调用父类中的sotr()方法m1.sort(a.length,a);System.out.println("\n按升序排列的数据为:");for(inti=0;i<10;i++)System.out.print(""+a[i]);〃调用子类中的sort()方法,该方法实现了对父类中方法的覆盖m2.sort(a.length,a);System.out.println("\n按降序排列的数据为:");for(inti=0;i<10;i++)System.out.print(""+a[i]);}}定义两个接口,其方法协议分别完成两个数的加法和减法操作,然后创建一个类实现这两个接口的方具体代码如下:packageAAA;publicinterfaceComputablel(doubleadd(doublea,doubleb);}packageAAA;publicinterfaceComputable2(doublesub(doublec,doubled);}packageAAA;publicclassComputableimplementsComputable1,Computable2{publicdoubleadd(doublea,doubleb){doublem=a+b;returnm;}publicdoublesub(doublec,doubled){doublet=c-d;returnt;}}packageAAA;publicclassCompute{publicstaticvoidmain(String[]args){ComputableL=newComputable();doublea=5;doubleb=3;doublec=8;doubled=2;System.out.println(〃a+b=〃+L.add(a,b));Syste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高考生物二轮复习核心考点专项突破细胞呼吸与光合作用练习含解析
- 2024-2025学年高中地理第六章人类与地理环境的协调发展单元评价含解析新人教版必修2
- 攻读博士学位研究生计划书
- 2024年锅炉炉膛安全监控装置项目发展计划
- 玉溪师范学院《环境和资源保护法》2022-2023学年期末试卷
- 2024年金融专用设备:保险柜项目发展计划
- 玉溪师范学院《操作系统》2023-2024学年期末试卷
- 贵州省贵阳市2024年高三2月第一次调研数学试题理试题
- 盐城师范学院《学前儿童游戏》2021-2022学年第一学期期末试卷
- 2024年半包覆型镀铝玻璃纤维合作协议书
- 新进交警培训课件
- 标本运送培训课件
- 2024年中国船级社质量认证公司招聘笔试参考题库含答案解析
- 《法律效力层级》课件
- 医院新技术、新项目准入制度
- 护士与医生的合作与沟通
- GB 42295-2022电动自行车电气安全要求
- 产品系统设计开发 课件 第4、5章 产品系统设计类型、产品系统设计开发综合案例
- 1编译原理及实现课后题及答案
- 焊接材料的质量控制和追溯规范
- 让阅读成为习惯家长会课件
评论
0/150
提交评论