首页 > 解决方案 > 如何实现忽略某些输入值的方法?(爪哇)

问题描述

我是Java的初学者。我的第一个任务是创建一个简单的几何对象包——点、线、圆、矩形等。一切正常,但我不确定如何完成其​​他任务:

在此现有文件中创建一个方法,该方法采用对象数组并返回其面积的总和,但在它们没有可用此参数的情况下(如 classesLinePoint),该方法将忽略这些对象。

我的猜测是应该使用一个接口(比如GeometricObject或可能ObjectWithArea),但我不知道如何使用它。我在想这样的事情:

public interface ObjectWithArea {

   double sumOfAreas(Array) {

   //this is the declaration of the method
  }

}

这是我将接口合并到现有代码中的方法:

class Rectangle implements ObjectWithArea {

   //here are the original parameters and methods of this class

   double sumOfAreas(Array) { 

      //here is the body of the previously declared method

   }
}

但是这个解决方案并没有解决方法应该忽略其他没有实现这个接口的对象的问题。请你帮助我好吗?

标签: javamethodsinterface

解决方案


你可以if (x instanceof ObjectWithArea)用来测试你是否应该忽略一个对象,然后((ObjectWithArea)x).getArea()对那些你确实需要处理的对象进行强制转换。

避免必须这样做的替代方法(instanceof有点争议——但不要与你的老师争吵),将getArea方法应用于所有对象并返回0那些没有区域的对象。


推荐阅读