07+张琳+实验一.doc_第1页
07+张琳+实验一.doc_第2页
07+张琳+实验一.doc_第3页
07+张琳+实验一.doc_第4页
07+张琳+实验一.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

实验一 类与对象、继承实验课程名:Java程序设计专业班级: 应用技术 学号: 07 姓名: *张琳* 实验时间: 3.12 3.18. 3.26 实验地点: K4-307 指导教师: 伍红华 一、实验目的和要求使用类来封装对象的属性和功能;掌握类变量与实例变量,以及类方法与实例方法的区别;巩固以下概念:子类的继承性子类对象的创建过程成员变量的继承与隐藏方法的继承与重写二、实验内容1一个简单的应用程序 实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。 程序运行效果示例:程序运行效果如下图所示: 程序模板: Hello.javapublic class Hello public static void main (String args ) System.pr(“学号:20015555011,姓名:伍红华”); System.out.println(你好,很高兴学习Java); / 【代码1】 命令行窗口输出你好,很高兴学习Java A a=new A(); a.fA(); class A void fA() System.out.println(We are students); / 【代码2】 命令行窗口输出We are students 实验后的练习:1 编译器怎样提示丢失大括号的错误?Syntax error, insert to complete ClassBody2 编译器怎样提示语句丢失分号的错误?Syntax error, insert ; to complete BlockStatements3 编译器怎样提示将System写成system这一错误?system cannot be resolved4 编译器怎样提示将String写成string这一错误?string cannot be resolved to a type2三角形、梯形和圆形的类封装 实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。 程序运行效果示例: 程序模板:AreaAndLength.javaclass Trangledouble sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c)sideA=a; sideB=b; sideC=c;/【代码1】参数a,b,c分别赋值给sideA,sideB,sideCif(a+bc&a+cb&b+ca)/【代码2】a,b,c构成三角形的条件表达式boo=true;/【代码3】给boo赋值elseboo=false;/【代码4】给boo赋值double getLength()length=sideA+sideB+sideC;return length;/【代码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;elseSystem.out.println(不是一个三角形,不能计算面积);return 0;public void setABC(double a,double b,double c)sideA=a;sideB=b;sideC=c;/【代码6】参数a,b,c分别赋值给sideA,sideB,sideCif(a+bc&a+cb&b+ca) /【代码7】a,b,c构成三角形的条件表达式boo=true;/【代码8】给boo赋值elseboo=false;/【代码9】给boo赋值class Laderdouble above,bottom,heigth,area;Lader(double a,double b,double h)above=a;bottom=b;heigth=h;/【代码10】方法体,将参数a,b,c分别赋值给above,bottom,heightdouble getArea()area=(above+bottom)*heigth/2.0;return area;/【代码11】方法体,,要求计算出area返回class Circledouble radius,area;Circle(double r)radius=r;/【代码12】方法体double getArea()return area=3.14159*radius*radius;/【代码13】方法体,要求计算出area返回double getLength()return 2*3.14159*radius;/【代码14】getArea方法体的代码,要求计算出length返回void setRadius(double newRadius)radius=newRadius;double getRadius()return radius;public class AreaAndLengthpublic static void main(String args)double length,area;Circle circle=null;Trangle trangle;Lader lader;circle=new Circle(10);/【代码15】创建对象circletrangle=new Trangle(3,4,5);/【代码16】创建对象tranglelader=new Lader(15,20,2);/【代码17】创建对象laderlength=circle.getLength();/ 【代码18】circle调用方法返回周长并赋值给lengthSystem.out.println(圆的周长:+length); area=circle.getArea();/【代码19】 circle调用方法返回面积并赋值给area System.out.println(圆的面积:+area); length=trangle.getLength();/【代码20】 trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); area=trangle.getArea();/【代码21】 trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); area=lader.getArea();/ 【代码22】lader调用方法返回面积并赋值给area System.out.println(梯形的面积:+area); trangle.setABC(12,34,1);/ 【代码23】trangle调用方法设置三个边,要求将三个边修改为12,34,1 area=trangle.getArea();/ 【代码24】trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); length=trangle.getLength();/【代码25】 trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); 实验后的练习:1程序中仅仅省略【代码15】,编译能通过吗? 能,但是会出现运行错误,因为Java编译器对空对象不做检查。2. 程序中仅仅省略【代码16】,编译能通过吗? 编译不能通过3. 程序中仅仅省略【代码15】,运行时出现怎样的异常提示? 1 给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC。double a() return sideA;double b() return sideB;double c() return sideC;2 让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。Cicle=new Circle(rl);System.out.println(“修改后的圆的周长: “+cicle.getLength();System.out.println(“修改后的圆的面积: “+cicle/getArea();3实例成员与类成员。 实验要求:按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。 程序运行效果示例: 程序模板:Example.javaclass Afloat a; /【代码1】声明一个float型实例变量astatic float b; /【代码2】声明一个float型类变量b,即static变量bvoid setA(float a)this.a=a;/ 【代码3】将参数a的值赋值给成员变量avoid setB(float b)this.b = b; /【代码4】将参数b的值赋值给成员变量bfloat getA()return a;float getB()return b;void inputA()System.out.println(a);static void inputB()System.out.println(b);public class Example public static void main(String args) A.b = 100; /【代码5】通过类名操作类变量b,并赋值100A.inputB();/【代码6】通过类名调用方法inputB()A cat=new A();A dog=new A();cat.setA(200); /【代码7】cat象调用方法setA(int a)将cat的成员a的值设置为200cat.setB(400);/【代码8】cat调用方法setB(int b)将cat的成员b的值设置为400dog.setA(150);/ 【代码9】dog象调用方法setA(int a)将dog的成员a的值设置为150dog.setB(300);/ 【代码10】dog调用方法setB(int b)将dog的成员b的值设置为300cat.inputA();/【代码11】cat调用inputA()。cat.inputB();/【代码12】cat调用inputB()。dog.inputA();/【代码13】dog调用inputA()。 dog.inputB();/【代码14】dog调用inputB()。 实验后的练习:1. 将inputA()方法中的System.out.println(a);改写为System.out.println(a+b);编译是否出错?为什么?出错,实例方法不能直接引用。态变量b System.out.println(a+A.b);就对了2. 将inputB()方法中的System.out.println(b);改写为System.out.println(a+b);编译是否报错?为什么? 有错,静态方法只能引用静态变量 System.out.println(this.a+b);就对了三、结论(写本次实验的收获)这次试验是我首次用JAVA进行编程,以前都只是照着书上的代码运行的,而通过这次的上级操作补充代码,让我感觉上有点不一样,而在这之前从理论课上学到的一些简单的理论知识,则是通过这次试验来进行练习的。第一题中则是一个简单的打印出Hello的程序,代码需要补全的很简单,但要

温馨提示

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

评论

0/150

提交评论