user4285058
user4285058

Reputation:

Declaring an array in java as an object?

I have recently been following some tutorials on how to program and whilst programming the public static void for an array, the tutorial said to declare the array as an object. Below is the code for the array and at the end of the code I have put a split between the two sections so it is visible to as where my question lies

import java.io.*;
import java.lang.*;
public class LoginList
{
int arraySize=500;
Login[] arrayLogin=new Login[arraySize];
int nextPosition=0;
int LoginLocation=-1;


public void addLogin(Login tempLoginParameters)
{
    arrayLogin[nextPosition] = tempLoginParameters;
    nextPosition++;
}


public void writeLogins()
{
    try
    {
        BufferedWriter LoginWriter = new BufferedWriter(new FileWriter("LoginDetails.txt"));
        for(int i=0;i<nextPosition;i++)
        {
            LoginWriter.write(arrayLogin[i].toString());
            LoginWriter.newLine();
        }
        LoginWriter.close();
    }

    catch(Exception e)
    {
        System.out.println("Error with writer");
    }
}


public void readLogins()
{
    try
    {
        BufferedReader LoginReader = new BufferedReader(new FileReader("LoginDetails.txt"));
        String ReadLine = LoginReader.readLine();

        while(ReadLine!= null)
        {
            String[] arrayStringLogin = ReadLine.split(", ");
            Login tempLogin = new Login();
            tempLogin.UserName = arrayStringLogin[0];
            tempLogin.Password = arrayStringLogin[1];
            arrayLogin[nextPosition] = tempLogin;
            nextPosition++;
            ReadLine = LoginReader.readLine();
        }
    }
    catch(Exception e)
    {
        System.out.println("Error with reader");
    }
}


public void displayLoginDetails()
{
    for(int i=0;i<nextPosition;i++)
    {
        System.out.println("Login "+nextPosition+": "+arrayLogin[i].toString());
    }
}


public void searchLogins(String TempLog)
{
    LoginLocation=-1;

    for(int i=0;i<nextPosition;i++)
    {
        if(arrayLogin[i].UserName.equals(TempLog))
        {
            System.out.println("Match At Position:"+i);
            LoginLocation=i;
        }

        else
        {
            System.out.println("No match for UserName");
        }

    }
}

public static void main(String[] args)
{
    LoginList ll = new LoginList(); //Declares the array as an object

Why is it that you have to declare the array as an object? Look just above here.

    Login tempLogin = new Login();
    ll.readLogins();
    ll.displayLoginDetails();
}
}

Upvotes: 1

Views: 67

Answers (1)

Nathan Hughes
Nathan Hughes

Reputation: 96385

LoginList is not an array, it's a class that happens to have an array of Login objects as one of its instance members. The code in main creates an object of type LoginList and calls its methods; the LoginList object uses an array internally, but the main method doesn't have to know about it.

Upvotes: 3

Related Questions