在java中声明一个数组作为对象?

时间:2015-02-05 19:50:32

标签: java arrays

我最近一直在关注如何编程以及为数组编程public static void时的一些教程,教程说将数组声明为对象。下面是数组的代码,在代码的最后我把两个部分放在一起,这样就可以看出我的问题所在

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

为什么必须将数组声明为对象?看看上面这里。

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

1 个答案:

答案 0 :(得分:3)

LoginList不是一个数组,它碰巧有一个Login对象数组作为其实例成员之一。 main中的代码创建一个LoginList类型的对象并调用其方法; LoginList对象在内部使用数组,但主方法不必知道它。