2014-09-14 3 views
-4

내에서 생성자 호출 (전적으로 단지 부분을 이해하기 위해 사투를 벌인거야)나는 다음과 같은 지침에 할당 일하고 생성자

는 두 개의 생성자를 포함합니다. 첫 번째 인수는 인수를 사용하지 않고 savingsBalance 변수를 0으로 설정하고 0 및 빈 문자열을 갖는 두 번째 (즉 두 개의 인수) 생성자를 호출하여 savingsAccountName을 빈 문자열로 설정합니다. 두 번째 생성자는 하나의 double 인수 (savingsBalance)와 하나의 문자열 인수 (savingsAccountName)를 취하고 각각 setSavingsBalance 메서드 및 setsavingsAccountName 메서드를 호출하여 savingsBalance를 설정합니다.

이것은 지금까지 가지고있는 것이지만 제대로 작동하지 않으므로 완전히 누락되었습니다. 아무도 도움을 줄 수 있고 내가 어디로 잘못 가고 있는지 말해 줄 수 있습니까?

public SavingsAccount() 
    { 
     savingsBalance = 0; 
     SavingsAccount baseAccount = new SavingsAccount(0, ""); 
    } 

    public SavingsAccount(double balance, string name) 
    { 
     balance = getSavingsBalance(); 
     name = getSavingsAccountName(); 
    } 
+0

두 값을 전달하여 생성자에서 덮어 쓰는 것은 전혀 의미가 없습니다. –

+1

흠. 강사에게 재무 계산을 위해 단정도/배정도 부동 소수점 데이터 유형을 사용하는 것이 명백히 잘못된 것이라고 제안해야한다고 생각합니다. 소수점은 올바른 선택입니다. – spender

답변

1

this 키워드를 사용합니다.

public SavingsAccount():this(0,"") 
    { 

    } 

    public SavingsAccount(double balance, string name) 
    { 
     this.balance = balance; 
     this.name = name; 
    } 
+0

이것은 정확하게 그것이 정말로 감사했다! 이 "함수"를 완전히 이해하기 위해 좀 더 연구해야하지만 이전 코드가 매개 변수를 무시하고 자체 매개 변수를 설정하는 방법을 알 수 있습니다. 어쨌든, 당신의 도움에 다시 한번 감사드립니다! – user3533863

0

당신은 기본적으로 서로 하나의 생성자를 호출하는 cascade constructors해야합니다.

public SavingsAccount() : this(0 , "") 
{ 
} 

은 물론 다른 생성자에서 클래스 레벨의 필드를 설정해야합니다

public SavingsAccount(double balance, string name) 
{ 
    this.balance = balance; 
    this.name = name; 
} 
1

클래스의 필드 또는 속성을 설정하지 않습니다. 생성자에 전달 된 인수 값을 변경하는 중입니다.

public SavingsAccount(double balance, string name) 
{ 
    this.savingsBalance = balance; 
    this.name = name; 
} 

그럼 당신은 생성자의 첫 번째 작업 인 경우 다른 단지에서 하나의 생성자를 호출 할 수 있습니다

public SavingsAccount(): this(0 , "") 
{ } 
0

매개 변수가없는 생성자에서 호출 할 수 있습니다. 이것은 메소드 시그니처를 호출하여 시행됩니다.

public SomeConstructor():this("foo"){ 
} 
public SomeConstructor(string someParam){ 
} 
관련 문제