Java编写应用程序测试User类(分别使用不同的构造方法构造、从键盘输入信息修改姓名;修改口令时,显示为不可见,需要输入原始口令,新口令要输入两遍,对各种不正确的输入做出处理)。
时间: 2024-05-02 22:17:41 浏览: 59
Java测试类,初学者使用
下面是一个可能的实现:
```java
import java.util.Scanner;
public class UserTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 测试使用不同的构造方法构造User对象
User user1 = new User();
User user2 = new User("Alice", "123456");
User user3 = new User("Bob", "abcdef");
// 输出三个User对象的信息
System.out.println(user1);
System.out.println(user2);
System.out.println(user3);
// 从键盘输入信息修改姓名
System.out.print("请输入要修改姓名的用户的原始姓名:");
String oldName = scanner.nextLine();
User targetUser = null;
if (user1.getName().equals(oldName)) {
targetUser = user1;
} else if (user2.getName().equals(oldName)) {
targetUser = user2;
} else if (user3.getName().equals(oldName)) {
targetUser = user3;
}
if (targetUser != null) {
System.out.print("请输入新的姓名:");
String newName = scanner.nextLine();
targetUser.setName(newName);
System.out.println("修改成功!");
} else {
System.out.println("找不到对应的用户!");
}
// 从键盘输入信息修改口令
System.out.print("请输入要修改口令的用户的姓名:");
String name = scanner.nextLine();
targetUser = null;
if (user1.getName().equals(name)) {
targetUser = user1;
} else if (user2.getName().equals(name)) {
targetUser = user2;
} else if (user3.getName().equals(name)) {
targetUser = user3;
}
if (targetUser != null) {
System.out.print("请输入原始口令:");
String oldPassword = scanner.nextLine();
if (targetUser.matchPassword(oldPassword)) {
System.out.print("请输入新的口令:");
String newPassword1 = scanner.nextLine();
System.out.print("请再次输入新的口令:");
String newPassword2 = scanner.nextLine();
if (newPassword1.equals(newPassword2)) {
targetUser.setPassword(newPassword1);
System.out.println("修改成功!");
} else {
System.out.println("两次输入的新口令不一致!");
}
} else {
System.out.println("原始口令不正确!");
}
} else {
System.out.println("找不到对应的用户!");
}
}
}
class User {
private String name;
private String password;
public User() {}
public User(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public boolean matchPassword(String password) {
return this.password.equals(password);
}
@Override
public String toString() {
return "User{name='" + name + "', password='" + password + "'}";
}
}
```
这个程序主要分为三个部分:
1. 测试使用不同的构造方法构造User对象,并输出它们的信息。
2. 从键盘输入信息修改姓名,如果找到对应的用户,则修改成功,否则提示找不到对应的用户。
3. 从键盘输入信息修改口令,如果找到对应的用户且原始口令正确,则要求输入新口令两遍并进行校验,如果两次输入一致则修改成功,否则提示口令不一致或原始口令不正确。如果找不到对应的用户则提示找不到对应的用户。
在这个程序中,我们使用了Scanner类来从键盘输入信息,并使用if语句来判断各种情况。注意在修改口令时,我们使用了matchPassword方法来判断输入的原始口令是否正确,这个方法可以保证密码的安全性,因为密码在内存中不会以明文的形式存储。此外,我们还重写了toString方法来方便输出User对象的信息。
阅读全文