• Lesson_5 作业_2 计算圆的面积和周长


    一、题目描述

      创建一个圆心类,圆心类中包含两个属性x,y坐标float类型。
      请在圆心类中创建两个带参数的构造方法(第一个带有x的参数,第二个带有x和y)。第二个构造方法中调用第一个构造方法。
      然后创建一个圆类,圆类中包含一个属性r半径float类型。请在圆类中同样提供构造方法。并且提供两个方法,一个用来返回面积,一个用来返回周长。

      最后写个测试类,创建出一个圆,同时计算出其面积。

    二、关于 java.lang.Math

      1、java.lang.Math类中包含E和PI两个静态常量,以及进行科学计算的类(static)方法,可以直接通过类名调用。
        public static final Double E = 2.7182818284590452354
        public static final Double PI = 3.14159265358979323846

      2、常用方法

        abs(double x):传回 x 的绝对值。X也可int long float
        sin(double x): 传回x径度的正弦函数值
        cos(double x):传回x径度的余弦函数值
        tan(double x): 传回x径度的正切函数值
        asin(double x):传回x值的反正弦函数值。
        acos(double x):传回x值的反余弦函数值。
        atan(double x):传回x值的反正切函数值。
        atan2(double x, double y):传回极坐标(polar)的θ值
        floor(double x):传回不大于x的最大整数值,即向下取整
        ceil(double x):传回不小于x的最小整数值,即向上取整
        exp(double x):传回相当于ex值
        log(double x):传回x的自然对数函数值
        max(double x,double y):传回x、y较大数
        min(double x,double y):传回x、y较小数
        pow(double x,double y):传回x的y次幂值
        sqrt(double x): 传回x开平方值
        rint(double x):传回最接近x的整数值
        round(double x):传回x的四舍五入值
        toDegrees(double angrad):传回将angrad径度转换成角度
        toRadians(double angdeg): 传回将angdeg角度转换成径度
        random():传回随机数值,产生一个0-1之间的随机数(不包括0和1)

        还有很多方法可以查API文档http://docs.oracle.com/javase/7/docs/api/

    三、要在一个构造方法中调用另一个构造方法,可以使用this()的方式调用,this()必须作为构造方法的第一条语句,换句话说,在this()之前不能有任何的可执行代码。

     

    四、代码

     1 /*****************************问题描述**************************
     2 *       创建一个圆心类,圆心类中包含两个属性x,y坐标float类型。
     3 *       请在圆心类中创建两个带参数的构造方法(第一个带有x的参数,
     4 *   第二个带有x和y)。第二个构造方法中调用第一个构造方法。
     5 *       然后创建一个圆类,圆类中包含一个属性r半径float类型。
     6 *       请在圆类中同样提供构造方法。并且提供两个方法,一个用来
     7 *   返回面积,一个用来返回周长。
     8 *       最后写个测试类,创建出一个圆,同时计算出其面积。
     9 *****************************************************************/
    10 
    11 
    12 /***********************************************************
    13 *
    14 *                  计算圆的周长和面积
    15 *                     2013-01-16
    16 *                    by CocoonFan
    17 *
    18 ***********************************************************/
    19 
    20 import java.lang.Math;
    21 import java.util.Scanner;
    22 
    23 public class CaclCircle{
    24     public static void main(String []args){
    25         CircleCenter circleCenter = new CircleCenter(1.4f,20.0f);
    26         Circle circle = new Circle(4.3f);
    27         System.out.println("圆心的坐标为 ( " + circleCenter.x + "," + circleCenter.y + " )");
    28         System.out.println("半径r = " + circle.radius + " 的圆的周长为:" + circle.circumference());
    29         System.out.println("半径r = " + circle.radius + " 的圆的面积为:" + circle.area());
    30 
    31     }
    32 }
    33 
    34 //圆心类
    35 class CircleCenter{
    36     float x;
    37     float y;
    38 
    39     //构造方法
    40     public CircleCenter(float x){
    41         this.x = x;
    42     }
    43     public CircleCenter(float x, float y){
    44         this(x);//第二个构造方法调用第一个构造方法
    45         this.y = y;
    46     }
    47 }
    48 
    49 class Circle{
    50     float radius;//半径
    51 
    52     //构造方法
    53     public Circle(){
    54         radius = 0;
    55     }
    56     public Circle(float radius){
    57         this.radius = radius;
    58     }
    59     
    60     //计算面积
    61     public float area(){
    62         float a =(float)(Math.PI*radius*radius);
    63       return a;
    64     }
    65 
    66     //计算周长
    67     public float circumference(){
    68         float c = (float)(2*Math.PI*radius);
    69         return c;
    70     }
    71 }

    老师的代码

    1 /****************************************************************
    2 *                           作业解答
    3 *                  题目二:计算圆的周长和面积
    4 *                      note by CocoonFan
    5 *                          2013-01-16
    6 ****************************************************************/
     1 public class Ans_CalcCircle{
     2     public static void main(String []args){
     3         //测试:对象的定义 
     4         //类名 对象名 = new 类名([参数1, 参数2,···]);
     5         Circle c = new Circle(24.5f);
     6         System.out.println("圆的面积" + c.area());
     7         System.out.println("圆的周长" + c.circumference());
     8     }
     9 }
    10 
    11 class Pointer{
    12     private float x;
    13     private float y;
    14 
    15     public Pointer(float x){
    16         this.x = x;
    17     }
    18     public Pointer(float x, float y){
    19         this(x);
    20         this.y = y;
    21     }
    22 }
    23 
    24 class Circle{
    25 
    26     private float r;
    27     public final float PI = 3.14159f;//定义常量:程序中不允许改变他的值
    28 
    29     public Circle(float r){
    30         this.r = r;
    31     }
    32 
    33     public float area(){
    34         return PI * r * r;
    35     }
    36 
    37     public float circumference(){
    38         return 2*PI*r;
    39     }
    40 }

    五、运行结果

      

     

  • 相关阅读:
    C++ 函数设计原则
    C++ 转换函数搭配友元函数
    C++ 自动转换和强制类型转换(用户自定义类类型)
    C++ rand函数
    C++ 状态成员
    C++ 友元函数
    C++ 运算符重载
    RabbitMQ的简单应用
    Python的正则表达式
    Python的应用小案例
  • 原文地址:https://www.cnblogs.com/CocoonFan/p/2862133.html
Copyright © 2020-2023  润新知