这个if里面是怎么判断的

ambitiousyoyo 2011-10-14 11:41:54
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语句把我搞闷了
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
林昭希 2011-10-15
  • 打赏
  • 举报
回复
分开写;
林昭希 2011-10-15
  • 打赏
  • 举报
回复

equals(this.args[0], this.args[1])
龙腾冰 2011-10-14
  • 打赏
  • 举报
回复
首先要理解java中Main函数中的public static void main(String args[])中的args[]中的含义,是指输入的参数,这写参数可以再cmd命令窗口下编译完后,运行时,例如 java Testlogin "abc" 123""来实现,如果理解了这些,那么你对上面的判断就理解了。不知道说的你能明白不
疯癫行者 2011-10-14
  • 打赏
  • 举报
回复
new Login(this.args[0], this.args[1]).validate()
红色部分是创建了一个Login对象,创建对象的时候传入两个参数,一个是用户名,一个是密码。
创建对象过程中,调用了public Login方法,该方法把传来的用户名和密码记入私有属性name和password。
创建完成后,接着调用了.validate()方法,
该方法执行的时候,判断刚刚记入name和password的值,如果满足条件,就返回true,否则false。
那么,在getInfo()方法里面,if语句根据返回的值,再返回文字信息。
dzr1990 2011-10-14
  • 打赏
  • 举报
回复
if (new Login(this.args[0], this.args[1]).validate())

这段话等效于

Login login = new Login(this.args[0], this.args[1]);
if(login.validate == true)

这样写楼主懂了没
qqlwq123 2011-10-14
  • 打赏
  • 举报
回复
args通过方法窗口main在控制台接收。
qqlwq123 2011-10-14
  • 打赏
  • 举报
回复
判断Operate构造时的参数,args[0]和args[1]是不是和指定的"abc"和"123"值相等,相等就通过验证,不相等就失败。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