![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przykład z książki:
I teraz mam prosbę o wyjaśnienie 1. Wiadomo, że można tworzyć obiekt gdy definicja klasy występuje w kodzie po utworzeniu obiektu (nie ma konieczności napisania definicji funkcji przed jej wywołaniem). Czy nie wyraźniej (bardziej zrozumiale dla osoby, która przejmuje np. jakiś projekt) byłoby napisać te interfejsy w kolejności: Instrument, Musician, Band ? 2. W definicji interfejsów i klasy (które podałem wyżej) nie rozumię pewnej kwestii i prosiłbym osoby, które dobrze znają OOp o wytłumaczenie: Dlaczego w interfejsie Musician jest public function addInstrument (Instrument $instrument); a nie public function addInstrument ($instrument); ? Podobnie jest w klasie Guitarist - dlaczego zamiast public function addInstrument(Instrument $instrument) nie jest public function addInstrument(Instrument $instrument) ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
1. Przyjęta kolejnośc to tylko i wyłącznie decyzja autorów. Ja też uważam że powinno być Instrument, Musician, Band
2. Taki zapis oznacza wymuszenie typu. public function addInstrument (Instrument $instrument); oznacza że parametr $instrument musi byc instancją klasy Instrument. Więcej: Podręcznik php :: Classes and Objects (php 5) :: Type Hinting |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Musi być instancją klasy intrument czy klas, które implementują interfejs instrument? Hmm, nieprecyzyjnie napisałem. Musi być instancją klas implementujących interfejs Instrument, lub jak ~bela zauważył klas pochodnych do tych klas. P.S. Nie można utworzyć instancji interfejsu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 15:41 |