Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]OOP Ucze się... konstruktor
cykcykacz
post
Post #1





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

Ostrzeżenie: (0%)
-----


Witam,
nie umiem ogarnąć konstruktora kiedy go używamy i po co?
Może ktoś mi wytłumaczy?
W poniższym przykładzie mamy klasę dog w której mamy publiczny dostęp do atrybutu $name oraz konstruktora.
Z tego co rozumiem konstruktor jest to metoda która w chwili powstania obiektu nadaje mu jakiś właściwości?
Ale po co i kiedy tego mam używać?
klasa
Kod
<?php
class Dog{
    public $name;//atrybut przechowujący imię psa

    /*konstruktor*/
    public function __construct($name){
        $this->name = $name;
    }
    public function roar(){
        echo 'chał chał';
    }
    //ciach
}
?>

obiekt
Kod
<?php
require('class.dog.php');
$reksio = new Dog('Reksio');
echo $reksio->name; //atrybut "name" publiczny, więc wyświetlone zostanie 'Reksio'
$reksio->roar(); //metoda roar() publiczna, więc wyświetlone zostanie 'chał chał'
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


~cykcykacz jeśli chodzi o wymagania pracodawców na stanowisko młodszego programisty to najlepiej byłoby zorientować się samemu studiując i porównując aktualne oferty pracy. Takich portali jest wiele, z większych np. infopraca.pl, pracuj.pl czy gazeta.praca.pl Rynek zmienia się niemal z miesiąca na miesiąc, są jakieś ogólne tendencje, ale jest to a tyle dynamiczna dziedzina wiedzy, że wymagania stawiane pracownikom - przykładowo - sprzed trzech miesięcy - teraz mogą być już nieaktualne. Może to, co dalej napiszę nie będzie przyjemne, ale ja, osobiście gdybym nie był w stanie w ciągu około dwóch lat opanować jakiegoś wiodącego na rynku rozwiązania (frameworka) w stopniu umożliwiającym w miarę swobodne poruszanie się w nim oraz poprawne implementowanie przynajmniej podstawowej funkcjonalności (mam na myśli operacje CRUD + realizacja standardowych zadań od pracodawcy) zgodnej z architekturą frameworka, to po prostu zastanowiłbym się czy to jest obszar działalności twórczej, w której mogę się sprawdzić. Mówiąc bez ogródek: zastanawiałbym się czy nadaję się na programistę. To jest niestety (albo i stety) jeden z zawodów, obok prawnika czy lekarza, który wymaga ciągłego rozwoju i nauki w tempie przynajmniej pozwalającym śledzić aktualne trendy na rynku, który jest maga-dynamiczny. Rozwiązania sprzed kilku miesięcy są już przestarzałe. Trzeba dużo czytać, śledzić różnego rodzaju nowinki, nie zamykać się w tylko jednym języku programowania, po prostu trzeba być z tymi zmianami na bieżąco jeśli myśli się poważnie o swojej przyszłości jako programista.
Odnośnie "przyśpieszenia nauki", to mogę jedynie podzielić się swoimi doświadczeniami. Uważam, że ucząc się programowania obiektowego trzeba mieć zawsze świadomość faktu, że pisząc kod obiektowy próbujemy naśladować rzeczywistość, która nas otacza. Na tym polega programowanie obiektowe (pomijając pewien stopień abstrakcji, z jakim mamy do czynienia przekładając rzeczywistość na taki czy inny język programowania). I z tą myślą w głowie jest dużo łatwiej zachować właściwy logiczny porządek (hierarchia obiektów jak najbliżej rzeczywistości). Moje początki, zanim jeszcze powstała jakakolwiek linijka kodu, wyglądały tak, że najpierw powstawał pewien szkic, który modelował jeden wielki problem do rozwiązania na poszczególne małe podproblemy, następnie każdy z tych podproblemów dzieliłem na ileś tam klas, z których każda miała pewną określoną rolę i stanowiła w miarę, jak to tylko było możliwe - niezależny byt. W ten sposób powstawał mój plan działania. Na końcu siadałem do właściwej części - czyli pisania kodu z planem w ręku. Pozwoliło mi takie podejście oszczędzić mnóstwo czasu, a moje projekty z czasem stawały się zbiorem całkiem niezłej "narzędziówki", z której korzystam jeszcze do tej pory i wiele razy uratowała mi projekt (IMG:style_emoticons/default/smile.gif) (no może niedosłownie, ale oszczędziłem bardzo dużo czasu). Wartością dodaną takiego podejścia było to, że dzięki takiemu sposobowi programowania wyrobiłem sobie nawyk planowania i analizowania problemów, które mój kod ma rozwiązywać, dodatkowo studiując którąś już z kolei książkę o wzorcach zauważyłem, że praktycznie większość z nich używałem do tej pory nie zdając sobie tego sprawy. Dzięki nauce wzorców udało mi się tylko tę całą wiedzę uporządkować i poznać jeszcze kilka ciekawych rozwiązań znanych mi wcześniej problemów. Tak czy siak szczerze życzę powodzenia w dalszej edukacji i sukcesów zawodowych.
Go to the top of the page
+Quote Post

