Sunteți pe pagina 1din 2

Randul 2 1.

a) Deoarece nu s-a specificat niciun modificator de acces pentru campurile lungime si latime din clasa Dreptunghi, acestea sunt implicit private. Astfel, vrand sa accesam aceste campuri din clasa derivata, Patrat, va rezulta o eroare. O rezolvare rapida ar fi: protected int lungime, latime; O alta exceptie va apare la linia: ((Patrat)dr).CalculRazaCercInscris(); Un obiect din clasa de baza nu poate fi convertit intr-un obiect dintr`o clasa derivata. In schimb, invers, obiectul din clasa derivata poate fi convertit la un obiect din clasa de baza. 1.b) In clasa Dreptunghi adaugam urmatoarele: public int Lungime { get { return lungime; } set { lungime = value; } } public int Latime { get { return latime; } set { latime = value; } } iar in clasa Patrat: public int Latime { get { return latime; } set { latime = value; lungime = value } } 1.c) Dreptunghi Dreptunghi Dreptunghi Perimetrul (L= 4 l = 3 (L= 2 l = 2 (L= 2 l = 2 este P = 8

Bura Vlad : Randul 1 1.a) Programul afiseaza: Popescu Ion Nume necunoscut Prenume necunoscut 30 Desi ne-am fi asteptat ca pe a 2a linie sa apara "Ionescu Dan 30", aceasta nu s-a intamplat deoarece in constructorul cu 3 parametrii ai clasei Persoana nu au mai fost facute legaturile intre parametrii

formali si cei efectivi ai clasei. public Persoana(int v, string n, string p) { varsta = v; persoana.set_nume(n); persoana.set_prenume(p); } 2.b) in clasa Nume_persoana: public string Nume { get { return nume; } set { nume = value; } } public string Prenume { get { return prenume; } set { prenume = value; } } in clasa Persoana: public string Nume { get { return persoana.Nume; } } public string Prenume { get { return persoana.Prenume; } } public string Varsta { get { return varsta; } } 1.c) Ar trebui modificat constructorul din clasa Persoana astfel: public Persoana(int v, string n, string p) { varsta = v; persoana.set_nume(n); persoana.set_prenume(p); } si in functia Main() dupa creearea celor 2 obiecte: Console.WriteLine(eu.Nume + " " + eu.Prenume + " " + tu.Varsta + " " + t u.Nume + " " tu.Prenume);

S-ar putea să vă placă și