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 }

 

五、运行结果

  

 

posted @ 2013-01-16 02:03  Cocoon  阅读(1139)  评论(0编辑  收藏  举报