A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 只想要一盏灯 于 2013-10-20 22:41 编辑

这个是习题:现在要求完成一个用户的登陆程序,通过初始化参数,输入登陆的用户名和密码
例如:java LoginDemo 用户名密码
如果用户名是hello,密码是mldn 的话,则表示登陆成功,显示登陆欢迎的信息,如果登陆失败,则显示登陆
失败的信息。

我的代码如下。

求助问题:
我想实现打印出来的“welcome to ou home”,即让程序成功登录界面,在主函数那里,我应该怎么print。现在这个界面打印出来的是error。

class  Login
{
        private String admin;//用户名
        private String password;//密码
        public Login(String admin,String password)//初始化帐号和密码
        {
                this.admin = admin;
                this.password = password;
        }
        public boolean getLogin()//进入系统的正确帐号和密码
        {
                if ("hello".equals(admin)&&"mldn".equals(password))//满足条件
                {
                        return true;
                }
                else
                        return false;        
        }
}
class Admin//登录界面类
{
        private String args[];//接收所有的登录信息
        public Admin(String args[])
        {
                this.args = args;//接收数组
                if (this.getExit())//符合条件退出
                {
                        System.out.println("ERROR");
                        System.exit(1);//退出系统
                }
        }
        public boolean getExit()//判断登录界面的退出条件
        {
                if (args.length!=2)//不是两组数据
                {
                        return true;//长度不够,退出
                }
                else
                        return false;
        }
        public String admin()
        {
                Login admin = new Login(args[0],args[1]);//输入两组数据
                if (admin.getLogin())
                {
                        return "welcome to ou home";
                }
                else
                {
                        return "sorry,your are failing";
                }
        }
}
class StaticTestDemo
{
        public static void main(String[] args)
        {               
                System.out.println(new Admin(args).admin());
        }
}


点评

楼主是想通过运行时加上参数吧?  发表于 2013-10-20 22:10

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

9 个回复

倒序浏览
本帖最后由 風諾 于 2013-10-20 21:50 编辑

class StaticTestDemo
{
        public static void main(String[] args)
        {               
                System.out.println(new Admin(new String[]{"hello","mldn"}).admin());    //这里传递进去一个字符串数组就可以了
        }
}给我的感觉你思路是通过Login类创建对象直接接收用户名和密码字符串再去判断
但是实际上你是在Admin类中设置args[]属性,通过在Admin类内部创建Login对象,将args[]中的值传递给Login对象的构造方法创建Login对象,再去判断用户名密码是否正确
所以需要在创建Admin对象的时候传递用户名密码的字符串数组

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在主函数那里这样写
public static void main(String[] args) {
                String[] NameandPassword ={"hello","mldn"};
                 System.out.println(new Admin(NameandPassword).admin());
        }
回复 使用道具 举报
楼主,虽然我看不懂你的代码,但是你构造函数里
  1. public Admin(String args[])
  2.         {
  3.                 this.args = args;//接收数组
  4.                 if (this.getExit())//符合条件退出
  5.                 {
  6.                         System.out.println("ERROR");
  7.                         System.exit(1);//退出系统
  8.                 }
  9.         }
复制代码
就已经Error了,我想你是准备写一个模拟登陆系统,那我写了一个,
  1. package com.test;

  2. import java.util.Scanner;

  3. class Test
  4. {  
  5.                  public static void main(String[] args) {
  6.                         Scanner scanner = new Scanner(System.in);
  7.                         System.out.print("请输入账号:");
  8.                         String user = scanner.nextLine();
  9.                         System.out.print("请输入密码:");
  10.                         String password= scanner.nextLine();
  11.                         if(user.equals("hello")&&password.equals("mldn"))
  12.                         {
  13.                                 System.out.println("welcome to our home");
  14.                         }else{
  15.                                 System.out.println("账户名或密码错误");
  16.                         }
  17.                
  18.         }
  19. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我运行正确啊
回复 使用道具 举报

好吧,我又没有解释清楚,我上面自己的代码运行后显示error,我想让他运行后显示登陆成功!!!呵呵 ,还是谢谢啦
回复 使用道具 举报
風諾 发表于 2013-10-20 21:43
class StaticTestDemo
{
        public static void main(String[] args)[/backc ...

谢啦,就是最后部分没有弄明白,帮了我大忙了!thanks
回复 使用道具 举报
習慣性、隱身 发表于 2013-10-20 21:45
在主函数那里这样写
public static void main(String[] args) {
                String[] NameandPassword ={"hello","ml ...

and还没学习到,呵呵,多谢啦
回复 使用道具 举报
麦者 发表于 2013-10-20 21:57
楼主,虽然我看不懂你的代码,但是你构造函数里就已经Error了,我想你是准备写一个模拟登陆系统,那我写了 ...

谢啦:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马