Posty w temacie
- cykcykacz   [PHP]OOP Ucze się... konstruktor   20.04.2011, 18:44:30
- - mat-bi   Ludzie... http://museum.webcity.pl/webcity/artyku...   20.04.2011, 19:13:59
- - cykcykacz   Już miej więcej się domyśliłem, że konstruktora uż...   20.04.2011, 19:39:27
- - thek   Ech... Konstruktor to SPECJALNA metoda, która ZAWS...   20.04.2011, 20:07:51
- - Crozin   @thek: A to niby czemu coś takiego miałoby być błę...   20.04.2011, 20:47:55
- - cykcykacz   Odbiegając od tematu ciężko się nauczyć mi osobiśc...   20.04.2011, 21:23:32
- - everth   @Crozin - błąd nie ale thek ma trochę racji, w pod...   20.04.2011, 22:07:21
- - thek   Może wyjaśnię o co mi chodzi, bo everth "widz...   21.04.2011, 09:43:35
- - Crozin   @thek: jak zwykle nie zawiódł. Ładny wywód i trzyk...   21.04.2011, 10:15:43
- - cykcykacz   Stworzyłem klasę, która łączy się z bazą oraz pobi...   21.04.2011, 19:13:02
- - mat-bi   W konstruktorze nie robimy zwykle takich rzeczy ja...   21.04.2011, 19:20:02
- - thek   Spróbuj w C/C++ tak zrobić, to kompilator Ci się n...   21.04.2011, 21:55:17
- - everth   Tak mnie naszło - czy PHP w trakcie inicjowania ob...   21.04.2011, 22:15:33
- - Crozin   @thek: A jakiś argument przeciw, ale nie bazujący ...   21.04.2011, 22:49:35
- - thek   Czy ja wiem czy takie nie domyślne? Mam klasę w Ko...   22.04.2011, 01:44:36
- - Crozin   Temat wiąże się z OOP więc proszę mi tutaj Kohany ...   22.04.2011, 10:52:30
- - thek   No nie mów, że Kohana to nie OOP? Ja rozumiem, że...   22.04.2011, 11:47:46
- - Crozin   Ale przecież oczywistym jest, że jeżeli ustalenie ...   22.04.2011, 12:38:25
- - thek   Cytatjeżeli ustalenie czegoś nie jest tak trywialn...   22.04.2011, 17:08:53
- - Crozin   Ależ Ty mącisz... Wymieszałeś prywatne sprawy obi...   22.04.2011, 17:33:02
- - thek   Ależ nie mieszam... Zauważ co uznaję za prawidłowe...   22.04.2011, 21:29:47
- - everth   [bezzwiazkuztematem] Nie wiem czy zauważyliście al...   22.04.2011, 22:11:42
- - Crozin   CytatWłaśnie dlatego jedyną dla mnie w pełni natur...   23.04.2011, 14:15:45
- - thek   Jak najbardziej masz rację Crozin. To nie zmienia ...   24.04.2011, 21:54:31
- - everth   @thek trochę masz dziwne podejście z tymi argument...   25.04.2011, 12:40:58
- - darko   ~cykcykacz kontynuujesz temat po prawie dwóch lata...   25.04.2011, 13:39:18
- - cykcykacz   ~darko faktycznie masz mnie nawet zapomniałem o t...   25.04.2011, 16:20:24
- - r4xz   no na pewno aby przyśpieszyć naukę przyda się prze...   25.04.2011, 16:39:49
- - darko   ~cykcykacz jeśli chodzi o wymagania pracodawców na...   25.04.2011, 18:08:35
- - cykcykacz   ~darko CytatMoże to, co dalej napiszę nie będzie ...   25.04.2011, 19:58:03
- - darko   Php uczyłem się 4 miesiące znając już języki: c, c...   25.04.2011, 20:13:44
- - cykcykacz   To ja dalej zasiadam do nauki PHP i nie tylko Dz...   25.04.2011, 20:28:23
- - Crozin   @thek: Uczepiłeś się jednego konkretnego przypadku...   25.04.2011, 20:57:49
- - darko   ~Crozin zgadza się, że przestrzeń globalna jest zł...   25.04.2011, 21:19:02
- - everth   Paradygmat pewnie żaden, ale czy kosmetyka? Jeśli ...   25.04.2011, 22:59:13
- - thek   @Crozin: Nie wiem czy zauważyłeś, ale to o czym ja...   26.04.2011, 02:23:29
- - Crozin   @darko: Nie wiem z jakich Ty to FW korzystasz, ale...   26.04.2011, 12:26:48
- - thek   Widać sam nie zauważyłem, że w czasie pisania skró...   26.04.2011, 12:40:37
- - everth   @thek Ciekawy art na temat umieszczania argumentów...   26.04.2011, 18:31:27
- - darko   Cytat(Crozin @ 26.04.2011, 13:26:48 )...   26.04.2011, 19:14:10
- - thek   @everth: faktycznie fajny, ale szkoda, że na wąski...   26.04.2011, 21:14:27


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 07:05