Java OBJECTS和类初学者

时间:2014-02-27 21:17:38

标签: java class object

嘿伙计们,所以我们刚开始在课堂上报道对象和课程。我理解很好地创建一个新的类实例。 Howerver,它的数据字段和方法我很难理解。这是我写的书中的一个样本。我没有完全得到我提交的部分:“//构造一个半径为1的圆。原因是bc我已经在SimpleCircle类中声明了双半径,那么为什么我需要再次编写SimpleCircle?我有点理解访问器和这个程序的变异器,但想要更简单地澄清这一切。

public class TestSimpleCircle {

    public static void main(String[] args) {

        SimpleCircle circle1 = new SimpleCircle();
        System.out.println("The area of the circle of radius " + circle1.radius + " is " + circle1.getArea());

        // create a circle with radius 25
        SimpleCircle circle2 = new SimpleCircle(25);
        System.out.println("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());

        // create a circle with radius 125
        SimpleCircle circle3 = new SimpleCircle(125);
        System.out.println("The area of the circle of radius " + circle3.radius + " is " + circle3.getArea());

        // Modify circle radius of second object
        circle2.setRadius(100);   //or circle2.setRadius(100);
        System.out.println("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());

    } // end main
} // end class


class SimpleCircle {
    double radius;

    // construct a circle with radius 1
    SimpleCircle() {
        radius = 1;

    }

    // construct a circle with a specified radius
    SimpleCircle(double newRadius) {
        radius = newRadius;

    }

    // return the are of this circle
    double getArea() {
        return radius * radius * Math.PI;

    }

    // return the perimeter of this circle
    double getPerimeter() {
        return 2 * radius * Math.PI;
    }

    // set a new radius for this circle
    void setRadius(double newRadius) {
        radius = newRadius;
    }

} // end class

2 个答案:

答案 0 :(得分:1)

你有两个SimpleCircle()语句的原因是因为一个是默认构造函数,如果你将double radius;更改为double radius = 1;,技术上可以省略它。第二个允许开发人员将参数传递给SimpleCircle(double)类型的double,并将其分配给名为radius的字段。两个SimpleCircle(...)语句都称为构造函数。

程序的示例输出:

The are of the circle of radius 1.0 is 3.141592653589793
The are of the circle of radius 25.0 is 1963.4954084936207
The area of the circle of radius 125.0 is 49087.385212340516
The area of the circle of radius 100.0 is 31415.926535897932

你可以在第一句中看到,它使用了默认的构造函数,它将半径设置为1或1.0,因为它是double。其余的使用radius的传入值或第二个构造函数。

答案 1 :(得分:0)

因为您从未在声明语句中为字段变量赋值。如果你这样做,那么你不需要在构造函数中将它设置为1。我希望能回答你的问题。

这个

class SimpleCircle {
double radius;

// construct a circle with radius 1
SimpleCircle() {
    radius = 1;

}

将导致与此

相同的输出
class SimpleCircle {
double radius = 1;

// construct a circle with radius 1
SimpleCircle() {


}