请老师帮忙看看还有什么需要改进的(运行没问题)具体提问在下方
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 星