Informatică, întrebare adresată de andreistancu96, 8 ani în urmă

Salut ! Ma puteti ajuta si pe mine va rog la acesta problema ? lucrez la sololearn c# si am intampinat aceasta problema :
Protected Members


The program you are given takes an account number and its balance as input.
It defines Account class with 1 member balance and derives User class from it with 1 additional member - the account number, then creates a user object and tries to store the balance and account number in it, and shows the details. But something is wrong.
Fix the program so that it completes the User() constructor, which should assign the parameters to the corresponding members of the User class.
Also, check the access modifier of balance member of Account class.

Sample Input
005615216
1488.36

Sample Output
Account N: 005615216
Balance: 1488.36

Anexe:

Răspunsuri la întrebare

Răspuns de danielpetrupasc
0

Răspuns:

Codul are câteva probleme:

Clasa User este derivată din clasa Account, dar clasa Account nu are un constructor care să inițializeze proprietatea Balance. Asta înseamnă că atunci când o instanță a clasei User este creată, proprietatea Balance nu va fi inițializată și va avea valoarea sa implicită (0).

Clasa User nu inițializează proprietatea AccNumber în constructor. Asta înseamnă că atunci când o instanță a clasei User este creată, proprietatea AccNumber nu va fi inițializată și va avea valoarea sa implicită (null).

Metoda ShowDetails încearcă să afișeze valoarea proprietății Balance, dar proprietatea Balance nu este vizibilă clasei User deoarece este marcată ca private în clasa Account.

Pentru a rezolva aceste probleme, clasa Account poate fi actualizată pentru a avea un constructor care să inițializeze proprietatea Balance, iar clasa User poate fi actualizată pentru a inițializa proprietatea AccNumber în constructor și pentru a folosi proprietatea Balance din clasa de bază Account. De exemplu:

Copy code

class Account

{

   public double Balance { get; set; }

   public Account(double balance)

   {

       Balance = balance;

   }

}

class User : Account

{

   public string AccNumber { get; set; }

   public User(string accNumber, double balance) : base(balance)

   {

       AccNumber = accNumber;

   }

   public void ShowDetails()

   {

       Console.WriteLine("Account N: " + AccNumber);

       Console.WriteLine("Balance: " + Balance);

   }

}

Cu aceste schimbări, clasa User poate inițializa corect proprietățile AccNumber și Balance și poate accesa proprietatea Balance din clasa de bază Account.

Explicație:

Sper să te ajute!

Alte întrebări interesante