Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从另一个类中的另一个公共整数调用公共整数?_Java - Fatal编程技术网

Java 如何从另一个类中的另一个公共整数调用公共整数?

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) {

我正在做一个课堂作业,它让我们尽可能多地调用其他课堂上的项目。我试图从另一个公共int调用公共int-side(int-number),但它不允许我这样做

我根本无法重新排列代码来编辑public int-side,因为它包含在赋值的一部分中

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()
值。