我正在創建一個類Usuario,該類存盤在ArrayList另一個名為的類中,Usuarios并且我正在嘗試創建一個代碼,允許用戶鍵入他的名字,并且類的物件Usuario存盤在一個變數中,usuario_logado以備將來使用。
這是我的Usuarios課:
import java.util.ArrayList;
public class Usuarios {
private static ArrayList<Usuario> UsersList = new ArrayList<Usuario>();
public static ArrayList<Usuario> getUsuarios(){
return Usuarios.UsersList;
}
public static void addUser(Usuario u){
UsersList.add(u);
}
}
這是我的Usuario課:
import java.util.ArrayList;
/**
* Usuario
*/
public class Usuario {
private static int indexes = 0;
private int index;
private String nome;
private String email;
public Usuario(){
}
public Usuario(String nome, String email){
this.nome = nome;
this.email = email;
Usuarios.addUser(this);
this.index = indexes;
indexes ;
}
public String getNome(){
return nome;
}
public String getEmail(){
return email;
}
public int getIndex(){
return index;
}
public String getString(){
return "Nome : " this.nome " E-mail : " this.email " index:" this.index;
}
}
這是類應用程式中的主要功能:
import java.util.ArrayList;
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Usuario user0 = new Usuario("None", "None");
Usuario user1 = new Usuario("Thomas", "[email protected]");
Usuario user2 = new Usuario("juao", "[email protected]");
Usuario user3 = new Usuario("marcia", "[email protected]");
Usuario user4 = new Usuario("Ednaldo", "[email protected]");
Usuario user5 = new Usuario("Fausto", "[email protected]");
Usuario usuario_logado = new Usuario();
Scanner input = new Scanner(System.in);
System.out.print("Login \n Username :");
String nome = input.next();
for(Usuario user : Usuarios.getUsuarios()){
if(user.getNome().equals(nome)){
usuario_logado = user;
}
}
usuario_logado.getString();
}
}
有什么辦法可以在主函式中存盤 usuario(user) 嗎?
uj5u.com熱心網友回復:
您需要對代碼進行一些更改。首先,洗掉靜態變數Usuarios并使其成為實體變數:
import java.util.ArrayList;
import java.util.List;
public class Usuarios {
private List<Usuario> usersList = new ArrayList<>();
public List<Usuario> getUsuarios(){
return usersList;
}
public void addUser(Usuario u){
usersList.add(u);
}
}
此外,洗掉行Usuarios.addUser(this);中Usuario,如下所示:
public class Usuario {
private static int indexes = 0;
private int index;
private String nome;
private String email;
public Usuario(){
}
public Usuario(String nome, String email){
this.nome = nome;
this.email = email;
this.index = indexes;
indexes ;
}
public String getNome(){
return nome;
}
public String getEmail(){
return email;
}
public int getIndex(){
return index;
}
public String getString(){
return "Nome : " this.nome " E-mail : " this.email " index:" this.index;
}
}
最后,最重要的是,更改您的主類,以便您創建一個實體Usuarios并將您創建的每個類添加Usuario到該Usuarios實體中,如下所示:
import java.util.*;
public class App {
public static void main(String[] args) {
Usuarios users = new Usuarios();
Usuario user0 = new Usuario("None", "None");
users.addUser(user0);
Usuario user1 = new Usuario("Thomas", "[email protected]");
users.addUser(user1);
Usuario user2 = new Usuario("juao", "[email protected]");
users.addUser(user2);
Usuario user3 = new Usuario("marcia", "[email protected]");
users.addUser(user3);
Usuario user4 = new Usuario("Ednaldo", "[email protected]");
users.addUser(user4);
Usuario user5 = new Usuario("Fausto", "[email protected]");
users.addUser(user5);
Usuario usuario_logado = new Usuario();
Scanner input = new Scanner(System.in);
System.out.print("Login \n Username :");
String nome = input.next();
for(Usuario user : users.getUsuarios()){
if(user.getNome().equals(nome)){
usuario_logado = user;
}
}
System.out.println(usuario_logado.getString());
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/363438.html
上一篇:通過ROS訂閱者節點計算迭代次數
下一篇:如何在C 中輸入一個物件?
