`
snake_hand
  • 浏览: 574024 次
社区版块
存档分类
最新评论

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 }

 

五、运行结果

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics