02 Java面向对象—第4节 面向对象高级~编写用户登陆案例

一、面向对象高级训练任务

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

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;
			}
		}
	}
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46312449/article/details/112733549
今日推荐