一个公司(Company)包含若干员工(Worker),员工每月领取工资,公司能够计算每个月付给员工的工资总和,两个类具体说明如下: (1) Worker类 a) 一个私有的name属性存放员工的姓名; b) 一个私有的sal属性存放员工的工资; c) 一个公有的不带参数的构造方法; d) 一个共有的带参数的构造方法; e) name和sal属性的set方法和get方法; f) 一个公有的toString()方法,返回员工的姓名和工资,格式参考如下: 45.png (2) Company类 a) 一个私有的name属性存放公司的名称; b) 一个私有的ArrayList<Worker>类型的workers属性存放公司员工; c) 一个无参的和一个有参的构造方法; d) 两个属性的set和get方法; e) 一个公有的添加员工的方法addWorker( ); f) 一个公有的earnings()方法,用于计算所有员工每个月的总工资; g) 一个公有的toString()方法,用于返回公司所有员工的姓名和工资信息,
时间: 2024-02-22 21:55:33 浏览: 53
好的,这是一个经典的面向对象设计问题,下面是Worker类和Company类的具体实现:
Worker类实现:
```java
public class Worker {
private String name;
private double sal;
public Worker() {
this.name = "";
this.sal = 0.0;
}
public Worker(String name, double sal) {
this.name = name;
this.sal = sal;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public String toString() {
return "姓名:" + name + ",工资:" + sal;
}
}
```
Company类实现:
```java
import java.util.ArrayList;
public class Company {
private String name;
private ArrayList<Worker> workers;
public Company() {
this.name = "";
this.workers = new ArrayList<>();
}
public Company(String name, ArrayList<Worker> workers) {
this.name = name;
this.workers = workers;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Worker> getWorkers() {
return workers;
}
public void setWorkers(ArrayList<Worker> workers) {
this.workers = workers;
}
public void addWorker(Worker worker) {
workers.add(worker);
}
public double earnings() {
double total = 0.0;
for (Worker worker : workers) {
total += worker.getSal();
}
return total;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("公司名称:" + name + "\n");
sb.append("公司员工:\n");
for (Worker worker : workers) {
sb.append(worker.toString() + "\n");
}
sb.append("总工资:" + earnings());
return sb.toString();
}
}
```
这样,您就可以通过创建Worker和Company对象,来实现员工工资的计算和总和的计算了。
阅读全文