Java实验5 圆环类的定义与使用

题目类别: 实验

关键字: 类的定义 对象的创建

内容要求:

步骤1:

定义一个圆环类Ring,该类中有3个数据成员,分别是环的内半径、外半径和填充颜色。同时该类拥有一个返回环面积的方法。

仔细阅读下面程序,并在创建Ring.java程序并编译。
在这里插入图片描述
思考题1:

三个数据域变量的初始默认值分别是什么?

构造方法Ring(double iRadius, double oRadius, String color)前面能否有返回值类型?



步骤2: 编写如下的测试类程序TestRing.java,并编译运行,查看运行结果。
在这里插入图片描述


步骤3: 把TestRing.java程序中的语句
Ring ring = new Ring(5, 8, “RED”);
替换为
Ring ring = new Ring();
重新编译程序。


思考题2:此时有什么错误发生?分析出错原因。



步骤4: 为Ring.java程序添加如下构造方法,重新编译Ring.java和TestRing.java程序。
在这里插入图片描述

思考题3:

观察是否还有错误发生,为什么?

2个Ring方法之间是什么关系?



步骤5:

在Ring.java程序中为圆环类Ring添加2个方法分别计算环的内圆和外圆的周长。

然后在TestRing.java的main方法中添加相应输出周长的语句。

重新编译程序并运行。

提交:打包为可以执行的JAR文档,其中要包含源程序文件。



备注

所有思考题的回答,用注释的方式写在源程序文件的相关代码前面。



实现代码:

Ring类

package ex01;

/**
 思考题1:
 三个数据域变量的初始默认值分别是什么?
 构造方法Ring(double iRadius, double oRadius, String color)前面能否有返回值类型?

 答:
 三个数据域变量的初始默认值分别是0.0,0.0和null
 构造方法Ring(double iRadius, double oRadius, String color)前面不能有返回值类型
 */

public class Ring {
    double innerRadius; //内半径
    double outerRadius; //外半径
    String fillColor;   //填充颜色

    //构造方法,用于创建环的对象
    public Ring(double iRadius, double oRadius, String color) {
        innerRadius = iRadius;  //初始化内半径
        outerRadius = oRadius;  //初始化外半径
        fillColor = color;  //初始化填充颜色
    }

/**
思考题3:
观察是否还有错误发生,为什么?
2个Ring方法之间是什么关系?

 答:
 没有错误发生,因为该空参构造方法直接对Ring类内的3个变量进行赋值
 2个Ring是对立关系,一个是Ring类的全参构造方法,另一个是Ring类的无参构造方法
*/
    Ring(){
        innerRadius=1;
        outerRadius=2;
        fillColor="WHITE";
    }


    //计算并返回环面积的方法
    double getArea(){
        return (outerRadius*outerRadius-innerRadius*innerRadius)*Math.PI;
    }

    //计算环的内圆周长
    double getInnerPerimeter(){
        return 2*innerRadius*Math.PI;
    }

    //计算环的外圆周长
    double getOuterPerimeter(){
        return 2*outerRadius*Math.PI;
    }
}



TestRing类

package ex01;

/*
 步骤2的运行结果为:
 内半径:5.0
 外半径:8.0
 填充颜色:RED
 环的面积:122.52211349000193
*/


/**
 思考题2:此时有什么错误发生?分析出错原因。

 java里的报错内容:
 java:无法将类 ex01.Ring中的构造器 Ring应用到给定类型;
 需要: double,double,java.lang.String
 找到:    没有参数
 原因: 实际参数列表和形式参数列表长度不同

 出错原因:
 定义Ring类时只定义了Ring类的全参构造方法,而没有定义Ring类的无参构造方法
 */


public class TestRing {
    public static void main(String[] args) {
        Ring ring=new Ring(5,8,"RED");
        System.out.println("内半径:"+ring.innerRadius);
        System.out.println("外半径:"+ring.outerRadius);
        System.out.println("填充颜色:"+ring.fillColor);
        System.out.println("环的面积:"+ring.getArea());
        System.out.println("环的内圆周长:"+ring.getInnerPerimeter()); //周长
        System.out.println("环的外圆周长:"+ring.getOuterPerimeter()); //周长

        Ring ring1=new Ring();
        System.out.println("内半径:"+ring1.innerRadius);
        System.out.println("外半径:"+ring1.outerRadius);
        System.out.println("填充颜色:"+ring1.fillColor);
        System.out.println("环的面积:"+ring1.getArea());

    }
}

  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值