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

实例讲解
一. 系统登录
在各个应用系统中,都会看到用户登录的界面,下面就模拟一个系统用户登录的程序。为了方便理解,就将程序中的用户名和密码分别设置为: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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aotulive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值