试图创建一个计算圆的面积的类,输出不是我想要的

时间:2016-11-18 20:18:47

标签: java class

尝试创建一个计算圆的面积的类,输出不是我想要的。 每次用户使用扫描仪输入半径时,输出显示0.0。 我做错了什么?

 import java.util.Arrays;
 import java.util.Scanner;

    //Circle Class
    class Circle {
        double radius;

        double calculateArea; {
            double area = 3.14 * radius * radius;
        }
    }

//Object
public class test {
public static void main (String [] args){

    Scanner input = new Scanner (System.in);

    System.out.println("This program calculates the area of a circle.");
    System.out.println("\nEnter the radius of the circle and we wil do the rest!");

    Circle  c1 = new Circle ();
    c1.radius = input.nextDouble();
   System.out.println();

   System.out.println("The area of your desired circle is: ");
   System.out.println(c1.calculateArea);

  }
}

3 个答案:

答案 0 :(得分:0)

设置半径时,不会重新计算

calculateAreaarea。你应该将calculateArea变成一个方法。

//Circle Class
class Circle {
    double radius;

    double calculateArea() {
        return 3.14 * radius * radius;
    }
}

然后,当您想要该区域时,请致电circle.calculateArea()

答案 1 :(得分:0)

在没有setter或构造函数的情况下使用私有属性是不好的做法。 试试这个

class Circle {
    double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double getArea() {
        return 3.14 * this.radius * this.radius;
    }
}

并将其用作

Circle circle = new Circle(input.nextDouble());
System.out.println(circle.getRadius());

答案 2 :(得分:0)

您应该将calculatearea定义为方法而不是定义它的简单字段。你应该改为:

double calculateArea() {
        return 3.14 * radius * radius;
}

然后你的程序就可以了。这是一个完整的示例,直接基于您的示例,但我没有使用单独的测试类,但直接在Circle类中包含main方法

import java.util.Scanner;

public class Circle {

    double radius;

    double calculateArea() {
        return 3.14 * radius * radius;
    }

    public static void main (String [] args){

        Scanner input = new Scanner (System.in);

        System.out.println("This program calculates the area of a circle.");
        System.out.println("\nEnter the radius of the circle and we wil do the rest!");

        Circle  c1 = new Circle ();
        c1.radius = input.nextDouble();
        System.out.println();

        System.out.println("The area of your desired circle is: ");
        System.out.println(c1.calculateArea());

    }
}

<强>插图: enter image description here