Objectクラスベース

1594 ワード

次のコードは、カスタムクラスを追加できる簡単なコレクションクラスです.
public class SimpleCollection
{
       private Object[] objArr;
       private int index = 0;

	   public SimpleCollection()
		{
		   // 10 
		   objArr = new Object[10];
		}

	   public SimpleCollection(int capacity)
		{
		   objArr = new Object[capacity];
		}

	   public void add(Object o)
		{
		   objArr[index++] = 0;
		}
	   
	   public int getLength()
		{
		   return index;
		}

	   public Object get(int i)
		{
		   return objArr[i];
		}
}


2つの単純なクラスを定義できます.
public class Foo1
{
	private String name;

	public Foo1(String name)
	{
		this.name = name;
	}

	public void showName()
	{
		System.out.println("foo1  :" + name);
	}
}

public class Foo2 
{
	private String name;

	public Foo2(String name)
	{
		this.name = name;
	}

	public void showName()
	{
		System.out.println("foo2  :" + name);
	}
}

 
テストクラスをもう1つ書きます.
public class SimpleCollectionDemo
{
	public static void main(String[] args) 
	{
		SimpleCollection sc = new SimpleCollection();

		sc.add(new Foo1(" Foo1"));
		sc.add(new Foo2(" Foo2"));

		Foo1 f1 = (Foo1)sc.get(0);
        f1.showName();
		
		Foo2 f2 = (Foo2)sc.get(1);
        f2.showName();
	}
}

 
実行結果:
foo 1名称:1番Foo 1 foo 2名称:2番Foo 2
プログラムでは、すべてのオブジェクトがObjectのサブオブジェクトであるため、SimpleCollectionオブジェクトに任意のタイプのオブジェクトを追加できます.SimpleCollectionからインデックスを指定してオブジェクトを取り戻す場合、オブジェクトのタイプをObjectから元のタイプに変換することで、上記のテストクラスのshowName()のようなオブジェクト上のメソッドを実装できます.