迷你项目练习题4用户登录与用户注册(异常处理)

题目

(自定义异常)完成某个计费系统的用户登录和注册模块,要求如下: 1) 创建一个 User 类,包括:用户登录名(username)、密码(password)、用户真实姓名(name)、电子邮件地址(email)属性和相应的构造方法及 set/get 方法。
2) 创建两个自定义异常类,一个 LoginException,表示登录异常。一个 RegisterException, 表示注册异常。自定义的两个异常,都要求有一个接受字符串类型参数的构造方法。
3) 创建一个 UserBiz 接口,该接口中定义两个方法:
void register(String username, String password, String password2, String name, String email) throws RegisterException //用户注册 void login(String username, String password) throws LoginException //用户登录
其中 register 方法接受两个 password 参数,原因是:在用户注册时,需要输入两遍 password,只有两次输入的 password 一致,才允许注册。
4) 创建 UserBiz 接口的实现类。其中
为该实现类创建一个属性,该属性为一个 Map,用来保存已注册的用户信息。 Map 的键为用户登录名,值为登录名对应的 User 对象。初始情况下,Map 中保存的对象为以下两个:
在这里插入图片描述
register 方法在以下两种情况下抛出异常:
1) username 在 Map 中已存在
2) 两次输入的 password 不一致
login 方法在以下两种情况下抛出异常:
1) username 不存在
2) username 和 password 不匹配
5) 创建一个 UserView 接口,该接口中定义两个方法: void login();
void register();
6) 创建 UserView 接口的实现类。
该实现类的 login 方法中,利用命令行,让用户输入用户名和密码,之后调用
UserBiz 中的 login 方法。部分代码如下:
void login(){
System.out.println(“请输入用户名:”); String username = /读入用户名…/; System.out.println(“请输入密码”); String password = /读入密码/;
//调用 UserBiz 中的 login 方法
}
该类的 register 方法采用类似的方法,让用户输入注册时需要的信息,然后调用
UserBiz 中的 register 方法。 注意:
1、 密码应该让用户输入两遍。
2、 UserViewImpl 中应当有一个 UserBiz 类型的属性 7) 编写测试代码。 类图如下:
在这里插入图片描述

分析

HashMap底层原理:数组加链表

User类

/**
 * 用户类(-表示private)
 * -username:String 用户登录名
 * -password:String 密码
 * -name:String     用户真实姓名
 * -email:String    电子邮件地址
 */
public class User {
   
   
    //用户登录名 密码 用户真实姓名 电子邮件地址
    private String username;
    private String password;
    private String name;
    private String email;
    //无参构造
    public User() {
   
   
    }
    //有参构造
    public User(String username, String password, String name, String email) {
   
   
        this.username = username;
        this.password = password;
        this.name = name;
        this.email = email;
    }
    //Getter&Setter
    public String getUsername() {
   
   
        return username;
    }
    public void setUsername(String username) {
   
   
        this.username = username;
    }
    public String getPassword() {
   
   
        return password;
    }
    public void setPassword(String password) {
   
   
        this.password = password;
    }
    public String getName() {
   
   
        return name;
    }
    public void setName(String name) {
   
   
        this.name = name;
    }
    public String getEmail() {
   
   
        return email;
    }
    public void setEmail(String email) {
   
   
        this.email = email;
    }
    //重写toString方法
    @Override
    public String toString() {
   
   
        return "用户{" +
                "用户名='" + username + 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香鱼嫩虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值