一道java题,有关于ArrayList,不知道如何实现程序

题目要求和UML图

img


目标运行结果,输入和结果两条线不用写入代码。

img

还有就是用泛型类时需要用如下格式


private ArrayList<Worker> workers = new ArrayList<Worker>();

我的输出格式应该是对的,主要是不知道ArrayList怎么用和earings()如何实现计算工资总和。

我的错误代码

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; 

public class TestCompanyWorker {

    public static void main(String[] args){

        Scanner scanner = new Scanner(System.in);

        Worker worker1 = new Worker(scanner.next(), scanner.nextDouble());

        Worker worker2 = new Worker(scanner.next(), scanner.nextDouble());

        Worker worker3 = new Worker(scanner.next(), scanner.nextDouble());

        Company company = new Company();
        
        List<Worker> list = new ArrayList<Worker>();
        
        list.add(worker1);
        
        list.add(worker2);
        
        list.add(worker3);
        
        System.out.println("姓名\t\t" + "工资");

        System.out.println("-------------------------");

        System.out.println(company.toString());

         company.toString();

    }
}
class Worker{
    private String name;
    private double sal;
    public Worker(){
    }
    public Worker(String name,double sal){
        this.name=name;
        this.sal=sal;
    }
        public void setName(String name){
            this.name=name;
        }
        String getName(){
            return name;
        }
        public void setSal(double sal){
            this.sal=sal;
        }
        double getSal(){
            return sal;
        }
        public String toString(){
            return name+"\n"+sal+"\n";
        }
}
class Company<worker>{
    private String name;
    private ArrayList<worker> workers;
    private Worker woker;
    Company(){
    }
    Company(String name){
        this.name=name;
    }
    public void setName(String name){
        this.name=name;
    }
    String getName(){
        return name;
    }
    public void setWorkers(ArrayList<Worker> workers){
        this.workers=(ArrayList<worker>) workers;
    }
    ArrayList<Worker> getWorkers(){
        return (ArrayList<Worker>) workers;
    }
    public void addWoker(Worker woker){
        this.woker=woker;
    }
    public double earnings(){
        return ;
    }
    public String toString(){
        return "\n"+"工资合计 "+earnings();
    }
}

earning是company类中的一个计算工资的方法。
company类中包含了多个员工信息,存储在List集合中。
计算工资只需要遍历集合拿到每个员工对象,通过对象获取员工的工资求和。


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; 
 
public class TestCompanyWorker {
 
    public static void main(String[] args){
 
        Scanner scanner = new Scanner(System.in);
 
        Worker worker1 = new Worker(scanner.next(), scanner.nextDouble());
 
        Worker worker2 = new Worker(scanner.next(), scanner.nextDouble());
 
        Worker worker3 = new Worker(scanner.next(), scanner.nextDouble());
 
        Company company = new Company();
        
        List<Worker> list = new ArrayList<Worker>();
        
        list.add(worker1);
        
        list.add(worker2);
        
        list.add(worker3);
        
        System.out.println("姓名\t\t" + "工资");
 
        System.out.println("-------------------------");
 
        System.out.println(company.toString());
 
         company.toString();
 
    }
}
class Worker{
    private String name;
    private double sal;
    public Worker(){
    }
    public Worker(String name,double sal){
        this.name=name;
        this.sal=sal;
    }
        public void setName(String name){
            this.name=name;
        }
        String getName(){
            return name;
        }
        public void setSal(double sal){
            this.sal=sal;
        }
        double getSal(){
            return sal;
        }
        public String toString(){
            return name+"\n"+sal+"\n";
        }
}
class Company<worker>{
    private String name;
    private ArrayList<worker> workers;
    private Worker woker;
    Company(){
    }
    Company(String name){
        this.name=name;
    }
    public void setName(String name){
        this.name=name;
    }
    String getName(){
        return name;
    }
    public void setWorkers(ArrayList<Worker> workers){
        this.workers=(ArrayList<worker>) workers;
    }
    ArrayList<Worker> getWorkers(){
        return (ArrayList<Worker>) workers;
    }
    public void addWoker(Worker woker){
        this.woker=woker;
    }
    public double earnings(){
       double sum=0.0;
       for(int i=0;i<workers.size();i++){
         sum+=workers.get(i).getSal();
        }
        return sum;
    }
    public String toString(){
        return "\n"+"工资合计 "+earnings();
    }
}

for一下workers 然后累加sal

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632