Prerequisite – Different ways to create objects in Java
Java programming language is all about classes and objects as it is an object-oriented programming language. When we require a single object to store in our program we do it with a variable of type Object. But when we deal with numerous objects, then it is preferred to use an Array of Objects.
The array of Objects the name itself suggests that it stores an array of objects. Unlike the traditional array stores values like String, integer, Boolean, etc an Array of Objects stores objects that mean objects are stored as elements of an array. Note that when we say Array of Objects it is not the object itself that is stored in the array but the reference of the object.
Creating an Array Of Objects In Java –
An Array of Objects is created using the Object class, and we know Object class is the root class of all Classes.
We use the Class_Name followed by a square bracket [] then object reference name to create an Array of Objects.
Class_Name[ ] objectArrayReference;
Alternatively, we can also declare an Array of Objects as :
Class_Name objectArrayReference[ ];
Both the above declarations imply that objectArrayReference is an array of objects.
For example, if you have a class Student then we can create an array of Student objects as given below:
Student[ ] studentObjects; Or Student studentObjects[];
Instantiate the array of objects –
Syntax:
Class_Name obj[ ]= new Class_Name[Array_Length];
For example, if you have a class Student, and we want to declare and instantiate an array of Student objects with two objects/object references then it will be written as:
Student[ ] studentObjects = new Student[2];
And once an array of objects is instantiated like this, then the individual elements of the array of objects needs to be created using the new keyword.
The below figure shows the structure of an Array of Objects :
Initializing Array Of Objects
Once the array of objects is instantiated, we need to initialize it with values. We cannot initialize the array in the way we initialize with primitive types as it is different from an array of primitive types. In an array of objects, we have to initialize each element of array i.e. each object/object reference needs to be initialized.
Different ways to initialize the array of objects:
- By using the constructors
- By using a separate member method
1. By using the constructor:
At the time of creating actual objects, we can assign initial values to each of the objects by passing values to the constructor separately. Individual actual objects are created with their distinct values.
The below program shows how the array of objects is initialized using the constructor.
Java
// Java program to demonstrate initializing // an array of objects using constructor class GFG { public static void main(String args[]) { // Declaring an array of student Student[] arr; // Allocating memory for 2 objects // of type student arr = new Student[ 2 ]; // Initializing the first element // of the array arr[ 0 ] = new Student( 1701289270 , "Satyabrata" ); // Initializing the second element // of the array arr[ 1 ] = new Student( 1701289219 , "Omm Prasad" ); // Displaying the student data System.out.println( "Student data in student arr 0: " ); arr[ 0 ].display(); System.out.println( "Student data in student arr 1: " ); arr[ 1 ].display(); } } // Creating a student class with // id and name as a attributes class Student { public int id; public String name; // Student class constructor Student( int id, String name) { this .id = id; this .name = name; } // display() method to display // the student data public void display() { System.out.println( "Student id is: " + id + " " + "and Student name is: " + name); System.out.println(); } } |
Student data in student arr 0: Student id is: 1701289270 and Student name is: Satyabrata Student data in student arr 1: Student id is: 1701289219 and Student name is: Omm Prasad
2. By using a separate member method :
By using a separate member method also we can initialize objects. A member function of the respective class is created and that is used to assign the initial values to the objects.
The below program shows how the array of objects is initialized using a separate member method.
Java
// Java program to demonstrate initializing // an array of objects using a method class GFG { public static void main(String args[]) { // Declaring an array of student Student[] arr; // Allocating memory for 2 objects // of type student arr = new Student[ 2 ]; // Creating actual student objects arr[ 0 ] = new Student(); arr[ 1 ] = new Student(); // Assigning data to student objects arr[ 0 ].setData( 1701289270 , "Satyabrata" ); arr[ 1 ].setData( 1701289219 , "Omm Prasad" ); // Displaying the student data System.out.println( "Student data in student arr 0: " ); arr[ 0 ].display(); System.out.println( "Student data in student arr 1: " ); arr[ 1 ].display(); } } // Creating a Student class with // id and name as a attributes class Student { public int id; public String name; // Method to set the data to // student objects public void setData( int id, String name) { this .id = id; this .name = name; } // display() method to display // the student data public void display() { System.out.println( "Student id is: " + id + " " + "and Student name is: " + name); System.out.println(); } } |
Student data in student arr 0: Student id is: 1701289270 and Student name is: Satyabrata Student data in student arr 1: Student id is: 1701289219 and Student name is: Omm Prasad
Let’s see another example where an Array of Objects is declared with Initial Values:
Here declaration of an array of objects is done by adding initial values.
Java
// Java program to demonstrate an array // of objects is declared with initial values. class GFG { public static void main(String args[]) { // Creating an array of objects // declared with initial values Object[] javaObjectArray = { "Maruti" , new Integer( 2019 ), "Suzuki" , new Integer( 2019 ) }; // Printing the values System.out.println(javaObjectArray[ 0 ]); System.out.println(javaObjectArray[ 1 ]); System.out.println(javaObjectArray[ 2 ]); System.out.println(javaObjectArray[ 3 ]); } } |
Output
Maruti 2019 Suzuki 2019