如何使用instanceOf方法和for循环识别数组中的对象

时间:2014-02-02 22:39:14

标签: java arrays loops

所以基本上我有这个java赋值,其中有六个类(Rectangle,Circle,Cylinder,Box,ShapesABSTester),我需要创建一个数组然后使用for循环使用 instanceOf 方法识别数组中的对象。

这就是我对循环的看法

for(int i = 0; 1 < myShapes.length; i++)
        {
            System.out.println(myShapes[i].toString());

        }

这完全正常,因为它通过列表并通过从其他类获取toString方法打印出我需要的所有输出,但显然我必须使用instanceOf方法来实现这一点。我在这里搜索过谷歌并且没有找到任何我需要的东西,所以希望有人可以帮我解决正确的语法。

根据说明说明

使用for循环使用instanceOf方法检查数组中的每个项目以确定 如果对象是圆柱体,圆形,方框或矩形

我。打印出对象的类型和对象的toString()

II。只需“输入”一次对象

III。如果一个物体是圆柱体,那么也不要将它称为圆形

IV。如果一个对象是一个盒子,那么也不要把它称为矩形

因此输出应该类似

对象0是一个矩形,然后打印toString方法

对象1是一个框

对象2是一个圆圈

对象3是圆柱体

2 个答案:

答案 0 :(得分:1)

谷歌的第二个结果...... https://stackoverflow.com/questions/7526817/use-of-instance-of-in-java

if( object instanceof Rectangle) {
   System.out.println("object is rectangle");
}

答案 1 :(得分:-1)

for(int i = 0; i < myShapes.length; i++)
{
     System.out.print("Object " + i + " is a");

     if(myShapes[i] instanceof Rectangle)
          System.out.print(" rectangle: ");

     else if(myShapes[i] instanceof Circle)
          System.out.print(" circle: ");

     else if(myShapes[i] instanceof Box)
          System.out.print(" box: ");

     else if(myShapes[i] instanceof Cylinder)
          System.out.print(" cylinder: ");

     System.out.println(myShapes[i].toString());

}