怎样才能用稽核保存多个类中的不同对象对象


 import java.io.InputStream;
import java.net.PasswordAuthentication;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;

/*第一步: 提示用户选择功能, A(注册)  B(登陆) 。 要求: 功能选择 的时候要忽略大小写。


注册:
    1. 提示用户输入注册的账号(数字)与密码,如果输入的id号已经存在集合中,提示用户重新输入。 
注册完毕之后,把集合中的所有用户信息打印出来。(使用:toArrry()方法) 

登陆: 
    提示用户输入登陆的账号与密码,如果账号与密码这个用户已经存在集合中,那么登陆成功,否则登陆失败。
 * 
 * 
 * 
 * 
 */
class User{//创建一个用户类
    int name;
    String password;
    public User(int name,String password){
        this.name=name;
        this.password=password;
    }

}
class Registered extends User implements Runnable//创建一个注册类
{
    public Registered(int name, String password) {
        super(name, password);
        // TODO Auto-generated constructor stub
    }

    User user=new User(00000,"lzk147258");
@Override
public String toString() {
    // TODO Auto-generated method stub
    return "[  账号    "+this.name+"  密码    "  +this.password+"  ]";    
}
@Override
    public boolean equals(Object obj){
    Registered p=(Registered) obj;
    return this.name==p.name;


};
    @Override
    public void run() {//多线程实现方法
        // TODO Auto-generated method stub

    }



}
class loagin extends User implements Runnable{
    public loagin(int name, String password) {//构造方法
        super(name, password);
        // TODO Auto-generated constructor stub
    }
    // TODO Auto-generated constructor stub

//创建一个登陆类
    public String toString() {
        // TODO Auto-generated method stub
        return "[  账号    "+this.name+"  密码    "  +this.password+"  ]";    
    }
    @Override
        public boolean equals(Object obj){
        loagin p=(loagin) obj;
        return this.name==p.name;


    };
    @Override
    public void run() {
    }//创建一个登陆类




}
public class demo8 {//创建一个主类

    public static void main(String[] args) {
            while(true){
        String a; //用于接受输入流
        Collection c=new ArrayList();
        //Registered r=new Registered(1111,"sg");
        //loagin l =new loagin(1111,"sg");
        Scanner b= new Scanner(System.in);
        //boolean flag=true;//设置一个布尔变量,判断while的循环条件
        System.out.println("请选择功能,A(注册)  B(登陆)。");
        System.out.println("请输入:");
        a=b.next();//请输入
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(a.equals("A")|a.equals("B")){//判断是否需要重新输入

        if(a.equals("A")){
            System.out.println("欢迎使用 注册 功能!");

            System.out.println("请输入账号:");
            int name=b.nextInt();
            System.out.println("请输入密码:");
             String password=b.next();
             Registered r=new Registered(name,password);
            if(c.contains(r)){
                System.out.println("这个账号已存在");
            }else{
                c.add(r);
                System.out.println("注册成功!");
                Object[] arr=c.toArray();
                for(int i=0;i<arr.length;i++){
                    Registered p=(Registered) arr[i];
                    if(p.name==r.name){

                        System.out.println("当前用户名和密码是"+p);
                    }

                }
            }


        }
        else{
            loagin l =new loagin(1111,"sg");
            System.out.println("欢迎使用 登陆 功能!");
            System.out.println("请输入账号:");
            l.name=b.nextInt();
            System.out.println("请输入密码:");
            l.password=b.next();
            if(c.contains(l)){
                Object[] arr=c.toArray();
                for(int i=0;i<arr.length;i++){
                    loagin p=(loagin) arr[i];
                    if(p.password==l.password){

                        System.out.println("登陆成功!");
                    }else{  
                        System.out.println("密码错误");}




                }


            }else 
                System.out.println("账户名不存在!");

        }}
        else {
            System.out.println("输入错误!请重新输入!");
            }
        }


}
}

我知道了。while的位置放错了,问题又来了,怎样才能把a对象指向的集合与b对象指向的集合放在一块儿呢?

