Programowanie obiektowe - określenie typów parametrów |
Programowanie obiektowe - określenie typów parametrów |
16.10.2014, 22:19:41
Post
#1
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 26.06.2014 Ostrzeżenie: (0%) |
Witam, mam pytanie odnośnie określania typów parametrów w obiektach.
Przykład :
Mam pytanie odnośnie tej linijki bo nie wiem czy dobrze rozumiem. Do metody ship jako parametr można tylko dać metody z Klasy Percel, tak? A jak będę chciał się odwołać w metodzie ship do metody run() to wystarczy napisać $percel->run ? Bo nie wiem dlaczego tak jest to zapisane... Ten post edytował M4ver7071 16.10.2014, 22:22:36 |
|
|
16.10.2014, 22:44:24
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Chodzi tutaj o przekazywanie konkretnego typu obiektu. W tym przypadku zadziała tutaj wszystko co będzie typu Percel. Więc tak, przekazując nie metody, tak jak piszesz, a całą klasę Percel uzyskasz do nich dostęp.
Dodatkowo możesz zrobić coś takiego class Something extends Percel {} do ship przekazać tak naprawdę Something i to również zadziała, bo w ostateczności obiekt Something składa się z Percel ship(Percel $percel). Inny case: wykorzystanie interface interfeca MyInterface.... class Something implements MyInterface {} ship(MyInterface $obj) do ship możesz przekazać Something mimo, że w deklaracji funkcji zamieściłeś MyInterface a dlaczego? Dlatego, że spodziewasz się metod, które masz zadeklarowane w interfejsie |
|
|
17.10.2014, 09:39:40
Post
#3
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 26.06.2014 Ostrzeżenie: (0%) |
Okej, a jeżeli np. Klasa Something nie dziedzyczy po Percel a mimo wszystko jest taki zapis ship(Percel $percel) ? A jeżeli mamy zapis taki ship(Percel $percel) to jeżeli chce się odwołać do tego obiektu to używam w metodzie ship { $this->percel = $percel } tak ?
|
|
|
17.10.2014, 09:43:09
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
Wewnątrz metody będzie to $percel, jak chcesz odwoływać się z innych metod to tak jak napisałeś. Dostęp do $percel jest taki sam jak do wszystkich argumentów
|
|
|
17.10.2014, 10:37:48
Post
#5
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 26.06.2014 Ostrzeżenie: (0%) |
Czyli wewnątrz metody ship jeżeli chciałbym się odwołać do metody run w Percel. To poprostu piszę tak public function ship(Percel $percel) { $percel->run(); } ? Czy jakoś inaczej bo chce to zrozumieć dobrze..
|
|
|
17.10.2014, 10:42:53
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
|
|
|
17.10.2014, 11:21:27
Post
#7
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 26.06.2014 Ostrzeżenie: (0%) |
Wielkie dzięki za wskazówki ogarnąłem
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.05.2024 - 22:09 |