我正在为班级分配作业,并且正在为班级分配作业,以使我们尽可能多地调用其他班级的项目。我正在尝试从另一个公共int调用public int side(int number),但这不会让我这么做。
我根本无法重新排列代码以编辑public int端,因为它已包含在作业中
package lab6_carl6188;
class Polygon
{
private int[] sideLengths;
public Polygon(int sides, int ... lengths)
{
int index = 0;
sideLengths = new int[sides];
for (int length: lengths)
{
sideLengths[index] = length;
index += 1;
}
}
public int side(int number)
{
return sideLengths[number];
}
public int perimeter()
{
int total = 0;
for (int index = 0; index < sideLengths.length; index += 1)
{
total += side(index);
}
return total;
}
}
class Rectangle{
private int[] sideLengths;
public Rectangle(int length1, int length2) {
sideLengths[0] = length1;
sideLengths[1] = length2;
}
public int area() {
int total = 1;
for(int x = 0; x < sideLengths.length; x++) {
total = total * Polygon.side(x);
}
}
}
}
这整个块是代码。我不允许以任何方式编辑类Polygon。
public int side(int number)
{
return sideLengths[number];
}
是我想称呼的,我这样称呼:
public int area() {
int total = 1;
for(int x = 0; x < sideLengths.length; x++) {
total = total * Polygon.side(x);
}
}
我的错误是“无法从Polygon类型静态引用非静态方法side(int)”
答案 0 :(得分:2)
Polygon.side不是静态方法。这意味着您不能在类对象上调用它,而是需要创建该类的实例。
Polygon polygon = new Polygon();
polygon.side(x);