编写用户登陆案例
一、面向对象高级训练任务
1、编写用户登陆案例
问题描述
假设用户账号为:admin,密码为 123,编写用户登陆案例。 要 求:请将登陆定义为 login 方法, 并将 login 方法写在UserService 类中
解题思路
本题思路很清晰,很明显要创建两个类,一个UserService 类和一个测试类。在UserService 类中要封装两个属性以及定义login 方法。
login方法主要是用于判断测试类中用户输入的账号密码是否正确,才能确定是否登录成功;
测试类主要是用户自定义输入账号密码,然后调用login方法来判断。
在编写时,要注意用户的体验(说白了就是接近现实操作)。
代码
【优化前】
UserService.java
public class UserService {
/**
* 用户登录
* @param userName 用户名
* @param password 密码
* @return
*/
public boolean login(String userName,String password) {
//字符串比较相等的时候将常量放前面,防止空指针异常
if("admin".equals(userName) && "123".equals(password)) {
return true;
}
return false;
}
}
UserServiceTest.java
import java.util.Scanner;
public class UserServiceTest {
public static void main(String[] args) {
UserService use = new UserService();
Scanner input = new Scanner(System.in);
System.out.println("请您输入账号及密码");
String useName = input.next();
String passWord = input.next();
boolean flag = use.login(useName,passWord);
if(flag){
System.out.println("登陆成功");
}else{
System.out.println("您输入的账号或密码错误");
}
}
}
【优化后(考虑到用户体验)】
UserService_1.java
public class UserService_1 {
private String account;//账号
private String passWord;//密码
//无参构造方法
public UserService() {
}
//有参构造方法
public UserService(String account, String passWord) {
this.account = account;
this.passWord = passWord;
}
//setter和getter方法
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
//判断是否登录成功
public boolean login(String account,String passWord) {
//字符串比较相等的时候将后输入的放前面,防止空指针异常
if(account.equals(this.account)) {
if(passWord.equals(this.passWord)) {
System.out.println("登录成功!");
return true;
}else {
System.out.println("密码错误!");
}
}else {
System.out.println("账号输入有误!");
}
return false;
}
}
UserServiceTest_1.java
扫描二维码关注公众号,回复:
12727900 查看本文章

import java.util.Scanner;
public class UserServiceTest_1 {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
//存放用户登录得账号及密码
String account_1;
String passWord_1;
//实例化对象
UserService people = new UserService();
//设置账号及密码
people.setAccount("admin");
people.setPassWord("123");
//判断用户登录情况
for(int i = 0; i < 5; i ++) {
System.out.println("你还有" + (5-i) + "次机会");
System.out.println("请输入账户名称:");
account_1 = input.next();
System.out.println("请输入密码:");
passWord_1 = input.next();
if(people.login(account_1, passWord_1)) {
break;
}
}
}
}
运行结果: