【发布时间】:2018-07-03 10:19:25
【问题描述】:
我是 Java 新手。我已经完成了一个查找矩形面积的示例程序。代码如下。
package rectangle;
public class Rectangle {
int length, width;
int rectArea() {
int area = length * width;
return (area);
}
}
class RectArea {
public static void main(String[] args) {
int area1;
Rectangle rect1 = new Rectangle();
rect.length = 14;
rect.width = 13;
area1 = rect.rectArea();
System.out.println("Area1=" + area1);
}
}
在上面的代码中length 和width 是在类Rectangle 中声明的变量。现在area 也是一个保存数据length * width 的变量,并且这个areavariable 也在类Rectangle 中声明
我们可以使用点运算符从另一个名为RectArea 的类中访问length 和width 变量。但是为什么我们不能直接从RectArea 类(使用点运算符)访问Rectangle 类中声明的area 变量来评估Rectangle 的值?
也就是说,为什么我们不能使用下面的代码来评估来自RectArea 类的新创建对象rect1 的值。
area1 = rect1.area;
System.out.println("Area1="+ area1);
或者为什么我们不能使用上面的代码从RectArea 类中访问Rectangle 类中声明的area 变量?
【问题讨论】:
-
因为它是方法内部的局部变量,所以它不存在于类的范围内。你也不应该像那样暴露你的其他变量。您应该将它们声明为私有,并通过 getter 和 setter 限制访问
-
rect1没有名为area的字段。因此您无法访问它 -
rect.area应该是什么?rect是一个Rectangle,它没有area。
标签: java class variables dot-operator