Przeszukaj forum
Pokazuję wyniki dla tagów 'konstruktor'.
Znaleziono 1 wynik
-
Szukałam i nie znalazłam Jak odwołać się z konstruktora klasy Osoba do konstruktora klasy Adres? Wyskakuje mi błąd w klasie Osoba, z którym nie wiem jak sobie poradzić. Już drugi tydzień się z tym męczę. Proszę o pomoc i wytłumaczenie. Nie mogę zastosować get, sat i nie mogę zmieniać kodu w klasie Program. W klasie Osoba i Adres wszystkie nazwy muszą pozostać takie jakie są. Kod trzeba przerobić tak aby efekt końcowy był jak na obrazku. Klasa Osoba using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kadry { public class Osoba { private int numerEwidencyjny; private string nazwisko; private string imie; Adres adres; public Osoba(int numerEwidencyjny, string nazwisko, string imie, Adres adres) { this.numerEwidencyjny = numerEwidencyjny; this.nazwisko = nazwisko; this.imie = imie; this.adres = adres; } public Osoba(int numerEwidencyjny, string imie, int numerDomu) : this(numerEwidencyjny, "Kowalski", imie, "02-222", "Warszawa", "Aleje Jerozolimskie", numerDomu, 0) { } public Osoba(ref Osoba osoba) { numerEwidencyjny = osoba.numerEwidencyjny; nazwisko = osoba.nazwisko; imie = osoba.imie; adres = osoba.adres; } public string ZwrocKod() { return adres.kod; } public string ZwrocMiejscowosc() { return adres.miejscowosc; } public string ZwrocNazweUlicy() { return adres.nazwaUlicy; } public int ZwrocNumerDomu() { return adres.numerDomu; } public int ZwrocNumerMieszkania() { return adres.numerMieszkania; } public string ZwrocInformacjeOsobowe() { return string.Format("\n Pan(i) {0} {1} o numerze ewidencyjnym: {2} zamieszkały(a): {3} {4} {5}", nazwisko, imie, numerEwidencyjny, ZwrocKod(), ZwrocMiejscowosc(), ZwrocNazweUlicy() + " " + ZwrocNumerDomu() + " m" + ZwrocNumerMieszkania()); } public void ZmienDaneOsobowe() { Console.Write("Podaj imię: "); imie = Console.ReadLine(); Console.Write("Podaj nazwisko: "); nazwisko = Console.ReadLine(); do { Console.Write("Podaj numer ewidencyjny: "); } while (!int.TryParse(Console.ReadLine(), out numerEwidencyjny)); } public void ZmienAdres() { Console.Write("Podaj kod: "); adres.kod = Console.ReadLine(); Console.Write("Podaj nazwę miejscowści: "); adres.miejscowosc = Console.ReadLine(); Console.Write("Podaj nazwę ulicy "); adres.nazwaUlicy = Console.ReadLine(); do { Console.Write("Podaj numer domu: "); } while (!int.TryParse(Console.ReadLine(), out adres.numerDomu)); Console.Write("Czy jest numer mieszkania <t/n>: "); char c = Console.ReadKey().KeyChar; if (c == 't') { Console.WriteLine(); do { Console.Write("Podaj numer meszkania: "); } while (!int.TryParse(Console.ReadLine(), out adres.numerMieszkania)); } else { adres.numerMieszkania = 0; } } public Osoba Klonuj() { return (Osoba)this.MemberwiseClone(); } } } Klasa Adres using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kadry { public class Adres { public string kod; public string miejscowosc; public string nazwaUlicy; public int numerDomu; public int numerMieszkania; public Adres(string kod, string miejscowosc, string nazwaUlicy, int numerDomu, int numerMieszkania) { this.kod = kod; this.miejscowosc = miejscowosc; this.nazwaUlicy = nazwaUlicy; this.numerDomu = numerDomu; this.numerMieszkania = numerMieszkania; } public Adres(ref Adres adres) { kod = adres.kod; miejscowosc = adres.miejscowosc; nazwaUlicy = adres.nazwaUlicy; numerDomu = adres.numerDomu; numerMieszkania = adres.numerMieszkania; } } } Klasa Program using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kadry { public class Program { static void Main(string[] args) { Osoba os1 = new Osoba(5, "Ola", 43); Console.WriteLine(" Oryginał {0}", os1.ZwrocInformacjeOsobowe()); Console.WriteLine("\n***Zmieniamy klon:***\n"); Osoba klon1 = os1.Klonuj(); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); klon1.ZmienDaneOsobowe(); klon1.ZmienAdres(); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); Osoba os3 = new Osoba(ref os1); Console.WriteLine(" Oryginał {0}", os3.ZwrocInformacjeOsobowe()); Console.WriteLine("\n***Zmieniamy klon:***\n"); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); klon1.ZmienDaneOsobowe(); klon1.ZmienAdres(); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); Console.ReadKey(); } } }