题目大概:
用列表实现用户类的添加删除等操作
用manager类来管理我写了些莫名的代码不知道怎么实现
望高手指教 !
给我个正确答案  谢天谢地了 。
User 类package array;
import java.util.*;
public class User {
String id;
 String name;
 String password;
public User(String id1,String name1,String password1)
  { //super();
   id=id1;
   name=name1;
   password=password1;
}
  public String toString()
  {
  return name+""+id+""+password;
  }List<User> userList=new ArrayList<User>();
public void addUser(User user){
userList.add(user );}
public int getCount(){
return userList.size();
}
public void list(){
for(User o:userList)
{
System.out.println(o);  
}
}
public void list(int fromIndex){
int size=userList.size();
for(int i=fromIndex;i<size;i++)
 {
System.out.println(userList.get(i));}}
public static void main(String[] args)
{ User SX=new User(); SX.adduser("001","zhangming","12345");
 SX.adduser(new User("002,zhangmin,123456")); 
 SX.adduser(new User("003,zhangmi,123"));
 SX.adduser(new User("004,zhangm,1234"));
 System.out.println("total is:"+SX.getCount());
 SX.list();
 SX.searchByID();
 SX.delete();
}
}
manager类:package array;
import java.io.*;public class manager {int remove;
public void searchByID()throws IOException
{String  l;
System.out.println("请输入要查找的ID:");
 InputStreamReader Iin=new InputStreamReader(System.in);
 BufferedReader Din=new BufferedReader(Iin);
l=Din.readLine();
if(l=="001")
System.out.println("有此用户!");
else
System.out.println("没有此用户!");
}
public void delete() throws IOException
{
String  s;

System.out.println("请输入要删除的用户名:");
InputStreamReader iin=new InputStreamReader(System.in);
 BufferedReader bin=new BufferedReader(iin);
 s=bin.readLine();
 if(s=="zhangming")
System.out.println("确定要删除此用户?");
 else 
System.out.println("此用户不存在!");
}

函数不知道怎么调用不了 ?

解决方案 »

  1.   

    看到这代码,想起当年阿错误一打
    你构造函数有
    public User(String id1,String name1,String password1) 
      { //super(); 
      id=id1; 
      name=name1; 
      password=password1; 
    }
    如果后面还要
    User SX=new User();
    则必须有无参构造函数
    public User() {},否则虚拟机当你把它重写了public类名必须和文件名一致的,而且类名开头第一个字母要大写,
    ?这User SX不行的
    然后你定义的函数名和你调用的不一样啊,肯定不行你调用
    SX.searchByID(); 
    SX.delete(); 
    可是你还没定义函数你的有参构造函数有3个String参数,可是你在调用的时候这样写"002,zhangmin,123456",就只有一个参数阿,细心点了
    其他的你自己慢慢思考吧
      

  2.   

    除了楼上所说的问题,还存在一些设计问题首先,你将List包含在User类中不太合理,会造成功能和职责的混淆。
    User类应该单纯的代表用户,与List的定义和功能应转移到Manager类中。其次,标准的List及其子类不具备深层搜索功能,而你的Manager类中的两个方法有作弊嫌疑。
    最好的办法是令Manager类继承ArrayList类,你所需要做的仅仅是添加一个用来搜索的函数和一个用来删除的函数(你不是需要确认删除的么?),并在其中调用super.xxxx()就可以了。最后,main函数应写在Manager中,因为现在所希望的是将User单纯的用户,就把它当作C语言中的结构体就行了。
      

  3.   

    User:public class User {  String id;
      String name;
      String password;   public User(){
      }  public User(String id, String name, String password){
      }  @Override
      public String toString(){
      }
    }
    Manager:public class Manager extends java.util.ArrayList {  Manager<User> users = new Manager<User>();
      User user = new User();
      String  str;
      InputStreamReader isr=new InputStreamReader(System.in);
      BufferedReader br=new BufferedReader(isr);  public void delete(String name){
        user = users.searchByName(name);
        if(user != null){
          System.out.println("Do you want to delete this user?(Press Y to delete): ");
          str=br.readLine(); 
          if(str = "Y" or str = "y"){
            users.remove(user);
            return true;
          } else
            return false;
        }else{
          System.out.println("User Not Found.");
          return false;
        }
      }  public User searchByName(String name){
      /*
      先用for查看每一个User.name,相同则返回该User对象。
      */
      }  public User searchById(String id){
      /*
      先用for查看每一个User.id,相同则返回该User对象。
      */
      }  public static void main(String[] args){
      //用users.add(user)添加用户
      //用users.searchById(id)按ID查找用户
      //用users.delete(String name)删除用户
      }}
      

  4.   

    public class User
    {
    private String id;
    private String name;
    private String passWord;



    public User(String id,String name,String passWord)
    {
    this.id=id;
    this.name=name;
    this.passWord=passWord;
    }

    public User(){}


    public void getUserInformation()
    {
    System.out.println ("id: "+this.id);
    System.out.println ("name: "+this.name);
    System.out.println ("passWord "+this.passWord);
    }

    public String getID()
    {
    return this.id;
    } public String getName()
    {
    return this.name;
    }

    public String getPassWord()
    {
    return this.passWord;
    }

    //当然有get就会有set 自己加吧
    }import java.util.*;public class Manager
    {

    private ArrayList list=new ArrayList();
    User user;




    public void addUser(User user)
    {
    this.list.add(user);
    }

    public int getCount()
    {
    return list.size();
    }




    public void get(int fromIndex)

    for(int i=fromIndex;i <this.getCount();i++) 

    user.getUserInformation();
    System.out.println ();

    }




    public void get()
    {
    for(int i=0;i<this.getCount();i++)
    user.getUserInformation();
    }



    public boolean searchByID(String id) //id name 都可以
    {
    boolean result=false;

    for(int i=0;i<this.getCount();i++)
    {
    user=(User)list.get(i);

    if(user.getID().equals(id))
    result=true;
    }

    return result;
    }


    public void delete(String id) throws UserNotFoundException
    {
    boolean result=false;

    for(int i=0;i<this.getCount();i++)
    {
    user=(User)list.get(i);

    if(user.getID().equals(id))
    {
    list.remove(i);
    System.out.println ("Element has been removed.");
    }

    else throw new UserNotFoundException();
    }

    }



    }
    public class UserNotFoundException extends Exception
    {
    public UserNotFoundException()
    {
    super("Element not found.");
    }

    public UserNotFoundException(String message)
    {
    super(message);
    }
    }
      

  5.   

    详细代码:
    http://blog.csdn.net/hawkeyes0/archive/2008/10/21/3118556.aspx
      

  6.   

    thank you very much!
    感谢了  能告诉我 你学java的心得吗 ?