我正在为 AP 计算机科学实验室工作,其中包括 vector 类和四边形类。 vector 类构造 vector ,四边形类从 4 个 vector 构造一个四边形,然后对四边形的类型进行分类。为此,我正在测试每个单独的形状,可以使用类似的代码
public boolean isParallelogram()
{
if(side1.isParallel(side3) && side2.isParallel(side4))
{
return true;
}
else
{
return false;
}
}
然后,当它返回四边形的分类时,我无法使用这些方法及其返回的内容,因为“不能在静态上下文中引用非静态方法 __________”。如果因为四边形对象并不总是存在而无法访问这些方法,我该如何对其进行分类?这是我当前的分类方法,
public static String classify()
{
System.out.print("quadrilateral");
return "quadrilateral";
if(Quadrilateral.isParallelogram() == true)
{
System.out.print(" - parallelogram");
return " - parallelogram";
}
}
最佳答案
静态
方法不能被非静态方法调用。我相信你有一个 Vector 类。你可以有类 Quadriterior
类似:
public class Quadrilateral {
private List<Vector> sides;
public Quadrilateral(List<Vector> sides){
this.sides = sides;
}
// Have non-static methods
public classify() {}
public isParallelogram() {}
}
现在,您在其他类中实例化 Quadriterior
和 Vector
类,并按如下方式使用它们:
Vector side1 = new Vector()
Vector side2 = new Vector() // create two more vector objects
Quadrilateral quadrilateral = new
Quadrilateral(Arrays.asList(side1,side2,side3,side4));
然后你可以在这个四边形对象上调用classify()
。希望这会有所帮助。
关于java - 在java中,如何创建一个根据以前的方法对对象进行分类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47069127/