【问题标题】:Setters on objects Java [closed]对象Java的设置器[关闭]
【发布时间】:2021-02-04 13:28:42
【问题描述】:

您好,我对对象的 setter 方法有点困难。

public class Company {
    private  String companyName;
    public static int numberOfEmployees;
    public Employees employees[];

    public void setEmployees( String name, String heritage, String [] programmingLanguages, Salary d) {
      
        Employees employee1  = new Programmer(name, heritage,programmingLanguages, d,d.getBasicBrutoSalary());
        employees[numberOfEmployees] = employee1;
        numberOfEmployees++;

    }

所以基本上这是在“公司类”中定义的方法,同时制作一个使用参数制作“程序员”的员工对象。

但这不是交易,我想做的是通过调用这个setter方法,自动创建一个对象。所以每次使用它时,都会增加它要创建的对象的名称。

因此,例如,第一次使用它时,它会创建一个名为 Employee1 的对象并将其存储在 Employee[0] 中。第二次我希望它将 Employee2 存储到 Employee[1] 中。

也许我让这种方式太难了,但我只是在尝试,似乎无法找到一种方法来完成这项工作。

【问题讨论】:

  • 撇开setEmployees 是一个不好的名字,因为它添加 一个员工并且Employees 不应该是复数,我不确定你的问题是。
  • 我建议使用 ArrayList 代替,这样的情况更容易。也不要命名像 setEmployees 这样的方法,因为 getX/setX 方法用于获取和设置属性,最好将其命名为 addEmployee
  • 当您说“...增加对象的名称...”时,您指的是参数 (String name) 还是变量 (employee1)?

标签: java object methods increment setter


【解决方案1】:

我认为Programmer 对象是Employees 的子类,否则它将不起作用。或多或少应该如下所示:

public class Company {
private  String companyName;
public static int numberOfEmployees;
public static Employees employees[];

public void setEmployees( String name, String heritage, String [] programmingLanguages, Salary d) {
    numberOfEmployees++;
    employees[numberOfEmployees] = new Programmer(name, heritage,programmingLanguages, d,d.getBasicBrutoSalary());;
}

【讨论】:

  • 这正是我所需要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 2020-02-17
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 2012-05-19
相关资源
最近更新 更多