views:

108

answers:

4

I need to make a number of distinct objects of a class at runtime. This number is also determined at runtime.

Something like if we get int no_o_objects=10 at runtime. Then I need to instantiate a class for 10 times.
Thanks

+7  A: 

Read about Arrays in the Java Tutorial.

class Spam {
  public static void main(String[] args) {

    int n = Integer.valueOf(args[0]);

    // Declare an array:
    Foo[] myArray;

    // Create an array:
    myArray = new Foo[n];

    // Foo[0] through Foo[n - 1] are now references to Foo objects, initially null.

    // Populate the array:
    for (int i = 0; i < n; i++) {
      myArray[i] = new Foo();
    }

  }
}
jleedev
+1  A: 

Objects in Java are only created at Runtime.

Try this:

Scanner im=new Scanner(System.in);
int n=im.nextInt();

AnyObject s[]=new AnyObject[n];
for(int i=0;i<n;++i)
{

     s[i]=new AnyObject(); // Create Object
}
Prasoon Saurav
A: 

This would do it.

public AClass[] foo(int n){
    AClass[] arr = new AClass[n];
    for(int i=0; i<n; i++){
         arr[i] = new AClass();
    }
    return arr;
}
Erkan Haspulat
A: 

You can use array or List as shown below.

MyClass[] classes = new MyClass[n];

Then instantiate n classes with new MyClass() in a loop and assign to classes[i].

fastcodejava