老师麻烦看看我这样写的对不对?
来源:1-13 编程练习
Mavericky
2019-04-21 15:42:01
public class Test{
// 测试方法
public static void main(String[] args) {
//实例化对象,调用相关方法实现运行效果
User user1=new User("Lucy",123456);
User user2=new User("Mike",123456);
UserManager usermanger=new UserManager();
System.out.println("=============");
usermanager.checkUser(user1,user2);
}
}
public class User{
//定义属性用户名、密码
private String name;
private int password;
public User(String name,int password){
this.setname(name);
this.setpassword(password);
System.out.println("用户名:"+name);
System.out.println("密码:"+password);
}
public String getname(){
return name;
}
public String setname(String name){
this.name=name;
}
public int getpassword(){
return password;
}
public int setpassword(int password){
this.password=password;
}
}
public class UserManager{
// 用户信息验证的方法
public String checkUser(User one, User two) {
// 判断用户名是否为空,是否一致
if(one.getname.equals(null)||two.getname.equals(null)){
System.out.println("用户名不能为空");
}
else{
if(one.getname.equals(two.getname)){
System.out.println("用户名一致");
}
else{
System.out.println("用户名不一致");
}
}
// 判断密码是否为空,是否一致
if(one.getpassword.equals(null)||two.getname.equals(null)){
System.out.println("密码不能为空");
}
else{
if(one.getpassword.equals(two.getword)){
System.out.println("密码一致");
}
else{System.out.println("密码不一致");}
}
}
}
1回答
好帮手慕阿莹
2019-04-21
1、建议同学再eclipse中验证一下代码呦,因为eclipse中可以检查出编译错误:
user类:
1)分号要是英文状态下的,同学有两个写成中文状态下的了
2)set方法不需要写返回值,所以都应该把返回值类型改成void
3)命名不规范,根据驼峰命名法,setname()应该改成setName(),其他的setget方法同理。
UserManager类:
1)报错的地方,这里都是调用的对象中的get方法,调用方法时,后边都需要有小括号
2)都加上括号后,密码这里仍旧报错是因为,密码是int类型,是基本类型,不能使用equals方法,只能使用==,并且不能与null进行比较。int类型不会为null的;因为同学写的密码是int类型这里不用判断密码是null,否则调用的就会报错。
没有getword()方法呦,只有getpassword方法()
所以这个方法可以去掉(同学后边也写错了判断用户名是否为空了,而不是密码):
3)如果同学用输出语句的方法,就不要写返回值了,如果写返回值,可以参考一下这个问答下老师回答的内容:
http://class.imooc.com/course/qadetail/109836
Test中,对象调用时,对象名拼写错误,建议修改一下
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题