【问题标题】:Debugging my first class call. Creating a circle with user input [closed]调试我的第一堂课。使用用户输入创建一个圆圈[关闭]
【发布时间】:2020-02-24 21:00:45
【问题描述】:

给定的问题是创建两个 Java 类,一个带有构造方法,另一个带有 main 方法,调用第一个。

由于带有符号符号的“错误,找不到符号”,后半部分无法编译:方法 getArea() 和位置 位置:圆形类型的可变半径

教授说要检查我对 printf 的使用是否有问题,但这不是导致编译错误的原因,是吗?

我已经快速搜索了一些类似的问题,但是有同样错误的人遇到的很多问题都与他们的类和方法是私有的有关。

// Class I'm trying to call from

public class Circle
{
    double radius;
    public Circle(double r)
        {
        radius = r;
        }
    public Circle()
    {
        radius = 0.0;
    }
    public void setRadius(double r)
    {
       radius = r;
    }
    public double getRadius()
    {
        return radius;
    }
    public double area()
    {
        return Math.PI * Math.pow(radius, 2);
    }
    public double diameter()
    {
        return radius * 2.0;
    }
    public double circumference()
    {
        return Math.PI * radius * 2.0;
    }
}



// Seperate java program, used to call Circle.java

import java.util.Scanner;
public class CircleDemo
{
    public static void main(String[] args)
    {
        String input;
        double value;
        Circle radius = new Circle();
        System.out.printf("Enter the radius"+
                        "of a circle");
        Scanner keyboard = new Scanner(System.in);
        input = keyboard.nextLine();
        value = Double.parseDouble(input);
        radius.setRadius(value);
        System.out.printf("Area: " + radius.getArea()
        + "\n Diameter: " + radius.getDiameter() +
        "\nCircumference: " + radius.getCircumference());
        System.exit(0);
    }
}

错误输出:

CircleDemo.java:18: error: cannot find symbol
        area = radius.getArea();
                     ^
  symbol:   method getArea()
  location: variable radius of type Circle
CircleDemo.java:19: error: cannot find symbol
        diameter = radius.getDiameter();
                         ^
  symbol:   method getDiameter()
  location: variable radius of type Circle
CircleDemo.java:20: error: cannot find symbol
        circumference = radius.getCircumference();
                              ^
  symbol:   method getCircumference()
  location: variable radius of type Circle
3 errors

【问题讨论】:

    标签: java class methods constructor return


    【解决方案1】:

    您正在寻找错误的方法名称。

    您已定义方法circumference(),但正在调用getCircumference()。您已定义方法 area(),但正在调用 getArea()

    要么重命名Circle 中的方法,要么更改从main 调用的方法。

    【讨论】:

      【解决方案2】:

      一开始,就好像你调用了错误的方法。

      如果您尝试在 Java 中使用 getter 和 setter,您必须实际创建一个获取方法和一个设置方法。 如果您只调用 getDiameter(),Java 不会自动为您提供值。您需要实际创建一个名为 getDiameter() 的方法,然后才能调用它。

      如果这能解决您的问题,请告诉我!

      【讨论】:

        【解决方案3】:

        您正在使用不存在的方法。 getDiameter()getArea()getCircumference() 未在您的类 Circle 中声明。我认为您正在尝试致电diameter()area()circumference()。 Getter 和 setter 必须在类中以自己的名称声明;它们不是自动创建的或类似的东西。

        【讨论】:

          猜你喜欢
          • 2017-04-03
          • 2014-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多