You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java类继承与验证问题求助:实习生类实现及文件输出

Java 练习问题解决方案

一、修正Employee类的小错误

你写的Employee类里setIdEmployee方法存在参数赋值错误,参数名和赋值变量不匹配会导致ID无法正确设置,修正后的代码如下:

public class Employee {
    int idEmployee;
    String category;
    int salary;

    public Employee() {}

    public int getIdEmployee() {
        return idEmployee;
    }

    public void setIdEmployee(int idEmployee) {
        this.idEmployee = idEmployee;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }
}

二、实现Intern类(继承+薪资验证)

用extends关键字实现继承,定义不可修改的薪资上限常量,重写setSalary方法做验证,两种实现方式供你选择:

方式1:超过上限抛出异常

public class Intern extends Employee {
    // 定义实习生薪资上限常量
    public static final int SALARY_CAP = 20000;

    public Intern() {}

    @Override
    public void setSalary(int salary) {
        if (salary > SALARY_CAP) {
            throw new IllegalArgumentException("实习生薪资不能超过" + SALARY_CAP);
        }
        super.setSalary(salary);
    }
}

方式2:超过上限自动设为最大值

public class Intern extends Employee {
    public static final int SALARY_CAP = 20000;

    public Intern() {}

    @Override
    public void setSalary(int salary) {
        // 取输入值和上限的较小值作为最终薪资
        int validSalary = Math.min(salary, SALARY_CAP);
        super.setSalary(validSalary);
    }
}

三、创建10个对象并写入文件

用循环批量创建Employee对象,通过BufferedWriter写入文件,用try-with-resources语法自动关闭IO资源:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        // try-with-resources会自动关闭流,避免资源泄漏
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("employees.txt"))) {
            // 写入表头
            writer.write("员工ID,岗位,薪资");
            writer.newLine();

            // 创建10个Employee对象并写入文件
            for (int i = 1; i <= 10; i++) {
                Employee emp = new Employee();
                emp.setIdEmployee(i);
                emp.setCategory("正式员工" + i);
                emp.setSalary(30000 + i * 1000);

                // 拼接属性为一行文本
                String line = emp.getIdEmployee() + "," + emp.getCategory() + "," + emp.getSalary();
                writer.write(line);
                writer.newLine();
            }

            System.out.println("文件写入完成");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

内容的提问来源于stack exchange,提问作者kesp34

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:50:50