2016-01-30 78 views
-3

嘿,我是一个新的java程序员,并尝试制作密码系统。我希望有人查看代码并给我一些建议。该代码也有一个错误,我不能弄清楚,所以我需要有人告诉我我的错误详细,所以我不会再犯这个错误。谢谢!密码系统错误

package Main; 

import java.util.Scanner; 

public class ProgramRunner { 

public static void main(String [] args){ 
    Scanner imput = new Scanner(System.in); 

    umNoName lol = new umNoName(); 

    //password 
    String password = "pass"; 
    lol.GetPassword(password); 
} 

} 



package Main; 

import java.util.Scanner; 

public class umNoName { 

public static String password = "pass"; 
public String Name; 

public void simpleMessage(String Name){ 
    System.out.println("Hello " + Name); 
} 

public void GetPassword(String password){ 
    Scanner imput = new Scanner(System.in); 
    System.out.println("Password: "); 
    String Password = imput.nextLine(); 
    if(Password == password){ 
     simpleMessage(Name); 
    }else{ 
     System.out.print("Password is incorrect!"); 
     System.exit(0); 
    } 
} 

}

+0

“该代码也有一个错误,我无法弄清楚” - 什么是错误? – scottysmalls

回答

1

下面是一些建议:

  1. 包名称,ü应该遵循一些标准(http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
  2. 其他约定(需要总是被记住的,它和针打印到你的办公桌直到你得到它) (http://www.oracle.com/technetwork/java/codeconventions-135099.html
  3. 保持正确的范围内为您的课,我建议ü承担Java的面向对象的读取(谷歌它)
  4. 不要使用内部使用的变量的公共静态的,这是不是一个常数,不应该在你的c之外使用如果你有两个密码变量(一个是正确的密码,另一个是用户输入的密码),你必须使用.equals()来比较密码变量(password字段)
  5. this.password.equals(password)
  6. 总之,测试代码时会遇到一些其他的逻辑问题。

希望对java有帮助和欢迎。

+0

非常感谢您的建议和帮助 – furProgrammer

0

在主方法没有定义的变量的密码。

我假设2个类在单独的文件中。

+0

谢谢,我修好了,但现在我想弄清楚为什么密码仍然不起作用,它总是把它作为不正确 – furProgrammer

+0

检查变量的范围....方法中的密码隐藏字段班级密码。 –

0
  1. 您必须输入一个名称。
  2. 创建对象并分配输入的名称。
  3. 调用方法GetPassword()不带参数。
  4. 请使用equals()方法的字符串比较: if (Password.equals(pass))
  5. 按照克里斯蒂亚诺Benato的指令。