Java-面向对象(基础篇)--实例讲解

来源:互联网 发布:淘宝商城女装卫衣套装 编辑:程序博客网 时间:2024/06/06 18:00

实例讲解
一. 系统登录
在各个应用系统中,都会看到用户登录的界面,下面就模拟一个系统用户登录的程序。为了方便理解,就将程序中的用户名和密码分别设置为:Java和java。程序采用初始化参数的方式输入用户名和密码。
程序分析:
既然使用初始化参数的方式输入用户名和密码,所以在程序运行之前首先必须判断输入的参数是否合法,如果不合法们则必须提示用户的程序执行错误,并退出程序。如果用户已经正确地输入了参数,则可以进行用户名及密码的验证。
实现一:基本功能实现

public class LoginDemo01 {    public static void main(String args[]) {        if(args.length!=2){            System.out.println("输入的参数不正确,系统推出");            System.out.println("格式:java LoginDemo01 用户名  密码");            System.exit(1);        }        String name=args[0];        String password=args[1];        if (name.equals("Java")&&password.equals("java")) {            System.out.println("欢迎"+name+"光临!");        } else {            System.out.println("错误的用户名或密码!");        }    }}

程序运行结果(在cmd中输入参数):

(1) 参数格式错误:输入的参数不正确,系统推出格式:java LoginDemo01 用户名  密码(2) 输入的用户名或者密码错误:错误的用户名或密码!(3) 输入正确的用户名及密码:欢迎Java光临!

以上程序完成了基本的功能,但是读者现在思考一下,本程序并不能算是一个好程序,程序在主方法中编写了大量的代码,而主方法就好比是一个客户端,现在要求客户端自己比较、自己输出显然不合理,最简单的做法就是客户端只要得到最终的判断结果即可,至于中间是如何判断的,它根本就没有必要去关心,就好比进楼门要刷卡一样,用户只关心的是返回刷卡成功还是刷卡失败的信息。而不是关心里面是如何判断验证的。所以此处最好的做法是,单独做一些类,并使用这些类封装具体的判断过程。
修改后的代码:

class Check{    public boolean validate(String name,String password){        if (name.equals("Java")&&password.equals("java")) {            return true;        } else {            return false;        }    }};class Operate{    private String info[];    public Operate(String info[]){        this.info=info;    }    public String login(){        Check check=new Check();        this.isExit();        String name=this.info[0];        String password=this.info[1];        String str=null;        if (check.validate(name, password)) {            str="欢迎"+name+"光临!";        } else {            str="用户名或密码错误!";        }        return str;    }    public void isExit(){        if (this.info.length!=2) {            System.out.println("输入的参数不正确!系统退出!");            System.out.println("格式:java LoginDemo02 用户名 密码");            System.exit(1);        }    }};public class loginDemo02 {    public static void main(String args[]) {        Operate oper=new Operate(args);        System.out.println(oper.login());    }}

程序的运行结果与之前相似。从本程序中可以发现:
*(1) 主方法处代码较少,因为是客户端,所以要方便客户使用;
(2) Check类的主要功能就是验证操作,只需要传入用户名和密码即可完成验证;
(3) Operate类的主要功能就是封装Check类的操作,并把Check的信息返回给调用处。*

0 0
原创粉丝点击