You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
2.9 KiB
134 lines
2.9 KiB
package com.ybw.mathapp.entity;
|
|
|
|
/**
|
|
* 用户实体类,表示系统中的用户信息。
|
|
*
|
|
* <p>该类包含用户的基本信息,如用户名、密码和学习级别。
|
|
* 用户级别可以是小学、初中或高中。
|
|
*
|
|
* @author 杨博文
|
|
* @version 1.0
|
|
* @since 2025
|
|
*/
|
|
public class User {
|
|
|
|
/**
|
|
* 用户名,不可修改。
|
|
*/
|
|
private final String name;
|
|
|
|
/**
|
|
* 邮箱,不可修改。
|
|
*/
|
|
private final String email;
|
|
|
|
/**
|
|
* 用户密码,不可修改。
|
|
*/
|
|
private final String password;
|
|
|
|
/**
|
|
* 用户当前的学习级别,可以修改。
|
|
*/
|
|
private String level;
|
|
|
|
/**
|
|
* 构造一个新的用户对象。
|
|
*
|
|
* @param name 用户名,不能为空
|
|
* @param email 邮箱,不能为空
|
|
* @param password 用户密码,不能为空
|
|
* @throws IllegalArgumentException 如果 name、email 或 password 为 null 或空字符串
|
|
*/
|
|
public User(String name, String email, String password) {
|
|
if (name == null || name.trim().isEmpty()) {
|
|
throw new IllegalArgumentException("用户名不能为空");
|
|
}
|
|
if (email == null || email.trim().isEmpty()) {
|
|
throw new IllegalArgumentException("邮箱不能为空");
|
|
}
|
|
if (password == null || password.trim().isEmpty()) {
|
|
throw new IllegalArgumentException("密码不能为空");
|
|
}
|
|
this.name = name;
|
|
this.email = email;
|
|
this.password = password;
|
|
}
|
|
|
|
/**
|
|
* 从字符串创建用户对象。
|
|
*
|
|
* <p>字符串格式应为 "name,email,password"。
|
|
*
|
|
* @param line 包含用户信息的字符串
|
|
* @return 解析成功的用户对象,如果解析失败则返回 null
|
|
*/
|
|
public static User fromString(String line) {
|
|
if (line == null || line.trim().isEmpty()) {
|
|
return null;
|
|
}
|
|
|
|
String[] parts = line.split(",", 3); // 最多分割成3部分
|
|
if (parts.length == 3) {
|
|
return new User(parts[0].trim(), parts[1].trim(), parts[2].trim());
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 获取用户名。
|
|
*
|
|
* @return 用户名
|
|
*/
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
/**
|
|
* 获取用户密码。
|
|
*
|
|
* @return 用户密码
|
|
*/
|
|
public String getPassword() {
|
|
return password;
|
|
}
|
|
|
|
/**
|
|
* 获取用户当前的学习级别。
|
|
*
|
|
* @return 用户学习级别
|
|
*/
|
|
public String getLevel() {
|
|
return level;
|
|
}
|
|
|
|
/**
|
|
* 设置用户的学习级别。
|
|
*
|
|
* @param newLevel 新的学习级别,支持"小学"、"初中"、"高中"
|
|
*/
|
|
public void setLevel(String newLevel) {
|
|
level = newLevel;
|
|
}
|
|
|
|
/**
|
|
* 获取用户邮箱。
|
|
*
|
|
* @return 用户邮箱
|
|
*/
|
|
public String getEmail() {
|
|
return email;
|
|
}
|
|
|
|
/**
|
|
* 返回用户信息的字符串表示。
|
|
*
|
|
* <p>格式为 "name,email,password"。
|
|
*
|
|
* @return 包含用户名、邮箱和密码的字符串
|
|
*/
|
|
@Override
|
|
public String toString() {
|
|
return name + "," + email + "," + password;
|
|
}
|
|
} |