![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 4.06.2006 Skąd: Strzeszyce/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Powiedzmy, że opanowałem już tworzenie obiektów w php. Jednak to moje "opanowanie" to właściwie podstawy. Chciałbym zrozumieć jeszcze kilka rzeczy, a większośc artykułów jakie znalazłem, to albo dla całkowicie początkujących, albo dla totalnie zaawansowanych.
Przytoczmy na przykład dwie klasy: klasa DB: odpowiedzialna za operacje na bazie danych; główne funkcje - konstruktor, który łączy z bazą, funkcja query, fetchAssoc, numRows no i close. klasa gallery - no i powiedzmy, że chciałbym mieć tutaj funkcje odpowiedzialne za wprowadzanie rysunków, wyświetlanie według kategorii, według usera, wyświetlanie jednego obrazka itp itd No i teraz moje pytanie(a) - czy klasa gallery powinna dziedzyczyć klasę (po klasie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) DB? no i w jaki sposób? czy powinna mieć własnego konstruktora? które funkcję powinny mieć status private, public (i na co one pozwalają)?i jak użyć klasy macierzystej w klasie "pochodnej"? Wiem, ze dużo zagadnień i zapewne odpowiedzi będą nieco dłuższe niż pytania, dlatego jak ktoś znajdzie chwilkę, to byłbym niezmiernie wdzięczny, gdyby coś tutaj napisał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) P.S. ups.. sorry za tamten temat... widocznie gdzieś wcisnąłem niepotrzebnie enter... proszę o wyrzucenie tamtego wątku i z góry dzięki! Ten post edytował yasiek 25.08.2006, 10:16:08 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
czy klasa gallery powinna dziedzyczyć klasę (po klasie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) DB? no i w jaki sposób? Oczywiście że nie.Co ma wspólnego baza danych z galerią? NIC. czy powinna mieć własnego konstruktora? Tak, każda klasa powinna mieć konstruktor.Klasy pochodne mogę dodatkowo wykonywać w swoim konstruktorze, konstruktor klasy bazowej. które funkcję powinny mieć status private, public (i na co one pozwalają)?i jak użyć klasy macierzystej w klasie "pochodnej"? A jakie tylko chcesz, to zalezy co Twoja klasa ma robić.Piszesz że opanowałeś podstawy, a widać że nawet manuala do końca nie przeczytałeś skoro nie wiesz jak klasy bazowej w klasie dziedziczącej i nie znasz różnicy pomiędzy private i public. |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Nie. Widac zupelnie nie zrozumiełeś idei oop. Nie martw się - większośc osób tak ma.
Uzywanie klas to nie to samo co programowanie obiektowe - można używac klas, ale nie programować obiektowo. Programowania obiektowe to pewien szczególny sposób myślenia o aplikacji, w którym ogromną wagę przykłada się do projektowania. Opowiedz sobie na pytanie: Co ma wspólnego klasa galerii z klasą DB? Jeśli nie ma nic wspólnego, to dlaczego ma po niej dziedziczyć? Czy galeria jest specjalizacją klasy DB? Rozszerza ją? Nie. Nie ma z nią nic wspólnego i jako taka nie powinna po niej dziedziczyć. Do klasy macierzystej (rodzicielskiej) odwołujsze się przez słowo kluczowe parent
Pozdrawiam. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 4.06.2006 Skąd: Strzeszyce/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Piszesz że opanowałeś podstawy, a widać że nawet manuala do końca nie przeczytałeś skoro nie wiesz jak klasy bazowej w klasie dziedziczącej i nie znasz różnicy pomiędzy private i public. Ok, w takim razie nie opanowałem podstaw - proszę o wybaczenie. Chodzi mi o przedstawienie w praktyktyce. Private - tylko w metody danej klasy, public - danej i pochodnej. Dobrze mówię? no i jak w takim razie w klasie gallery wykonywać zapytania sql używając klasy db? Cytat Nie. Widac zupelnie nie zrozumiełeś idei oop. Nie martw się - większośc osób tak ma. No mniej więcej łapie to od strony teoretycznej. Ale nie wiem jak z praktyką... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował yasiek 25.08.2006, 10:33:29 |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
No mniej więcej łapie to od strony teoretycznej. Ale nie wiem jak z praktyką... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie obraź sie ale daleki jesteś od złapania teoretycznego (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Dziedziczenie jest to nic innego jak rozszerzanie. OOP to mapowanie rzeczywistości na obiekty. Weźmy na przykład pokój. Mamy klasy: Mebel, Wyposażenie, Urządzenie. Teraz mamy klasy: Szafa, Stołek, Łóżko, .... Wszystkie one dziedziczą po czym? Po Meblu. Mamy klasy: Kaloryfer, RuraWŚcianie, ... One dziedziczą po Wyposażenie A klasy: DVD, Komputer, HiFi, Ołówek, ..., dziedziczą po Urządzenie. Programowanie w OOP jest to przedstawianie rzeczywistości za pomocą obiektów i definiowanie między nimi zależności. Na przykład możesz stworzyć klasę: Ubranie. Do niej: Majtki, Portki, Kurtka, one dziedziczą po Ubranie. A wspomniana wcześniej Szafa jest kolekcją Ubrań. Możesz też zrobić klasy UrządzenieElektroniczne i UrządzenieZwykłe dziedziczące po Urządzenie i dopiero teraz zdecydować po którym urządzeniu będzie dziedziczyć każda z klas: DVD, Komputer, HiFi, Ołówek To jest OOP |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 4.06.2006 Skąd: Strzeszyce/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie obraź sie ale daleki jesteś od złapania teoretycznego Jasne, ze się nie obrażę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) gdybym to wszystko wiedział i rozumiał, o nic bym nie pytał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki mike za wymowne przykłady (ten z majtkami jest najlepszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mniej więcej to rozumiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) na przykład tworzysz sobie klasę samochód a później od niej Opel, Seat, Lexus (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) i tak dalej. Tylko powiedz mi, jak w takim razie wykorzystac klasę obługującą mysql, do tego, żeby dodać informację o zdjęciu do galerii, pobrać odpowiednią ilość zdjeć i tak dalej? Myslałem, ze tu też mogę użyć dziedziczenia, no bo klasa gllery, opierałaby się w pewnym sensie na DB i wykorzystywała jej funkcje - no ale racja, to nie jest żadne rozszerzenie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 02:51 |