一、简介
本文是对于编程队友mxy同学的代码互评,本着互相学习,互相进步的想法,学习对方的代码,找出其中的优点,缺点也要提醒队友改正。
二、项目结构
先简单分析一下队友项目中的类以及功能。
项目中包括4个类(没有用上抽象类或者接口)
user类:
public class user { private String name; private String password; private String level;
优点:封装性:类使用私有属性和公共Getter/Setter方法,提供了良好的封装性,外部代码无法直接访问属性,从而增加了安全性和可维护性。
缺点:不包含注释:代码中没有注释,缺少文档说明类和方法的用途和行为。
data类:
import java.util.ArrayList; public class data { private ArrayList<user> userList=new ArrayList<>(); public data() { // TODO Auto-generated constructor stub user u1= new user("张三1", "123","小学"); user u2= new user("张三2", "123", "小学"); user u3= new user("张三3", "123", "小学"); user u4= new user("李四1", "123", "初中"); user u5= new user("李四2", "123", "初中"); user u6= new user("李四3", "123","初中"); user u7= new user("王五1", "123", "高中"); user u8= new user("王五2", "123", "高中"); user u9= new user("王五3", "123", "高中"); userList.add(u9); userList.add(u8); userList.add(u7); userList.add(u6); userList.add(u5); userList.add(u4); userList.add(u3); userList.add(u2); userList.add(u1); } public void Add_user(user user){ userList.add(user); } public user Checku(String name,String password){ int len=userList.size(); for(int i=0;i<len;i++){ user user=userList.get(i); if(name.equals(user.getName())&&password.equals(user.getPassword())){ return user; } } return null; } }
优点:
- 数据管理:该类有效地创建了一个用户列表
userList
来存储用户对象,并提供了添加用户的方法Add_user
和验证用户的方法Checku
。 - 初始数据填充:构造函数在创建对象时初始化了一些用户数据,这可以用于测试和演示目的。
- 遍历用户列表:使用循环遍历用户列表并验证用户,这是一种基本的查找操作,可以满足一般的用户管理需求。
- 使用了合适的数据结构:使用了 ArrayList 来存储用户对象,这是一个动态数组,适合存储和管理多个用户。
缺点和改进建议:
1.方法名 Add_user
和 Checku
首字母应该小写,符合 Java 命名约定。
此外number类代码量太大,不符合规定。
三、代码测试
问题似乎出现在 number.java
文件的第 335 行,即在 number.Check_repeat
方法中。具体问题是 java.lang.NullPointerException
,这意味着在这一行尝试访问了一个空对象,通常是一个未初始化的对象或者是没有被正确赋值的对象。
初中生和高中生也是一样的问题。
四、总结
通过这次互评,我不仅从其他同学的代码上学到了很多,也意识到自己在编码上的不足,获益良多!