我有一个java程序,它将接收用户输入并传递一个对象来查找圆的区域。
import java.util.Scanner;
public class Area{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
System.out.println("Enter a number: ");
double n = reader.nextDouble();
reader.close();
Circle c = new Circle();
c.radius = n;
c.area=3.148*c.radius*c.radius;
System.out.println(c.radius);
}
}
class Circle {
double radius;
double area;
}
程序接收用户输入但它没有执行操作。 如何使这项工作
此致
答案 0 :(得分:1)
System.out.println(c.area);
那应该解决你的问题。
虽然,如果我可以建议,你最好在Circle课程中进行这些计算。这是很好的编码实践。
public class Main {
public static void main(String[] args) {
System.out.println("Enter a number: ");
Scanner reader = new Scanner(System.in);
double n = reader.nextDouble();
reader.close();
Circle circle = new Circle(n);
double area = circle.getArea();
System.out.printf("The area is %f", area);
}
}
class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return 3.14 * radius * radius;
}
public double getRadius() {
return radius;
}
}
答案 1 :(得分:1)
请查看此示例实现:
class Circle {
private static final double PI = 3.148;
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double calculateArea() {
return PI * radius * radius;
}
public double getRadius() {
return radius;
}
}
public class Main {
public static void main(String[] args) {
System.out.println("Enter a number: ");
Scanner reader = new Scanner(System.in);
double input = reader.nextDouble();
reader.close();
Circle circle = new Circle(input);
double area = circle.calculateArea();
System.out.printf("My radius is %f%n", circle.getRadius());
System.out.printf("My area is %f", area);
}
}
c.radius
而不是c.area
。public Circle(double radius)
确保Circle
对象在创建一个对象时始终具有半径。没有半径的圆圈确实没有意义。Circle
应对与圈子相关的所有内容负责。这就是为什么区域的计算,一个典型的与圆相关的数学运算,应该由Circle
处理,而不是在main()
之外处理。答案 2 :(得分:1)
该操作表现良好,但您只是没有将正确的参数传递给System.out.println
。最后,您传递c.radius
而不是c.area
,并且操作结果不会写入控制台。这是你应该在最后的主要方法上写的:
System.out.println(c.area)