【问题标题】:Stuck with this programming question for school [closed]坚持这个学校的编程问题[关闭]
【发布时间】:2019-03-04 00:48:48
【问题描述】:

我正在为学校编写一个简单的 Java 程序。我似乎无法理解为什么我会收到 Error: Cannot Find Symbol

这是整个代码,底部有错误。


(点击图片放大)

【问题讨论】:

  • RAD 是传递给方法的参数,然后该值存储在字段 radius - 您应该在 getter 方法中使用 radius
  • 另外,请不要将代码发布为图片,在您的问题中将相关代码显示为文本

标签: java cannot-find-symbol


【解决方案1】:

您需要了解scope 的概念。仅仅因为您在程序中的某个位置定义了一个变量(例如 RAD),并不意味着它在其他位置也可用(例如“getRadius()”)。

例如:

public class Circle extends Shape {

  private double radius;
  ...
  public double getRadius() { return radius; }
  ...

之所以有效,是因为我已将“半径”定义为 member variable。 “半径”在这个类对象的任何地方都可见 - 在它之外根本不可用。

这是scope 的一个例子。

【讨论】:

    【解决方案2】:

    在您的方法 getRadius() 中,您将返回未在本地方法中定义的变量 RAD 作为参数,并且它不是类变量,因此 RAD 在该方法中是未知的。

    我认为您想要“返回半径”而不是“返回 RAD”,这是类变量。

    【讨论】:

      【解决方案3】:

      RAD 未在方法 getRadius 的范围内声明。您应该返回半径而不是 RAD。您的代码中的另一个观察结果是 circle() 被定义为一种方法,而它应该是一个构造函数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-31
        • 2019-02-11
        • 1970-01-01
        • 2013-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多