请老师帮忙看看还有什么需要改进的(运行没问题)具体提问在下方
package com.lxb.test; public class User { private String namep; private String name; private int password; private int passwordp; public int getPasswordp() { return passwordp; } public void setPasswordp(int passwordp) { this.passwordp = passwordp; } public String getNamep() { return namep; } public void setNamep(String namep) { this.namep = namep; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPassword() { return password; } public void setPassword(int password) { this.password = password; } public static void main(String[] args) { // TODO Auto-generated method stub } } //////////////////////////////////////////////////////////////////////////////////////////// package com.lxb.test; public class UserTest { public static void main(String[] args) { User userl=new User(); userl.setName("Lucy"); userl.setPassword(123456); User userlp=new User(); userlp.setPasswordp(23456); userlp.setNamep("Lucy"); if(userl.getName().equals(userlp.getNamep())&userl.getPassword()==userlp.getPasswordp()) { System.out.println("用户名:"+userl.getName()); System.out.println("密码:"+userl.getPassword()); }else {System.out.println("用户名和密码错误"); } ///////////////////////////////////////////////////// User userm=new User(); userm.setName("Mike"); userm.setPassword(123456); User usermp=new User(); usermp.setPasswordp(123456); usermp.setNamep("Mike"); if(userm.getName().equals(usermp.getNamep())&(userm.getPassword()==usermp.getPasswordp())) { System.out.println("用户名:"+userm.getName()); System.out.println("密码:"+userm.getPassword()); }else {System.out.println("用户名和密码错误"); } UserManager um=new UserManager(); um.show(userl,userm); } } //////////////////////////////////////////////////////////////////////////////////////////// package com.lxb.test; public class UserManager { public void show(User userl,User userm) { userl.getName(); userl.getPassword(); System.out.println("---------------------"); userm.getName(); userm.getPassword(); } public static void main(String[] args) { } }
问题1: 在.equals方法的使用是否正确。
问题2:对照的用户名和密码可不可以不设为私有,因为我想不设为私有,却报错。
问题3:有没有逻辑错误,或需要优化的地方
辛苦老师啦~~~~~
正在回答 回答被采纳积分+1
同学你好,
1、在上述的代码中含有setName()方法哦~具体如下:
2、同学的思路有些偏差,对于两个user对象进行判断,应该通过创建两个user对象,通过构造方法进行为对应的user对象属性赋值,然后通过创建用户管理类对象,调用用户信息验证的方法show()方法,并传入刚刚赋值好的两个user对象,在show()方法中通过getName()方法获取两个对象对应的name值,进行比较姓名是否相等,同理通过getPassword()方法获取两个对象对应的password值,进行比较密码是否相等。
判断的代码在上述代码中已经给出来了,并没有用其他代码替代哦~具体如下:
建议同学可以将《Java封装》1-2和1-3小节重新看一下,对于你对练习的理解有很大帮助。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
同学,你好!
1、.equals()方法使用的是正确的。
2、用户名和密码一定要设为私有的哦!因为Java的封装性的作用就是,提高代码的安全性,防止该类的成员属性直接被外部类代码随机访问。
3、程序完成得很好,但是还可以进行代码优化,具体如下:
注意代码的规范性,命名规则,当方法或变量名由一个单词组成时,则该单词均小写。当由多个单词组成时,第一个单词所有字母均小写,从第二个单词开始,每个单词的首字母大写。如:namep应改为:nameP
User类不需要定义两个name和password属性,每个User对象应该含有一个name和password属性。
根据题目要求,User类中应该编写有参构造函数实现对属性赋值
根据题目要求,用户信息验证的方法应该编写在UserManager类中
Test类中,main方法中直接实例化对象两个User对象,然后输出属性信息,然后创建UserManager对象,调用用户信息验证的方法并传入两个User对象,进行判断两个用户信息是否一致就可以了。
建议在进行判断判断两个用户信息是否一致时,将&改成&&,可以提高代码执行效率。
代码修改后如下:
User
public class User { private String name; private int password; public User(String name, int password) { this.name = name; this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPassword() { return password; } public void setPassword(int password) { this.password = password; } }
UserManager:
public class UserManager { public void show(User user1, User user2) { if (user1.getName().equals(user2.getName()) && user1.getPassword() == user2.getPassword()) { System.out.println("用户名和密码一致"); } else { System.out.println("用户名或密码不一致"); } } }
UserTest:
public class UserTest { public static void main(String[] args) { User u1 = new User("Lucy", 123456); User u2 = new User("Mike", 123456); System.out.println("用户名:" + u1.getName()); System.out.println("密码" + u1.getPassword()); System.out.println("用户名:" + u2.getName()); System.out.println("密码:" + u2.getPassword()); System.out.println("======================"); UserManager um = new UserManager(); um.show(u1, u2); } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星