import java.io.InputStream;
import java.net.PasswordAuthentication;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;

/*第一步: 提示用户选择功能, A(注册) B(登陆) 。 要求: 功能选择 的时候要忽略大小写。

注册:
1. 提示用户输入注册的账号(数字)与密码,如果输入的id号已经存在集合中,提示用户重新输入。
注册完毕之后,把集合中的所有用户信息打印出来。(使用:toArrry()方法)

登陆:
提示用户输入登陆的账号与密码,如果账号与密码这个用户已经存在集合中,那么登陆成功,否则登陆失败。

  • */ class User{//创建一个用户类 int name; String password; public User(int name,String password){ this.name=name; this.password=password; }

}
class Registered extends User implements Runnable//创建一个注册类
{
public Registered(int name, String password) {
super(name, password);
// TODO Auto-generated constructor stub
}

User user=new User(00000,"lzk147258");

@Override
public String toString() {
// TODO Auto-generated method stub
return "[ 账号 "+this.name+" 密码 " +this.password+" ]";

}
@Override
public boolean equals(Object obj){
Registered p=(Registered) obj;
return this.name==p.name;

};
@Override
public void run() {//多线程实现方法
// TODO Auto-generated method stub

}

}
class loagin extends User implements Runnable{
public loagin(int name, String password) {//构造方法
super(name, password);
// TODO Auto-generated constructor stub
}
// TODO Auto-generated constructor stub

//创建一个登陆类
public String toString() {
// TODO Auto-generated method stub
return "[ 账号 "+this.name+" 密码 " +this.password+" ]";

}
@Override
public boolean equals(Object obj){
loagin p=((loagin) obj);
return this.name==p.name;

};
@Override
public void run() {
}//创建一个登陆类

}
public class demo8 {//创建一个主类

public static void main(String[] args) {
    //while(true){事实证明位置不一样,效果就是不一样
    String a; //用于接受输入流
    Collection c=new ArrayList();
    Collection c1=new ArrayList();
    //Registered r=new Registered(1111,"sg");
    //loagin l =new loagin(1111,"sg");
    Scanner b= new Scanner(System.in);
    while(true){//可以用if语句代替,更容易退出
    //boolean flag=true;//设置一个布尔变量,判断while的循环条件
    System.out.println("请选择功能,A(注册)  B(登陆)。");
    System.out.println("请输入:");
    a=b.next();//请输入
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    if(a.equals("A")|a.equals("B")){//判断是否需要重新输入

    if(a.equals("A")){
        System.out.println("欢迎使用 注册 功能!");

        System.out.println("请输入账号:");
        int name=b.nextInt();
        System.out.println("请输入密码:");
         String password=b.next();
         Registered r=new Registered(name,password);
        if(c.contains(r)){
            System.out.println("这个账号已存在");
        }else{
            c.add(r);
            System.out.println("注册成功!");
            Object[] arr=c.toArray();
            for(int i=0;i<arr.length;i++){
                Registered p=(Registered) arr[i];
                if(p.name==r.name){

                    System.out.println("当前用户名和密码是"+p);
                }

            }
        }


    }
    else{
        Registered l =new Registered(1111,"sg");
        System.out.println("欢迎使用 登陆 功能!");
        System.out.println("请输入账号:");
        l.name=b.nextInt();
        System.out.println("请输入密码:");
        l.password=b.next();
        c1.addAll(c);
        if(c.contains(l)){
            Object[] arr=c1.toArray();
            for(int i=0;i<arr.length;i++){
                Registered p=(Registered) arr[i];
                if(p.password.equals(l.password)){

                    System.out.println("登陆成功!");
                }else{  
                    System.out.println("密码错误");}




            }


        }else 
            System.out.println("账户名不存在!");

    }}
    else {
        System.out.println("输入错误!请重新输入!");
        }
    }

}//一个登陆注册类就能解决问题
}//简单的登陆注册 代码段能保存数据,
终于可以睡觉了。