Написать базовый абстрактный класс который содержит универсальные поля для банковского счета и конструктор - C#

Узнай цену своей работы

Формулировка задачи:

Научиться использовать наследование и организацию структур . 1. Написать базовый абстрактный класс который содержит универсальные поля для банковского счета и конструктор (FIO, Balance). Методы (virtual) Credit, Debit Display. ChangeName – не изменяемый 2. Определить производный класс и добавить SavingsAccount. Добавить поле к классу назвать SavingsAccount. 3. Добавьте следующие методы в класс назвать SavingsAccount. Эти методы переопределения виртуальных методов, наследуемых из базового класса.
public abstract class Account 
{
private string name;        // Only accessible in base class
protected double balance;
public Account(string nm, double bal)
{
   this.name = nm;
   this.balance = bal;
}
public virtual void Credit(double amount)
{
   this.balance += amount;
}
 
public virtual void Debit(double amount)
{
    this.balance -= amount;
}
public virtual void Display()
{
    Console.WriteLine("Name={0}, balance={1}", this.name, this.balance);
}   
public void ChangeName(string newName)
{
    this.name = newName;
}
public abstract double CalculateBankCharge();
}
public class SavingsAccount : Account
{
    private double minBalance;   // If the balance drops below minBalance, the bank will charge a fee on the account
    public SavingsAccount(string nm, double bal, double min)  : base(nm, bal)           // Call base-class constructor first
{
    minBalance = min;
}
public override void Debit(double amount)
{
    if (amount <= balance)    // Use balance, inherited from base class
        base.Debit(amount);    // Call Debit, inherited from base class 
}
public override void Display()
{
     base.Display();          // Call Display, inherited from base class
     Console.WriteLine("$5 charge if balance goes below ${0}", minBalance);
 
}
public override double CalculateBankCharge()
{
    (balance < minBalance) ? return 5.00 :  return 0.00;
 
}
}
Public void Main()
{
    SavingsAccount sa = new SavingsAccount("Freda Smith", 100.00, 25);
sa.Display();
sa.Credit(100);
sa.Debit(180);
sa.ChangeName("Freda Jones");
sa.Display();
Console.WriteLine("Bank charge: ${0}",  sa.CalculateBankCharge());
}
Можете пояснить строчки кода?)

Решение задачи: «Написать базовый абстрактный класс который содержит универсальные поля для банковского счета и конструктор»

textual
Листинг программы
public abstract class Account 
{
private string name;        // скрытое поле, из-за модификатора доступа.Обозначает какое-то имя
protected double balance;//число, которое хранит какой-то баланс
public Account(string nm, double bal)//конструктор. принимает имя и число для баланса
{
   this.name = nm;
   this.balance = bal;
}
public virtual void Credit(double amount)//метод который принимает число и приплюсовывает к текущему балансу
{
   this.balance += amount;
}
 
public virtual void Debit(double amount)//метод который из текущего баланса отнимает значение
{
    this.balance -= amount;
}
public virtual void Display()//собственно отображение на экране имя и баланса
{
    Console.WriteLine("Name={0}, balance={1}", this.name, this.balance);
}   
public void ChangeName(string newName)//метод который изменяет имя чего-то там...
{
    this.name = newName;
}
public abstract double CalculateBankCharge();//какой-то метод, который должен переопределится у наследников. Ничего не принимает, возвращает очевидно сумму балансов
}
public class SavingsAccount : Account//создается класс, который наследуется от Account
{
    private double minBalance;   // If the balance drops below minBalance, the bank will charge a fee on the account//тут все понятно
    public SavingsAccount(string nm, double bal, double min)  : base(nm, bal)           // Call base-class constructor first//тут тоже все понятно
{
    minBalance = min;
}
public override void Debit(double amount)//данный метод принимает число.Если это число меньше чем баланс в базовом классе, то вызвать дебет базового класса
{
    if (amount <= balance)    // Use balance, inherited from base class
        base.Debit(amount);    // Call Debit, inherited from base class 
}
public override void Display()//переопределенный метод, вызывает функцию отображения, и печатает что-то там... дополнительно
{
     base.Display();          // Call Display, inherited from base class
     Console.WriteLine("$5 charge if balance goes below ${0}", minBalance);
 
}
public override double CalculateBankCharge()//переопределенный метод от абстрактного метода класса родителя
{
    (balance < minBalance) ? return 5.00 :  return 0.00;//если баланс меньше минимального баланса, то получается что-то типа не сгораемой суммы в 5 единиц
 
}
}
Public void Main()// и тут вызов...
{
    SavingsAccount sa = new SavingsAccount("Freda Smith", 100.00, 25);
sa.Display();
sa.Credit(100);
sa.Debit(180);
sa.ChangeName("Freda Jones");
sa.Display();
Console.WriteLine("Bank charge: ${0}",  sa.CalculateBankCharge());
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5
Похожие ответы