Java中ArrayList的超级简单问题

Pet*_*ter 1 java arraylist

我有两个不同的类:

Cliente.java

public class Cliente {
    private static String user;
    private static String password;
    public Cliente (String usr, String pass) {
        user = usr;
        password = pass;
    }
    public String getUser() {
        return user;
    }
}
Run Code Online (Sandbox Code Playgroud)

AddToArrayList.java,我创建一个客户端类型ArrayList和一些客户端:

public class AddToArrayList{
    static ArrayList<Cliente> listaClientes = new ArrayList<Cliente>();

    public static void main(String[] args) throws IOException {

        Cliente c1 = new Cliente("pepe","pepe1");
        Cliente c2 = new Cliente("jose","jose1");
        Cliente c3 = new Cliente("edu","edu1");       
        listaClientes.add(c1);
        listaClientes.add(c2);
        listaClientes.add(c3);

        printArraList();
    }

    public static void printArraList() throws IOException {     
        for (Cliente c : listaClientes) {
            System.out.println(c.getUser());
        } 
    }
Run Code Online (Sandbox Code Playgroud)

}

为什么这个功能打印我:
edu
edu
edu

而不是:
pepe
jose
edu

提前致谢.

Kev*_*vin 9

因为你已经user在你的类Cliente中使变量变为静态.如果删除static关键字,一切都应该按照您的意愿工作.

static变量跨越类的所有实例共享.

以下网站对static关键字一个很好的参考,我建议你读它:).