我对如何创建重载构造函数有点困惑。
下面是我的作业:
Include the following:
i) A default constructor and an overloaded constructor.
ii) Accessor and mutator methods for each attribute.
下面是我的伪代码。从我目前创建的内容来看,我假设 OVERLOADED 构造函数是一个具有参数的构造函数,但我对此并不确定。
public class Employee
// declarations
private employeeid : integer
private employeesalary : integer
public Employee ()
employeeid = 0
employeesalary = 0
return
public Employee (id : integer, salary : integer)
employeeid = id
employeesalary = salary
return
public num getemployeeid ( )
return employeeid
public num getemployeesalary ( )
return employeesalary
public String getnumberofaccidents ( )
return numberofaccidents
public void setCustomeraget(integer id)
employeeid = id
return
public void setEmployeesalary (integer salary)
employeesalary = salary
return
End Class
例子:
public policy holder (nr : num, age : num, nracct : num)
set policynumber (nr : num)
set customerage (age : num)
set NumberAccident (nrAcct)
最佳答案
正是出于这个原因,我一直讨厌 在类设置中 的 psudocode。你写了多少?我可以省略什么,或者换句话说,我们在这里认为什么是理所当然的?
至于重载函数,看起来你理解得很好。
这是不带任何参数的默认构造函数:
public Employee ()
这是你的另一个构造函数,它确实接受参数。
public Employee (id : integer, salary : integer)
因此,要回答您原来的问题,您是对的。重载的构造函数只是具有多个采用不同参数的构造函数。在您的情况下,我可以通过两种不同的方式调用构造函数来创建类:
Employee myEmployee = new Employee();
或
Employee myEmployee = new Employee(12, 64500);
用程序员的话说,你有一个重载的构造函数。
至于代码的其余部分:
你做错的一件事是你没有申报“numberofaccidents”。像这样:
private employeeid : integer
private employeesalary : integer
private numberofaccidents : integer
将访问器和修改器视为“ getter ”和“ setter ”。不过,您可能希望将“setCustomeraget”更改为“setCustomerId”。此外,没有“setnumberofaccidents”。尝试将你的 getter 和 setter 配对,这样你就可以随时知道是否缺少一个。像这样:
public num getSalary()
return employeesalary
public void setSalary(integer salary)
employeesalary = salary
关于constructor - 创建适当的重载构造函数伪代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103432/