【发布时间】:2019-03-04 00:48:48
【问题描述】:
【问题讨论】:
-
RAD是传递给方法的参数,然后该值存储在字段radius- 您应该在 getter 方法中使用radius -
另外,请不要将代码发布为图片,在您的问题中将相关代码显示为文本
【问题讨论】:
RAD 是传递给方法的参数,然后该值存储在字段 radius - 您应该在 getter 方法中使用 radius
您需要了解scope 的概念。仅仅因为您在程序中的某个位置定义了一个变量(例如 RAD),并不意味着它在其他位置也可用(例如“getRadius()”)。
例如:
public class Circle extends Shape {
private double radius;
...
public double getRadius() { return radius; }
...
之所以有效,是因为我已将“半径”定义为 member variable。 “半径”在这个类对象的任何地方都可见 - 在它之外根本不可用。
这是scope 的一个例子。
【讨论】:
在您的方法 getRadius() 中,您将返回未在本地方法中定义的变量 RAD 作为参数,并且它不是类变量,因此 RAD 在该方法中是未知的。
我认为您想要“返回半径”而不是“返回 RAD”,这是类变量。
【讨论】:
RAD 未在方法 getRadius 的范围内声明。您应该返回半径而不是 RAD。您的代码中的另一个观察结果是 circle() 被定义为一种方法,而它应该是一个构造函数。
【讨论】: