实验3 类与对象基础实验(一)

2025-07-12

实验3 类与对象基础实验(一)

一、 实验目的

1. 掌握对象与类的关系

2. 掌握类的域、方法、构造器的概念 3. 掌握对象的创建与初始化

4. 掌握方法和域(静态和非静态)的使用方式 5. 掌握Math类,掌握静态成员的使用方式 6. 理解方法和构造器重载现象

二、实验内容

1. 程序阅读并回答问题 2. 类的使用

3. 编程实验:猜数字

4. 编程实验:素数判断与统计

三、实验步骤

1. 程序阅读并回答问题:阅读以下代码,回答问题。 //AreaAndLength.java class Triangle {

double sideA,sideB,sideC,area,length; boolean boo; Triangle(){};

public Triangle(double a,double b,double c){ sideA=a; sideB=b; sideC=c;

if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA) {

boo=true; } else {

boo=false; } }

double getLength(){

length=sideA+sideB+sideC; return 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; } else {

System.out.println(\不是一个三角形,不能计算面积\ return 0; } }

public void setABC(double a,double b,double c){ sideA=a; sideB=b; sideC=c;

if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA) {

boo=true; } else {

boo=false; } } }

class Lader {

double above,bottom,height,area;

Lader(double a,double b,double h){ above=a; bottom=b; height=h; }

double getArea(){

area=(above+bottom)*height/2; return area; } }

class Circle {

double radius,area,length; Circle(double r){ radius=r; }

double getArea(){

area=Math.PI*radius*radius; return area;

}

double getLength(){

length=2*Math.PI*radius; return length; }

void setRadius(double newRadius){ radius=newRadius; }

double getRadius(){ return radius; } }

public class AreaAndLength {

public static void main(String args[]) {

double length,area; Circle circle=null; Triangle triangle ; Lader lader;

circle=new Circle(5); triangle =new Triangle(3,5,4); lader=new Lader(2,3,4); length=circle.getLength();

System.out.println(\圆的周长:\ area=circle.getArea();

System.out.println(\圆的面积:\ length=triangle .getLength();

System.out.println(\三角形的周长:\ area=triangle .getArea();

System.out.println(\三角形的面积:\ area=lader.getArea();

System.out.println(\梯形的面积:\ triangle .setABC(12,34,1); if(triangle .boo) { area=triangle .getArea();

System.out.println(\三角形的面积:\ } else { System.out.println(\不能构成三角形\ }

if(triangle .boo) { length=triangle .getLength();

System.out.println(\三角形的周长:\

} else { System.out.println(\不能构成三角形\ } } }

(1) 将上述代码编译运行,将运行结果截图。

(2) 上述源码中共定义了几个类?分别刻画了哪些数学图形?Triangle类有哪些域和方法?

Triangle的这些域和方法是静态的还是非静态的?

(3) 类和对象是什么关系?请从上述AreaAndLength.java中举例说明如何创建对象。

(4) Triangle类中出现的Math.sqrt是什么?请举例说明Math类中还有哪些常用域和方法?

(5) 静态域和方法与非静态域和方法在使用时有什么区别?请从上述AreaAndLength.java中举例

说明。

(6) 什么是构造器?构造器与一般方法的区别是什么?构造器可以重载吗?请从上述

AreaAndLength.java中举例说明。

2. 已有Rectangle类(矩形类),它有两个浮点型属性length(长)和width(宽)。该类具有两个构造器(无参和有参),perimeter()和area()方法分别返回矩形的周长和面积, 请编写相应的包含main方法的类和main方法来测试Rectangle类。

测试示例如下:

请输入矩形a的长和宽: 12 24

请输出矩形a的周长和面积: 矩形a的周长:72.0 矩形a的面积:288.0 请输出矩形b的周长和面积: 矩形b的周长:50.0 矩形b的面积:150.0

程序结构如下:

import java.util.Scanner; class Rectangle{

double length,width;

Rectangle(){};

Rectangle(double alength,double awidth){ }

public double perimeter(){ } }

return (length+width)*2;

return length*width; length=alength; width=awidth;

public double area(){

public class Test2 { }

public static void main(String args[]){

//请用无参构造器创建矩形a,用有参构造器创建矩形b

(1) 请将源码编写完整。

(2) 程序运行结果截图。

3. 编程实验:猜数字。编写一个Java应用程序,这个程序首先随机产生一个0到100之间的数字,然后由用户猜测这个随机数字的大小(即用户输入数字,并将整个数字与随机产生的数字比较)。猜测过程的要求是:

? 如果输入的数字与随机数相等,那么输出“恭喜你,猜对了”, ? 如果输入的数字大于随机数,那么输出“你猜大了,请继续猜”, ? 如果输入的数字小于随机数,那么输出“你猜小了,请继续猜”, ? 通过循环上述过程,直到猜到随机数为止。

注意:随机数产生可以通过Math类的random方法。

程序运行输入输出界面如下(注意:程序运行时产生的随机数一般不同):

4. 编程实验:素数判断与统计。编写一个Java程序,可以统计某一个数字区间(比如从1到100)的素数个数,并输出这些素数。要求如下:

? 数字区间从键盘输入。比如,键盘输入1和100,分别表示区间的下限和上限。 ? 需要单独编写静态的isPrime方法,如下: static boolean isPrime(int n){

//如果参数n是素数,那么返回true;否则返回false }

? 通过循环一次判断区间内的数字是否是素数(调用上述isPrime方法)。


实验3 类与对象基础实验(一).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:九月黄是什么?九月黄金蕉发展前景分析_ss

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219