浙江大学城市学院实验报告
课程名称面向对象程序设计
实验项目名称类与对象基础实验(一)
学生姓名专业班级学号
一. 实验目的和要求
1. 掌握对象与类的关系
2. 掌握类的域、方法、构造器的概念
3. 掌握对象的创建与初始化
4. 掌握方法和域(静态和非静态)的使用方式
5. 掌握Math类,掌握静态成员的使用方式
6. 理解方法和构造器重载现象
二. 实验内容
1. 程序阅读并回答问题
2. 类的使用
3. 编程实验:猜数字
4. 编程实验:素数判断与统计
三. 实验结果与分析(可将程序运行结果截屏,也可分析运行结果)
1. . 程序阅读并回答问题:阅读实验讲义的对应代码,回答以下问题。(1)将上述代码编译运行,将运行结果截图。
(2)上述源码中共定义了几个类?分别刻画了哪些数学图形?Triangle类有哪些域和方法?
Triangle的这些域和方法是静态的还是非静态的?
答:定义了三个类,分别刻画了求三角形,梯形,圆的周长以及面积问题
Triangle类中域有double sideA,sideB,sideC,area,length;boolean boo;域是非静态的
方法有double getLength();public double getArea()以及public void setABC(double a,double b,double c)方法也是非静态的
(3)类和对象是什么关系?请从上述AreaAndLength.java中举例说明如何创建对象。
答:类是对象的模版,对象是类的一个实例
对象的创建利用构造器,比如在Triangle中存在着构造器Triangle(){};在最后的main函数中存在着triangle =new Triangle(3,5,4);创建函数对象并且赋值
(4)Triangle类中出现的Math.sqrt是什么?请举例说明Math类中还有哪些常用域和方法?
答:Math.sqrt为数学类中求开平方的静态方法
area=Math.PI*radius*radius;得知math中存在Math.PI常用域
常用的方法有Math.random()返回随机数字等
(5)静态域和方法与非静态域和方法在使用时有什么区别?请从上述AreaAndLength.java中
举例说明。
答:调用非静态域和方法的时候是对象引用.非静态方法名(参数)或者对象引用.非静态域名,例如Area();
调用静态域和方法的时候是类名.静态方法名()和类名.静态域名,例如length=2*Math.PI*radius;
(6)什么是构造器?构造器与一般方法的区别是什么?构造器可以重载吗?请从上述
AreaAndLength.java中举例说明。
答:构造器用于创建对象并初始化对象状态,区别在于构造器没有返回类型但是方法有返回类型,且构造器一般通过调用new调用构造器来创建对象,而方法没有这种调用方式
构造器可以重载
例如Triangle(){};和public Triangle(double a,double b,double c)
2. 已有Rectangle类(矩形类),它有两个浮点型属性length(长)和width(宽)。该类具有两个构造函数(无参和有参),perimeter()和area()方法分别返回矩形的周长和面积, 请编写相应的包含main方法的类和main方法来测试Rectangle类。(程序结构参考讲义)
(1)请将源码编写完整如下:
import java.util.Scanner;
class Rectangle{
double length,width;
Rectangle(){};
Rectangle(double alength,double awidth){
length=alength;
width=awidth;
}
public double perimeter(){//矩形的周长
return (length+width)*2;
}
public double area(){//矩形的面积
return length*width;
}
}
public class Text2 {
public static void main(String args[]){
//请用无参构造函数创建矩形a,用有参构造函数创建矩形b
Scanner scanner=new Scanner(System.in);
System.out.println("请输入矩形a的长和宽 :");
nextint()方法Rectangle r1=new Rectangle();
r1.Int();
r1.Int();
System.out.println("请输出矩形a的周长和面积:");
System.out.println( "矩形a的周长" +  r1.perimeter());
System.out.println( "矩形a的面积:" + r1.area());
Rectangle rectangle = new Rectangle(10,15);
System.out.println("请输出矩形b的周长和面积:");
System.out.println( "矩形b的周长" + rectangle.perimeter());
System.out.println( "矩形b的面积:" + rectangle.area());
}
}
(2)程序运行结果截图如下:
3. 编程实验:猜数字。程序运行的界面截屏如下:
4. 编程实验:素数判断与统计。程序运行的界面截屏如下:
四. 讨论、心得(可写遇到的问题及解决方法,或者对技术的理解等)构造器以及方法使用等

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。