Q:

Using arrays with objects? Java

I am new to Java and am wondering whats wrong with the code below. I am trying to create multiple objects as an array if this is possible? The code will run and ask for a name, however just end after this and im not sure why. Any help would be great, thanks in advance.

import java.util.Scanner;


public class test {
 
    public static void main(String[] args) {
     
     
     ABug[] BugObj = new ABug[3]; //Creating object BugObj of class ABug
       
     
     
     for (int i=1; i<4; i++){
     Scanner reader = new Scanner(System.in); 
        System.out.println("Please enter the name of the bug:");
  BugObj[i].name = reader.next();
     System.out.println("Please enter the species of the bug:");
     BugObj[i].species = reader.next();
      
    
     System.out.println("Name: " + BugObj[i].name);           //Printing bug information out
     System.out.println("Species: " + BugObj[i].species);
     
     }  
    }   
}

class ABug {
 int horpos, vertpos, energy, id;
 char symbol;
 String species, name;
 
}

A:

You have two issues:

You need to have an instance of the object you are going to use.
The way to manage a for loop.

You can modify your source code to this:
Scanner reader = new Scanner(System.in); // Take out this from inside for loop

for (int i = 0; i < BugObj.length; i++) { // Notice we use BugObj.length instead of a number and start index at 0.
  System.out.println("Please enter the name of the bug:");
  BugObj[i] = new ABug(); // You need to initialize the instance before use it
  BugObj[i].name = reader.next();

