1.使用面向对象编程思想设计实现用户注册,登录功能.
启动程序选择操作功能:1.注册,2.登录,3退出;
输入1进入注册流程,提示用户输入手机号,密码,手机号密码格式需要验证.
输入符合规则后将用户信息存储(存储到用户对象,将用户对象存储到数组假设数组长度为100),回到功能选择.
输入2进入用户登录流程,提示用户输入手机号,密码,手机号密码格式需要验证.
输入符合规则后 与之前保存的用户信息比较,手机号和密码是否存在.
判断登录能否成功.
3次输入错误,提示账号锁定,程序终止.
输入3 会退出操作


个人的思路:
将注册功能和登录功能分开写;然后再其中调用输入手机号和密码的格式判断;

启动类:

import java.util.Scanner;
/**
 * @create 2021-05-17 16:51
 */
//把注册和登录方法分开写;
public class Demo{
    //主方法;
    public static void main(String[] args) {
        opper();
    }
    //创建长度为100的数组;
    static User[] users=new User[100];
    //程序的操作启动方法;
    public static void opper(){
        //这里写一个outer1标签来指定操作符,输入错误而就会跳转回来;
        outer:
        for (int i = 0; i <1000; i++) {
            System.out.println("选择操作功能:1.注册,2.登录,3退出");
            Scanner scanner=new Scanner(System.in);
            int opr = scanner.nextInt();

            while(true){
                switch (opr){
                    //注册:
                    case 1:
                        zhuce_ZH();
                        continue  outer;
                    //登录:
                    case 2:
                        denglu_ZH();
                        break;
                    //退出系统:
                    case 3:
                        System.out.println("退出系统.");
                        return;
                    //默认操作:
                    default:
                        System.out.println("操作符错误,重新输入.");
                        continue outer;
                }
            }
        }
    }
    //写注册方法;
    public static void zhuce_ZH(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("注册输入手机号:");
        String phone=scanner.next();
        System.out.println("注册输入密码:");
        String password=scanner.next();
        //判断格式;
        boolean res3=panduan_GS(phone, password);
        //格式正确则可以注册;
        if(res3==true){
            User user=new User(phone,password);
            for (int i = 0; i < users.length; i++) {
                users[i]=user;
            }
            System.out.println("注册完成,回到功能选择.");
        }
        else{
            System.out.println("格式不对!");
        }
    }
    //写登录方法;
    public static void denglu_ZH(){
        //设置返回点outer1:
        outer1:
        for (int number=0; number<4 ;number++) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("登录输入手机号:");
            String phone = scanner.next();
            System.out.println("登录输入密码:");
            String password = scanner.next();
            //统计输入错误的次数;
            //判断格式;
            boolean res4 = panduan_GS(phone, password);
            if (res4 == true) {
                for (int i = 0; i < users.length; i++) {
                    while (users[i].getPassword() != null && users[i].getPhone() != null) {
                        if (users[i].getPhone().equals(phone) && users[i].getPassword().equals(password)) {
                            System.out.println("手机号,密码存在; 登录能成功");
                            number--;
                            //正常关闭系统;
                            System.exit(0);
                        } else {
                            //由于number从零开始,那么number为2时就是第三次了,终结程序;
                            while (number==2) {
                                System.out.println("写错了3次,程序终止!");
                                System.exit(1);
                            }
                            //输入错误,返回到outer1标签处;
                            continue outer1;
                        }
                    }
                }
            }
            else {
                System.out.println("格式不对!");
                number--;
            }
        }
    }
    //手机号,密码的格式判断方法;
    public static boolean panduan_GS(String phone,String password){
        //对手机号进行检测
        //11位数号码;第一位为1,第二位为3,5,6,7,9其中的一个;
        boolean res1=phone.matches("[1][35679]\\d{9}");
        //对密码进行检测
        //6位数密码;
        boolean res2=password.matches("\\w{6}");
        //格式都正确,返回true;
        if((res1==true)&&(res2==true)){
            return true;
        }
        else {
            return false;
        }
    }
}

用户信息类:

//用户信息类;
public class User {
    //私有属性的phone和password;
    private String phone;
    private String password;

    //重写toString方法
    @Override
    public String toString() {
        return "User{"+"手机号phone="+phone+"密码password="+password+'}';
    }
    //构造方法;
    //无参构造方法;
    public User() {
    }
    //有参数构造方法;
    public User(String phone, String password) {
        this.phone = phone;
        this.password = password;
    }

    //get,set获取设置私有属性的方法
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}