使用面向对象的思想实现登录和注册修改密码,使用封装的特性
User, username, password, sex,age
1.使用数组作为容器,存储对象,
2.程序初始化的时候,在容器存储2个对象,
3.成功之后:修改密码,个人中心
4.将用户名和密码的长多做校验,控制6-15,性别默认:男
定义对象和定法
package Enroll;
import java.util.Arrays;
public class User {
// User[] array = new User[3];
// 通过静态变量创建一个长度为3的对象数组
public static User[] array = new User[3];
// 程序初始化的时候,在容器存储2个对象
static{
// 通过类名创建一个对象,并为其赋值
User one = new User();
one.setUsername("lilili");
one.setPassword("111111");
one.setSex("男");
one.setAge(18);
User two = new User();
two.setUsername("zazaza");
two.setPassword("222222");
two.setSex("女");
two.setAge(16);
// 检查对象数据
System.out.println(one);
System.out.println(two);
// 将对象存入对象数组
array[0] = one;
array[1] = two;
System.out.println("初始化的时候,存储2个对象");
}
// 成员对象
private String username;
private String password;
private String sex;
private int age;
// 取值:账户
public String getUsername() {
return username;
}
// 赋值:账户
public void setUsername(String username) {
if (username.length() >= 6 && username.length() <= 15) {
this.username = username;
}else {
System.out.println("账户不合格,长度6-15");
}
}
// 取值:密码
public String getPassword() {
return password;
}
// 赋值:密码
public void setPassword(String password) {
if (password.length() >= 6 && password.length() <= 15) {
this.password = password;
}else {
System.out.println("密码不合格,长度6-15");
}
}
// 取值:性别
public String getSex() {
return sex;
}
// 赋值:性别
public void setSex(String sex) {
if (sex.equals("男") || sex.equals("女")) {
this.sex = sex;
}else {
System.out.println("输入值"+age+"不合理,默认值男");
this.sex = "男";
}
}
// 取值:年龄
public int getAge() {
return age;
}
// 赋值:年龄
public void setAge(int age) {
if (age >= 0 && age <= 100) {
this.age = age;
}else {
System.out.println("输入值"+age+"不合理,默认值18");
this.age = 18;
}
}
// toString方法
public String toString() {
return "User [username=" + username + ", password=" + password
+ ", sex=" + sex + ", age=" + age + "]";
}
// 无参构造
public User(){
}
// 有参构造
public User(String username, String password, String sex, int age) {
}
// 注册账户并存进数组
public String enroll(){
String dui = null;
for (int i = 0; i < array.length; i++) {
if (array[i].getUsername().equals(username) || array[i].getPassword().equals(password)) {
dui ="注册失败";
}else {
dui ="注册成功";
// 存用户输入数据
User three = new User();
three.setUsername(username);
three.setPassword(password);
three.setSex(sex);
three.setAge(age);
array[2] = three;
break;
}
}
System.out.println(dui);
return dui;
}
// 个人中心
public void centre() {
for (int i = 0; i < array.length; i++) {
if (array[i].getUsername().equals(username)) {
System.out.println(array[i]);
break;
}
}
}
// 修改密码
public void revise(String newPassword){
for (int i = 0; i < array.length; i++) {
if (array[i].getUsername().equals(username)) {
// 进入这里代表密码修改成功
password = newPassword;
array[i].setPassword(password);
System.out.println("密码修改成功");
break;
}
}
}
// 登录账户的方法
public String login(){
String login = null;
for (int i = 0; i < array.length; i++) {
if (array[i].getUsername().equals(username) && array[i].getPassword().equals(password)) {
login = "登录成功";
break;
}else {
login = "登录失败";
}
}
System.out.println(login);
return login;
}
}
测试
package Enroll;
import java.util.Arrays;
import java.util.Scanner;
public class Demol {
public static void main(String[] args) {
User user = new User();
Scanner sc = new Scanner(System.in);
System.out.println("注册:1"+" "+"登录:2");
int numb1 = sc.nextInt();
if (numb1 == 1) {
// 注册填写信息
System.out.println("账户:");
String name = sc.next();
user.setUsername(name);
System.out.println("密码:");
String pass = sc.next();
user.setPassword(pass);
System.out.println("性别:");
String sex = sc.next();
user.setSex(sex);
System.out.println("年龄:");
int age = sc.nextInt();
user.setAge(age);
// 注册账户
user.enroll();
if (user.enroll().equals("注册成功")) {
// 输入账户和密码
System.out.println("账户:");
String name1 = sc.next();
user.setUsername(name1);
System.out.println("密码:");
String pass1 = sc.next();
user.setPassword(pass1);
// 调用登录的方法
user.login();
if (user.login().equals("登录成功")) {
// 个人中心或修改密码
System.out.println("个人中心:1"+" "+"修改密码:2");
int numb2 = sc.nextInt();
if (numb2 == 1) {
// 调用个人中心的方法
user.centre();
}else if (numb2 == 2) {
// 修改密码
// user.centre():调用修改密码的方法
System.out.println("更改前");
user.centre();
System.out.println("新密码:");
String newPass = sc.next();
user.revise(newPass);
System.out.println("更改后");
user.centre();
}
}
}
}else if (numb1 == 2) {
// 输入账户和密码
System.out.println("账户:");
String name2 = sc.next();
user.setUsername(name2);
System.out.println("密码:");
String pass2 = sc.next();
user.setPassword(pass2);
// 调用登录的方法
user.login();
// 个人中心或修改密码
System.out.println("个人中心:1"+" "+"修改密码:2");
int numb3 = sc.nextInt();
if (numb3 == 1) {
// 个人中心
user.centre();
}else if (numb3 == 2) {
// 修改密码
// user.centre():调用修改密码的方法
System.out.println("更改前");
user.centre();
System.out.println("新密码:");
String newPass = sc.next();
user.revise(newPass);
System.out.println("更改后");
user.centre();
}
}else {
System.out.println("重来");
}
}
}