| using System;
/// <summary>
/// A simple bank account created as an everyday example
/// for the OOP course. Used in particular for demonstrating inheritance.
/// </summary>
public class BankAccount {
private double interestRate;
private string owner;
private double balance;
/// <summary>
/// Construct a bank account from owner.
/// The interestRate is given the default value 0.0.
/// The balance is given the default value 0.0.
/// </summary>
/// <param name = "owner"> The owners name. A string.</param>
public BankAccount(string owner):
this(owner, 0.0, 0.0) {
}
/// <summary>
/// Construct a bank account from owner, balance, and interestRate.
/// The interestRate is given the default value 0.0.
/// </summary>
/// <param name = "owner"> The owners name </param>
/// <param name = "balance"> The initial amount of this account</param>
public BankAccount(string owner, double balance):
this(owner, balance, 0.0) {
}
/// <summary>
/// Construct a bank account from owner, balance, and interestRate.
/// </summary>
/// <param name = "owner"> The owners name </param>
/// <param name = "balance"> The initial amount of this account</param>
/// <param name = "interestRate">
/// The interest rate.
/// Annual interet is calculated as balance * interestRate
/// </param>
public BankAccount(string owner, double balance, double interestRate) {
this.interestRate = interestRate;
this.owner = owner;
this.balance = balance;
}
/// <summary>
/// Returns the current amount of the bank account
/// without affecting the account.
/// </summary>
/// <value> Accesses the amount of money in the account</value>
public double Balance {
get{
return balance;
}
}
/// <summary>
/// Return the interest rate of the account
/// </summary>
/// <value> Accesses the interest rate of the account </value>
public double InterestRate {
get{
return interestRate;
}
}
/// <summary>
/// Withdraw an amount of money from the account.
/// This decreases the balance of the account.
/// </summary>
/// <param name = "amount">
/// The amount of money to withdraw from the account.
/// Precondition: Must be non-negative.
/// </param>
public void Withdraw (double amount) {
balance -= amount;
}
/// <summary>
/// Withdraw an amount of money from the account.
/// This increases the balance of the account.
/// </summary>
/// <param name = "amount">
/// The amount of money to deposit to the account.
/// Precondition: Must be non-negative.
/// </param>
public void Deposit (double amount) {
balance += amount;
}
/// <summary>
/// Add the annual interest to the account.
/// This may increase the current balance of the account.
/// </summary>
public void AddInterests() {
balance = balance + balance * interestRate;
}
/// <summary>
/// Return a text string that represents this account
/// for output purposes
/// </summary>
public override string ToString() {
return owner + "'s account holds " +
+ balance + " kroner";
}
} |