您的位置:首页 > 其它

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

2013-01-16 02:03 381 查看
一、题目描述

  创建一个圆心类,圆心类中包含两个属性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()之前不能有任何的可执行代码。

四、代码

/*****************************问题描述**************************
*       创建一个圆心类,圆心类中包含两个属性x,y坐标float类型。
*       请在圆心类中创建两个带参数的构造方法(第一个带有x的参数,
*   第二个带有x和y)。第二个构造方法中调用第一个构造方法。
*       然后创建一个圆类,圆类中包含一个属性r半径float类型。
*       请在圆类中同样提供构造方法。并且提供两个方法,一个用来
*   返回面积,一个用来返回周长。
*       最后写个测试类,创建出一个圆,同时计算出其面积。
*****************************************************************/

/***********************************************************
*
*                  计算圆的周长和面积
*                     2013-01-16
*                    by CocoonFan
*
***********************************************************/

import java.lang.Math;
import java.util.Scanner;

public class CaclCircle{
public static void main(String []args){
CircleCenter circleCenter = new CircleCenter(1.4f,20.0f);
Circle circle = new Circle(4.3f);
System.out.println("圆心的坐标为 ( " + circleCenter.x + "," + circleCenter.y + " )");
System.out.println("半径r = " + circle.radius + " 的圆的周长为:" + circle.circumference());
System.out.println("半径r = " + circle.radius + " 的圆的面积为:" + circle.area());

}
}

//圆心类
class CircleCenter{
float x;
float y;

//构造方法
public CircleCenter(float x){
this.x = x;
}
public CircleCenter(float x, float y){
this(x);//第二个构造方法调用第一个构造方法
this.y = y;
}
}

class Circle{
float radius;//半径

//构造方法
public Circle(){
radius = 0;
}
public Circle(float radius){
this.radius = radius;
}

//计算面积
public float area(){
float a =(float)(Math.PI*radius*radius);
return a;
}

//计算周长
public float circumference(){
float c = (float)(2*Math.PI*radius);
return c;
}
}


老师的代码

/****************************************************************
*                           作业解答
*                  题目二:计算圆的周长和面积
*                      note by CocoonFan
*                          2013-01-16
****************************************************************/


public class Ans_CalcCircle{
public static void main(String []args){
//测试:对象的定义
//类名 对象名 = new 类名([参数1, 参数2,···]);
Circle c = new Circle(24.5f);
System.out.println("圆的面积" + c.area());
System.out.println("圆的周长" + c.circumference());
}
}

class Pointer{
private float x;
private float y;

public Pointer(float x){
this.x = x;
}
public Pointer(float x, float y){
this(x);
this.y = y;
}
}

class Circle{

private float r;
public final float PI = 3.14159f;//定义常量:程序中不允许改变他的值

public Circle(float r){
this.r = r;
}

public float area(){
return PI * r * r;
}

public float circumference(){
return 2*PI*r;
}
}


五、运行结果

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