麻烦老师看一下,这个问题怎么解决?
来源:1-13 编程练习
Michael_2020
2020-01-21 23:54:29
麻烦老师帮我看一下,我在User类里做了一个信息输出的方法,为什么是get不到参数呢
而用get的方法在主方法里输出就可以?我究竟是哪里出错了?
//User.java
public class User{
//定义属性用户名、密码
private String name;
private String key;
public User(){
}
public User(String name, String key){
this.setName(name);
this.setKey(key);
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getKey(){
return key;
}
public void setKey(String key){
this.key = key;
}
public void info(){
System.out.println("用户名:"+this.getName());
System.out.println("密码:"+this.getKey());
}
}
//UserManager.java
public class UserManager{
// 用户信息验证的方法
public String checkUser(User one, User two) {
// 判断用户名和密码是否为空,是否一致
String pr = null;
if(one.getName()!=null&&one.getKey()!=null&&two.getName()!=null&&two.getKey()!=null){
if(one.getName().equals(two.getName())&&one.getKey().equals(two.getKey())){
pr="用户名或密码一致";
}else{
pr="用户名或密码不一致";
}
}else{
pr = "用户名和密码为空";
}
return pr;
}
}
//Test.java
public class Test{
// 测试方法
public static void main(String[] args) {
//实例化对象,调用相关方法实现运行效果
User i = new User();
User u1=new User("Lucy","123456");
i.info();
// System.out.println("用户名:"+u1.getName());
// System.out.println("密码:"+u1.getKey());
User u2=new User("Mike","123456");
i.info();
// System.out.println("用户名:"+u2.getName());
// System.out.println("密码:"+u2.getKey());
System.out.println("==============");
UserManager um = new UserManager();
System.out.println(um.checkUser(u1,u2));
}
}
1回答
同学你好,通过无参构造创建的对象,没有为属性赋值,所以调用info()方法无法输出属性值。则建议同学通过带参构造创建的对象,并通过此对象调用info()方法。如下图所示:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题