/*
* 设计用户类 包含 用户名和密码两个属性
* 设计LoninDemo类 用于设计登陆方法 连续登录三次错误则退出登陆
* 需要创建一个对象来存储注册号的账户和密码
* */
package 登陆;
import java.util.Scanner;
class User
{
String name; //用户名
String passWord;//密码
User(String name,String passWord)
{
this.name = name;
this.passWord = passWord;
}
}
public class LoginDemo {
User u ;//一个对象用来存放注册好的账户密码 全局变量(类变量)
private static Scanner in;
//不可以定义static因为内部有this 静态函数只能直接使用同类中的静态成员
public void setUer(User p)
{
u = p;
}
//判断输入是否正确
public boolean verify(String name,String passWord)//此函数无法定义为静态 因为u是非静态成员
{
if(u.name.equals(name)&&u.passWord.equals(passWord))
return true;
else
return false;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
LoginDemo l = new LoginDemo();
String userName;//用户名
String word;//密码
int i=0;
System.out.println("********用户注册********");
System.out.println("请输入用户名:");
userName = in.next();
System.out.println("请输入密码:");
word = in.next();
User p = new User(userName, word);
//静态的main函数中调用同类中的非静态成员 也需要通过建立对象来调用 可直接使用同类中的静态成员
l.setUer(p); //为什么这里不可以用匿名对象
System.out.println("注册成功");
System.out.println("********用户登陆********");
while(true)
{
System.out.println("请输入用户名:");
userName = in.next();
System.out.println("请输入密码:");
word = in.next();
if(l.verify(userName,word))
{
System.out.println("登陆成功");
break;
}
else
{
i++;
if(i==3)
{
System.out.println("很遗憾,您已经没有机会了!");
break;
}
else
{
System.out.println("您有3次登陆机会,您已经登陆失败"+i+"次。请重新输入");
continue;
}
}
}
}
}
练习
最新推荐文章于 2023-09-18 23:26:54 发布