public class TestLogin {
   public static void main(String[] args) {
      System.out.println(new Operate(args).getInfo());
   }
}class Login {
   private String name;
   private String password;   public Login(String name, String password) {
      this.name = name;
      this.password = password;   }

   public boolean validate() {
      if (name.equals("abc") && password.equals("123")) {
         return true;
      } else {
         return false;
      }
   }}class Operate {
   private String[] args;   public Operate(String args[]) {
      this.args = args;
      if (args.length != 2) {
         System.out.println("输入错误");
         System.exit(-1);
      }
   }

   public String getInfo() {
      if (new Login(this.args[0], this.args[1]).validate()) {
         return "登陆成功后";
      } else {
         return "登录失败";
      }
   }
}就帮我看下红色那句在if中是怎么个判断的啊,有些哥if语句把我搞闷了

解决方案 »

  1.   

    判断Operate构造时的参数,args[0]和args[1]是不是和指定的"abc"和"123"值相等,相等就通过验证,不相等就失败。
      

  2.   

    args通过方法窗口main在控制台接收。
      

  3.   

     if (new Login(this.args[0], this.args[1]).validate())这段话等效于Login login = new Login(this.args[0], this.args[1]);
    if(login.validate == true)这样写楼主懂了没
      

  4.   

    new Login(this.args[0], this.args[1]).validate()
    红色部分是创建了一个Login对象,创建对象的时候传入两个参数,一个是用户名,一个是密码。
    创建对象过程中,调用了public Login方法,该方法把传来的用户名和密码记入私有属性name和password。
    创建完成后,接着调用了.validate()方法,
    该方法执行的时候,判断刚刚记入name和password的值,如果满足条件,就返回true,否则false。
    那么,在getInfo()方法里面,if语句根据返回的值,再返回文字信息。
      

  5.   

    首先要理解java中Main函数中的public static void main(String args[])中的args[]中的含义,是指输入的参数,这写参数可以再cmd命令窗口下编译完后,运行时,例如 java Testlogin "abc" 123""来实现,如果理解了这些,那么你对上面的判断就理解了。不知道说的你能明白不
      

  6.   


    equals(this.args[0], this.args[1])