Programowanie obiektowe
Re: Programowanie obiektowe
Skoro rozszerzasz klasę Cat o AnimalAbstract to tak jakbyś skopiował całą zawartość AnimalAbstract do Cat. Więc od tego momentu $this odwoła się do tego co znajduje się w Cat.
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Programowanie obiektowe
Ok, zrozumiałem. Wiem czemu błędnie myślałem przez cały czas, teraz dopiero do tego doszedłem.
Nie ważne gdzie zadeklarujesz zmienną w klasie czy pod funkcjami czy nad nimi to i tak się do niej odwołasz bo to jest programowanie obiektowe.
Np. tutaj, kod nie leci po kolei jak w strukturze, linia po linii, żeby się widział i mógł wypisać wartość.
W programowaniu strukturalnym np.tutaj nie wypisze nam obecnego rezultatu:
Nie ważne gdzie zadeklarujesz zmienną w klasie czy pod funkcjami czy nad nimi to i tak się do niej odwołasz bo to jest programowanie obiektowe.
Np. tutaj, kod nie leci po kolei jak w strukturze, linia po linii, żeby się widział i mógł wypisać wartość.
Wynik zostanie wypisany 20.$a = new Dom;
echo $a->cena;
class Dom
{
public $cena=20;
}
W programowaniu strukturalnym np.tutaj nie wypisze nam obecnego rezultatu:
Jeśli się mylę to mnie poprawcie.echo $a;
$a=5;

Zawsze walcz do końca i nigdy się nie poddawaj!
Re: Programowanie obiektowe
Nie do końca w PHP to przejdzie w C++ już nie. Mimo wszystko staraj się mieć zachowaną kolejność deklaracji.
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Programowanie obiektowe
Jak na razie wszystko powoli łapię, ale stanąłem teraz na wyjątkach.
Za bardzo nie zrozumiałem jego celu użycia, po się używa wyjątków i jak często?
Za bardzo nie zrozumiałem jego celu użycia, po się używa wyjątków i jak często?
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: Programowanie obiektowe
Bardzo praktyczny przykład obsługi wyjątków znajdziesz w kursie MySQLi. W kursie PHP również pokazuje je na praktycznym przykładzie używasz je wtedy, gdy zdarzą się wyjątkowe sytuacje i chcesz aby kod (w bloku try), który jest za miejscem wystąpienia wyjątku nie został odpalony.
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Programowanie obiektowe
Wiesz do czego służy agregacja?
Klasy mogą oprócz właściwości i metód zawierać obiekty innych klas. Zawieranie takie nosi nazwę agregacji.
Spotkałem się w Internecie z takim przykładem:
Klasy mogą oprócz właściwości i metód zawierać obiekty innych klas. Zawieranie takie nosi nazwę agregacji.
Spotkałem się w Internecie z takim przykładem:
class Traba{
public $dlugoscTraby;
}
class Slon
{
public $traba;
public function zmienDlugos( $nowe ){
$this->traba->dlugoscTraby = $nowe;
}
}
$dumbo = new Slon;
$dumbo->traba = new Traba;
$dumbo->traba->dlugoscTraby = 2;
echo $dumbo->traba->dlugoscTraby;
$dumbo->zmienDlugosc(3);
Zawsze walcz do końca i nigdy się nie poddawaj!
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Programowanie obiektowe
Doszedłem do klonowania właśnie i ta agregacja tam się pojawiła. Stosowałeś ją wcześniej? W jakich przypadkach się jej używa. W sieci znalazłem taki przykład jak wcześniej napisałem (post wyżej), oprócz tego:
http://pl.wikipedia.org/wiki/Agregacja_(programowanie_obiektowe) który jest opisany, że jest to podobne do dziedziczenia bardzo.
http://pl.wikipedia.org/wiki/Agregacja_(programowanie_obiektowe) który jest opisany, że jest to podobne do dziedziczenia bardzo.
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: Programowanie obiektowe
Przecież to logiczne, że możesz użyć innego obiektu w klasie.
Zastanów się. Tak naprawdę kiedy korzystasz z liczb całkowitych, czyli (integer) to możesz zapisywać w zmiennej liczby całkowite. Gdy zrobisz zmienną typu jakiejś klasy to możesz w niej zapisywać to co pozwoliłeś sam zapisać do takiego typu zmiennej.
W PHP to trochę jest może mniej zrozumiałe bo w domyśle tworząc zmienną np:
$a
to możesz do niej zapisać co się żywnie podoba ze wzg. na to jak bardzo uprościli ten język twórcy PHP, jednak w C#, C++, Java i podobnych musisz i możesz tylko zapisać wartości do zmiennej tylko takie jakie określisz.
Kiedy korzystasz? Gdy potrzebujesz. Gdy tworzysz auto, to auto składa się z 4 kół. Czyli Auto to klasa, a w klasie Auto masz 4 obiekty typu klasy Kolo.
Zastanów się. Tak naprawdę kiedy korzystasz z liczb całkowitych, czyli (integer) to możesz zapisywać w zmiennej liczby całkowite. Gdy zrobisz zmienną typu jakiejś klasy to możesz w niej zapisywać to co pozwoliłeś sam zapisać do takiego typu zmiennej.
W PHP to trochę jest może mniej zrozumiałe bo w domyśle tworząc zmienną np:
$a
to możesz do niej zapisać co się żywnie podoba ze wzg. na to jak bardzo uprościli ten język twórcy PHP, jednak w C#, C++, Java i podobnych musisz i możesz tylko zapisać wartości do zmiennej tylko takie jakie określisz.
Kiedy korzystasz? Gdy potrzebujesz. Gdy tworzysz auto, to auto składa się z 4 kół. Czyli Auto to klasa, a w klasie Auto masz 4 obiekty typu klasy Kolo.
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: Programowanie obiektowe
Zakończyłem dzisiaj kurs PHP i jestem bardzo zadowolony, że pojąłem naprawdę dużo. Tak jak wspominałem najpierw zacząłem PHP do części obiektowej potem kurs MySQL do 10 rozdziału i powrót do obiektówki. Polecam wszystkim tak, aby zrozumieli też jak działa strukturalne pisanie zapytań, bo teraz pewnie będę już je obiektowo robił. Praktykowanie podczas słuchania kursu jest super metodą do jak najszybszej nauki i pochłaniania wiedzy. Nie omieszkam, że wspomagam się też materiałami z Internetu. W projektowaniu obiektowym omówiłeś naprawdę dużo.
Miałbym jeszcze do ciebie pytanie w tym dziale:
Jak omówiłbyś własnymi słowami HERMETYZACJA i POLIMORFIZM ?
Miałbym jeszcze do ciebie pytanie w tym dziale:
Jak omówiłbyś własnymi słowami HERMETYZACJA i POLIMORFIZM ?
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: Programowanie obiektowe
Hermetyzacja polega na tym, aby trzymać składowe klas jako pola prywatne i dostawać się do nich jedynie przy pomocy funkcji.
Natomiast na temat polimorfizmu prowadziliśmy już na forum długą konwersację:
http://videokurs.pl/forum/c-net-f24/lek ... fizm#p1268
Natomiast na temat polimorfizmu prowadziliśmy już na forum długą konwersację:
http://videokurs.pl/forum/c-net-f24/lek ... fizm#p1268