请老师帮忙看看还有什么需要改进的(运行没问题)具体提问在下方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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积分~
来为老师/同学的回答评分吧