HNU个人项目互评

发布时间 2023-09-20 21:59:19作者: HNU-软件2101-鄢逾恒

一、简介
本文是对于编程队友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;

    }
}

优点:

  1. 数据管理:该类有效地创建了一个用户列表 userList 来存储用户对象,并提供了添加用户的方法 Add_user 和验证用户的方法 Checku
  2. 初始数据填充:构造函数在创建对象时初始化了一些用户数据,这可以用于测试和演示目的。
  3. 遍历用户列表:使用循环遍历用户列表并验证用户,这是一种基本的查找操作,可以满足一般的用户管理需求。
  4. 使用了合适的数据结构:使用了 ArrayList 来存储用户对象,这是一个动态数组,适合存储和管理多个用户。

缺点和改进建议:

1.方法名 Add_userChecku 首字母应该小写,符合 Java 命名约定。

此外number类代码量太大,不符合规定。

三、代码测试

问题似乎出现在 number.java 文件的第 335 行,即在 number.Check_repeat 方法中。具体问题是 java.lang.NullPointerException,这意味着在这一行尝试访问了一个空对象,通常是一个未初始化的对象或者是没有被正确赋值的对象。

初中生和高中生也是一样的问题。

 

四、总结

通过这次互评,我不仅从其他同学的代码上学到了很多,也意识到自己在编码上的不足,获益良多!