java - 在java中,如何创建一个根据以前的方法对对象进行分类的方法?

标签 java methods static

我正在为 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() {}
}

现在,您在其他类中实例化 QuadriteriorVector 类,并按如下方式使用它们:

 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/

相关文章:

java - 向 Linux 大师们致敬。权限异常

java - vector 中以给定字母/数字开头的元素

javascript - 需要一个类似于 jekyll 的客户端 javascript 静态网站生成器 - 没有服务器端任何东西

java - 接口(interface)中的静态常量默认为 0 —— 为什么会这样?

java - 为什么我们不能有静态外部类

java - 检查多个条件是否全部为假或全部为真 - java

java - 随机种子产生与预期不同的数字

java - Jackson 对第 3 方类进行序列化和反序列化,无需编写自定义序列化器和/或反序列化器

objective-c - 如何定义和发送将 UIBarButtonItems 动态添加到 UIToolbar 的方法\消息?

java - 如何修复/学习有助于理解基本方法和类、Java代码和单词问题