Java 如何从另一个类中的另一个公共整数调用公共整数?
我正在做一个课堂作业,它让我们尽可能多地调用其他课堂上的项目。我试图从另一个公共int调用公共int-side(int-number),但它不允许我这样做 我根本无法重新排列代码来编辑public int-side,因为它包含在赋值的一部分中Java 如何从另一个类中的另一个公共整数调用公共整数?,java,Java,我正在做一个课堂作业,它让我们尽可能多地调用其他课堂上的项目。我试图从另一个公共int调用公共int-side(int-number),但它不允许我这样做 我根本无法重新排列代码来编辑public int-side,因为它包含在赋值的一部分中 package lab6_carl6188; class Polygon { private int[] sideLengths; public Polygon(int sides, int ... lengths) {
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);
}
}
}
}
这就是我想说的,我这样说:
public int area() {
int total = 1;
for(int x = 0; x < sideLengths.length; x++) {
total = total * Polygon.side(x);
}
}
public int area(){
整数合计=1;
对于(int x=0;x
我的错误是“无法从类型Polygon对非静态方法侧(int)进行静态引用”Polygon.side不是静态方法。这意味着您不能在类对象上调用它,而是需要创建类的实例
Polygon polygon = new Polygon();
polygon.side(x);
Polygon.side不是静态方法。这意味着您不能在类对象上调用它,而是需要创建类的实例
Polygon polygon = new Polygon();
polygon.side(x);
side
是Polygon
类中的非静态方法。这意味着它属于此类的实例(对象)。您必须在使用new
创建的实例上调用它。在类中调用它是没有意义的,因为它不是静态的。想想看,Person.getName()
毫无意义,因为可能有数百个不同的人。相反,personjohn=新人(“john”)
然后john.getName()
。Rectangle
应该是Polygon
的子类吗?或者您的作业是什么?很可能您需要将类矩形
更改为类矩形扩展多边形
。然后你可以做total=total*side(x)代码>。但是这不会为您提供正确的area()
side
是Polygon
类中的非静态方法。这意味着它属于此类的实例(对象)。您必须在使用new
创建的实例上调用它。在类中调用它是没有意义的,因为它不是静态的。想想看,Person.getName()
毫无意义,因为可能有数百个不同的人。相反,personjohn=新人(“john”)
然后john.getName()
。Rectangle
应该是Polygon
的子类吗?或者您的作业是什么?很可能您需要将类矩形
更改为类矩形扩展多边形
。然后你可以做total=total*side(x)代码>。但这并不能为您提供正确的area()
值。