【问题标题】:Password System Error [closed]密码系统错误[关闭]
【发布时间】:2016-01-30 03:25:04
【问题描述】:

嘿,我是 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);
    }
}

}

【问题讨论】:

  • “代码也有错误我无法弄清楚” - 错误是什么?

标签: java passwords


【解决方案1】:

以下是一些建议:

  1. 包名,你应该遵循一些标准(http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
  2. 其他约定(需要永远记住,打印出来并固定在你的桌子上,直到你得到它)(http://www.oracle.com/technetwork/java/codeconventions-135099.html)
  3. 为您的课程保留正确的范围,我建议您阅读 Java Object Orientation (Google It)
  4. 不要使用内部使用变量的公共静态变量,它不是常量,不应该在你的类之外使用(password 字段)
  5. 正确字段的正确访问器,例如,如果您有两个密码变量(一个是正确的密码,另一个是用户输入的密码),您必须使用 .equals (this.password.equals(password)) 比较它
  6. 您在测试代码时还会遇到其他一些逻辑问题。

希望对您有所帮助,欢迎使用 java。

【讨论】:

  • 非常感谢您的建议和帮助
【解决方案2】:

main方法中没有定义变量password。

我假设这 2 个类位于不同的文件中。

【讨论】:

  • 谢谢,我已经修好了,但现在我想弄清楚为什么密码仍然不起作用,而且它总是认为它不正确
  • 检查你的变量的范围.... 方法中的密码隐藏了类密码的字段。
【解决方案3】:
  1. 您必须输入名称。
  2. 创建对象并分配输入的名称。
  3. 调用方法GetPassword()不带参数。
  4. 使用equals()方法进行字符串比较: if (Password.equals(pass))
  5. 遵循 Cristiano Benato 的指示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    相关资源
    最近更新 更多