![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 24.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
wlasnie nastal radosny czas w ktorym zostalem zmuszony do zaglebienia sie w OOP, jak dotadnatknalem sie na taki problem : Klasa A inicjalizowana 3 zmiennymi typu get. ( new A(get1, get2, get3); ) posiada: - wlasciwosci - (ustawiane w konstruktorze, czasem zmieniane przez ktoras z metod) - metody Klasa B posiada : - wlasciwosci - czesc jest wyznaczana na podstawie wlasciwosci klasy A w konstruktorze - wlasne metody - byc moze dziedziczenie metod kasy A (o tym dalej). Ktore z tych rozwiazan bylo by bardziej poprawne : dziedziczenie (B extends A), ale ... klasa A jest inicjalizowana zmiennymi get (i na ich podstawie ustawiane sa wartosci "jej" wlasciwosci) , czy mam w takim razie zainicjalizowac klase B tymi zmiennymi, a w jej ktonstruktorze jeszcze raz zainicjalizowac klase A (po to zeby "jej" wlasciwosci mialy odpowiednie wartosci ), czy inicjalizowac klase B (w dlaszym ciagu B extends A, w celu uzyskania dostepu do metod klasy A wewnatrz B ) obiektem klasy A i dodatkowo w klasie A utworzyc nowa metode(wywolywana z konstruktora ![]() Byc moze zapedzilem sie w sklepy zaulek, a rozwiazanie jest znacznie prostsze i eleganckie, ale to dopiero moje pierwsze dni z OOP --------------- edit wszystkie instrukcje z metody inicjalizujacej klase A, mogly by sie znalezc w konstruktorze klasy B (przyslonienie) , ale wygodniej jest mi je trzymac poki co w klasie A, bo ta w zaleznosci od sytuacji bedzie inicjalizowana w jeszcze inny sposob. Ten post edytował jakub_klamca 9.02.2007, 14:10:35 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 1 Dołączył: 20.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo wiem, co to za klasy i co chcialbys osoagnac, ale moze w konstruktorze klasy B wykorzystaj tresc konstruktora klasy A i dodaj cos jeszcze:
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Za malo opisales klasy i obiekty jakie maja one reprezentaowac.
Bo i dziedziczenie i delegacja moga byc wlasciwym rozwiazaniem. Jesli B nie jest A to nie mozesz dziedziczyc. Po prostu opisz jakie obiekty modelujesz itd. -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 19:55 |