假设用户名和密码固定将用户名和密码写死
运行程序前先判断输入个数是否合法,如果不合法则提示,输入合法则进行判断用户名和密码是否正确,正确则进入,不正确则退出。
package com.kuang.login;
public class LoginDemo01 {
public static void main(String[] args) {
if (args.length==2){
System.out.println("系统参数正确,程序退出");
System.out.println("输入的用户名和密码正确执行LoginDemo01验证登陆操作");
}else{
System.out.println("重新输入");
}
String name=args[0];
String password=args[1];
if(name.equals("lihua")&&password.equals("csdn")){//验证密码和用户
System.out.println("欢迎"+name+"登录");
}else{
System.out.println("登录名和密码错误");
}
}
}
常理来说我们已经完成了基本功能,但这样是不合理的。equals标红了
- 需要专门完成验证的类
- 需要未验证进行一个包装,通过一个类去访问验证类。
package com.kuang.login;
class Check{//验证类
public boolean vaildate(String name,String password){
if (name.equals("lihua") && password.equals("csdn")){
return true;
}else {
return false;
}
}
}
class Operate{//调用验证类的操作
private String info[];//定义一个数组属性用于接收验证信息
public Operate(String info[]){
this.info=info;//调用构造方法获取输入信息
}
public String login(){
Check check=new Check();//实例化check对象。
this.isExit();
String str=null;
String name=this.info[0];//取出用户名
String password=this.info[1];//取出密码
if (check.vaildate(name,password)) {
str="欢迎登录";
}else {
str="输入的账号错误";
}
return str;
}
public void isExit(){
if (info.length!=2){
System.out.println("输入的参数格式不正确,系统退出");
System.out.println("正确格式为:用户名 密码");
System.exit(1);//退出系统
}
}
}
public class LoginDemo02 {
public static void main(String[] args) {
Operate operate = new Operate(args);//实例化操作对象
System.out.println(operate.login());//取得验证之后的信息
}
}