使用类的Java登录程序
Posted
技术标签:
【中文标题】使用类的Java登录程序【英文标题】:Java Login program using a class 【发布时间】:2014-09-01 04:56:33 【问题描述】:我必须使用公共类和主驱动程序控制台创建一个简单的登录程序。
这是我的代码:
主要
import java.util.Scanner;
public class main
public static void main(String[] args)
Scanner input = new Scanner (System.in);
String username;
String password;
System.out.println("Welcome to your Social network site!");
System.out.println("\nEnter your username and password to login to your account.");
System.out.println("Username: ");
username = input.nextLine();
System.out.println("Password: ");
password = input.nextLine();
UserAccount login = new UserAccount(username, password);
if(login.checkPassword())
System.out.println("You are logged in!");
else
System.out.println("The username and password you entered are incorrect.");
用户类
public class UserAccount
private String username;
private String password;
private String[][] accounts = "anthony", "supernova","steve", "java1";
public UserAccount(String username, String password)
String user = username;
String pass = password;
boolean active;
public boolean checkPassword()
if((username.equals(accounts[0][0])) && (password.equals(accounts[0][1])))
return true;
else
return false;
public void deactivateAccount()
boolean active = false;
问题是我在输入正确信息后不断收到此错误: 线程“main”中的异常 java.lang.NullPointerException 在 UserAccount.checkPassword(UserAccount.java:19) 在 main.main(main.java:25)
【问题讨论】:
【参考方案1】:您没有在 UserAccount
构造函数中分配对象属性。更改如下:
public UserAccount(String username, String password)
this.username = username;
this.password = password;
此外,如果您打算使用该 active
布尔值做某事,您还必须将其作为属性添加到您的类中。像现在这样在构造函数/方法中声明它是没有效果的。
【讨论】:
【参考方案2】:您的 UserAccount 构造函数应该正在初始化类变量。像这样-
public UserAccount(String username, String password)
this.username = username;
this.password = password;
boolean active;
HTH
【讨论】:
【参考方案3】:public UserAccount(String username, String password)
this.username = username;
this.password = password;
// boolean active; //not a good coding standard
//in constructor only initialization of class variables must be done
this will show how to use constructor-- 良好的编码标准 (重要:构造函数只能用于初始化,不能用于声明)
【讨论】:
以上是关于使用类的Java登录程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Windows 登录进行单点登录和桌面 Java 应用程序的 Active Directory 条目?