关于#java#的问题,请各位专家解答!

 public static void main(String[] args) {
        User user = new User();
        user.setName("admin");
        user.setPassword("123");
        user.signIn();
    }

//为什么这个方法里的this.name和this.passwordnull,在main方法里不是定义了吗?
public class User {
    private String name;
    private String password;
    public void signIn(){
        String okPassword = this.password;
        for (int i = 0; i < 3; i++) {
            System.out.print("请输入账号:");
            name = scanner.next();
            System.out.print("请输入密码:");
            password = scanner.next();
            if (name.equals(this.name) && password.equals(this.name)) {
                System.out.println("登录成功!");
                break;
            }
            else
                System.out.println("登录失败!");
        }
    }
}

setName和setPassword方法的代码呢,放出来看看
你是不是根本没有把形参赋值给成员变量

你是这个写错了吧,而且下边直接对name赋值的啊,要么name,password在下边接收的时候就重新声明下

img

img

 System.out.print("请输入账号:");
            String nameInput = scanner.next();
            System.out.print("请输入密码:");
            String passwordInput = scanner.next();
然后再拿nameInput  跟this.name比较

name.equals(this.name) && password.equals(this.name)
后面写错了啊, 密码怎么也判断等于名称呢?应该是this.password啊

 public static void main(String[] args) {
        User user = new User();
        user.setName("admin");
        user.setPassword("123");
        user.signIn();
    }
 
//为什么这个方法里的this.name和this.passwordnull,在main方法里不是定义了吗?
public class User {
    private String name;
    private String password;
    public void signIn(){
        String n = new String;
        String p = new String;
        for (int i = 0; i < 3; i++) {
            System.out.print("请输入账号:");
            n= scanner.next();
            System.out.print("请输入密码:");
            p= scanner.next();
            if (n.equals(this.name) && n.equals(this.password)) {
                System.out.println("登录成功!");
                break;
            }
            else
                System.out.println("登录失败!");
        }
    }
}