类与对象基础实验(一)实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

浙江大学城市学院实验报告课程名称面向对象程序设计实验项目名称类与对象基础实验(一)学生姓名专业班级学号一.实验目的和要求1.掌握对象与类的关系2.掌握类的域、方法、构造器的概念3.掌握对象的创建与初始化4.掌握方法和域(静态和非静态)的使用方式5.掌握Math类,掌握静态成员的使用方式6.理解方法和构造器重载现象二.实验内容1.程序阅读并回答问题2.类的使用3.编程实验:猜数字4.编程实验:素数判断与统计三.实验结果与分析(可将程序运行结果截屏,也可分析运行结果)1..程序阅读并回答问题:阅读实验讲义的对应代码,回答以下问题。(1)将上述代码编译运行,将运行结果截图。答:(2)上述源码中共定义了几个类?分别刻画了哪些数学图形?Triangle类有哪些域和方法?Triangle的这些域和方法是静态的还是非静态的?答:上述程序共定义四个类分别刻画了三角形,梯形,圆形域有:sideA,sideB,sideC,area,length,boo方法有:Triangle//判断是否为三角形getLength//给出三角形的周长getArea//给出三角形的面积setABC//判断是否为三角形其中所有的域都为非静态的,所有方法都为非静态方法(3)类和对象是什么关系?请从上述AreaAndLength.java中举例说明如何创建对象。答:类是对象的模板,也是对象的类型,描述一组具有相同属性和行为的对象定义一个类。例如classTriangle。然后在main方法中定义域,然后给定义好的域调相应的类方法,赋予对象数据并构造。(4)Triangle类中出现的Math.sqrt是什么?请举例说明Math类中还有哪些常用域和方法?答:Math.sqrt是math类中的求开根号的方法Math.exp(5)静态域和方法与非静态域和方法在使用时有什么区别?请从上述AreaAndLength.java中举例说明。答:静态域可被所有对象共享,并且在没有任何对象之前,就可以访问静态域,调用静态方法,并不需要创建这个类的对象;同一非静态域在不同对象之间相互独立,非静态方法的执行必须通过对象,所以需要事先创建该类的某个对象。例如:publicstaticvoidmain(Stringargs[])不需要创建对象,当程序运行时自动运行。而其他的类,例如classTriangle就需要main中创建好对象才能够调用(6)什么是构造器?构造器与一般方法的区别是什么?构造器可以重载吗?请从上述AreaAndLength.java中举例说明。答:构造器用于创建对象,并初始化对象的状态构造器与一般方法的区别:构造器的名称必须和类名相同,而方法名不受限制。构造器没有返回类型,而方法名则不受限制。一般通过new调用构造器来创建对象,而方法则没有这种调用格式。构造器可以重载非静态classTrianglepublic和Triangle(doublea,doubleb,doublec)静态Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC))2.已有Rectangle类(矩形类),它有两个浮点型属性length(长)和width(宽)。该类具有两个构造函数(无参和有参),perimeter()和area()方法分别返回矩形的周长和面积,请编写相应的包含main方法的类和main方法来测试Rectangle类。(程序结构参考讲义)(1)请将源码编写完整如下:publicclassTest3{publicstaticvoidmain(Stringargs[]){Rectangler=newRectangle();System.out.println(无参周长是:+r.perimeter());System.out.println(面积是:+r.area());r=newRectangle(1,1);System.out.println(有参周长是:+r.perimeter());System.out.println(面积是:+r.area());}}classRectangle{doublelength,width;Rectangle(){doublealength;doubleawidth;alength=1;awidth=1;length=alength;width=awidth;}Rectangle(doublealength,doubleawidth){length=alength;width=awidth;}publicdoubleperimeter(){return(length+width)*2;}publicdoublearea(){returnlength*width;}}(2)程序运行结果截图如下:3.编程实验:猜数字。程序运行的界面截屏如下:源程序:importjava.util.*;importjava.math.*;publicclassguessnum{publicstaticvoidmain(Stringargs[]){Scannerscanner=newScanner(System.in);intnum=(int)(Math.random()*100+1);System.out.println(有一个1-100之间的随机整数,请您猜猜看);System.out.println(请输入您的猜测:);intchoice=0;do{if(scanner.hasNextInt())choice=scanner.nextInt();if(numchoice)System.out.println(您猜小了,请继续猜:);if(numchoice)System.out.println(您猜大了,请继续猜:);if(num==choice)System.out.println(恭喜您,答对了);}while(choice!=num);}}4.编程实验:素数判断与统计。程序运行的界面截屏如下:源代码:importjava.util.*;publicclassHello{staticbooleanisPrime(intn){//如果参数n是素数,那么返回true;否则返回falsefor(inti=2;i=Math.sqrt(n)+1;i++){if(n==2)returnfalse;if(n%2!=0)returntrue;elsereturnfalse;}returntrue;}publicstaticvoidmain(Stringargs[]){Scannerscanner=newScanner(System.in);System.out.println(请输入一个区间:(如:1100));inta=0,b=0;do{if(scanner.hasNextInt()){a=scanner.nextInt();}if(scanner.hasNextInt()){b=scanner.nextInt();}if(a0||b0)System.out.println(请输入两个正整数);}while(a=0||b=0);if(ab){intitem=a;a=b;b=item;}intcount=0;for(inti=a;i=b;i++){if(isPrime(i)==true)count++;}System.out.println(a+到+b+有+count+个素数);}四.讨论、心得(可写遇到的问题及解决方法,或者对技术的理解等)

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功