调用构造函数中的构造函数
本文关键字:构造函数 调用 | 更新日期: 2023-09-27 18:21:45
我正在按照以下说明进行作业(并非全部,只是我难以理解的部分):
包括两个构造函数。第一个不带参数,将savingsBalance变量设置为零,并通过用0和空字符串调用第二个(即两个参数)构造函数将savingsAccountName设置为空字符串。第二个构造函数采用一个双参数(savingsBalance)和一个字符串参数(savingsAccountName),并通过分别调用setSavingsBalancemethod和setsavingsAccountName method来设置savingsBalance。
这就是我到目前为止所拥有的,但它不能正常工作,所以我确信我完全错过了它。有人能提供任何帮助并告诉我哪里出了问题吗?
public SavingsAccount()
{
savingsBalance = 0;
SavingsAccount baseAccount = new SavingsAccount(0, "");
}
public SavingsAccount(double balance, string name)
{
balance = getSavingsBalance();
name = getSavingsAccountName();
}
使用this
关键字。
public SavingsAccount():this(0,"")
{
}
public SavingsAccount(double balance, string name)
{
this.balance = balance;
this.name = name;
}
您没有设置类的字段或属性。您只是在更改传递给构造函数的参数的值。
public SavingsAccount(double balance, string name)
{
this.savingsBalance = balance;
this.name = name;
}
然后您可以从无参数构造函数调用它
public SavingsAccount(): this(0 , "")
{ }
您基本上需要cascade constructors
从另一个构造函数调用一个构造函数。
public SavingsAccount() : this(0 , "")
{
}
当然,您需要从其他构造函数设置类级别字段:
public SavingsAccount(double balance, string name)
{
this.balance = balance;
this.name = name;
}
只有在构造函数中的第一个操作时,才能从另一个构造函数调用一个构造函数。这是通过在方法签名中进行调用来实现的。
public SomeConstructor():this("foo"){
}
public SomeConstructor(string someParam){
}