Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Obiekty - całkowicie zielone
Forum PHP.pl > Forum > Przedszkole
snake781
Witam zebranych!

Z góry przepraszam za poziom. Wymiękłam na samym początku. Próbuję przestawić myślenie na obiekty. No i wymiękłam. Nie potrafię nijak ... ani doczytać, ani wymyśleć jak do właściwości klasy nadrzędnej (dom), nadawanej w treści skryptu ($moj_dom->szerokosc_okien=2;) dobrać się z klasy pokoj. Jeżeli tej właściwości nadam wartość podczas definiowania klasy (linia 2: public $szerokosc_okien=2;), tak jak w większości podręczników w pierwszych rozdziałach widziałam) - to jak najbardziej w klasie "pokoj" jest ona widoczna, ale jak próbuję tak jak wyżej napisałam - w skrypcie to ustawić - to ni czorta jej nie widać.

Powiedzcie proszę chociaż gdzie błąd myślenia, albo rzućcie hasłem według którego mam googlać.

Poniżej kod. Zakomentowana linia trzecie służyła mi do testów - komentowałam sobie to 2-gą, to 3-cią oglądając efekt.

Kod
      
       class dom {
               public $szerokosc_okien=2;
               // public $szerokosc_okien;
       }
      
       class pokoj extends dom {
               public $szerokosc_sciany;
      
               public function __construct ($nazwa) {
                       $this->nazwa=$nazwa;
               }
               public function pokaz_pokoj() {
                       if ($this->szerokosc_okien>0) $liczba_okien=$this->szerokosc_sciany / $this->szerokosc_okien;
                       print "Na ścianie w pokoju ".$this->nazwa." można zrobić ".$liczba_okien." okna ";
               }
      
       }
      
       $moj_dom=new dom;
       $moj_dom->szerokosc_okien=2;
      
       $moj_pokoj=new pokoj('Żabka');
       $moj_pokoj->szerokosc_sciany=6;
       $moj_pokoj->pokaz_pokoj();
nospor
$moj_dom i $moj_pokoj to dwa rozne obikety i one nie mają wspolnych danych. Mylisz tu dwie rozne rzeczy: dziedziczenie z tworzeniem roznych obiektów

Kolejny blad jaki robisz to fakt, ze raczej pokoj nie powinien dziedziczyc po dom. To nie logiczne. Dom moze posiadac pokoje a nie pokoj dziedziczyc po domu.

uzywaj wlasciwego bbcode. dla kodu php ma to byc [php]
snake781
Cytat(nospor @ 3.04.2009, 07:24:40 ) *
Kolejny blad jaki robisz to fakt, ze raczej pokoj nie powinien dziedziczyc po dom. To nie logiczne. Dom moze posiadac pokoje a nie pokoj dziedziczyc po domu.


Wiedziałam, że jakoś źle zaczęłam na samym początku, bo nigdzie
nie znajdowałam analogicznych przykładów. Może pamiętasz jakąś
książkę/manuala/stronę gdzie dla zielonych napisali o implementacji analogicznych
modeli. Googlałam .. cały wczorajszy wieczór. Nic nie wygooglałam.

W sumie to chodzi mi o to, że obiekty (trzymając się już przykładu z domem i pokojami
- pokój) będące w posiadaniu obiektu mają wspólną (taką samą) właściwość.
I tej właściwości chcę użyć wewnątrz jakiejś metody z klasy pokoj.

A może należy traktować je całkowicie rozdzielnie. I przy tworzeniu każdego nowego
pokoju ustawiać mu ręcznie:

  1. <?php
  2. $moj_pokoj->szerokosc_okna=$moj_dom->szerokosc_okna;
  3. ?>



Cytat(nospor @ 3.04.2009, 07:24:40 ) *
uzywaj wlasciwego bbcode. dla kodu php ma to byc [php]


Oczywiście. Przepraszam.
Dziękuję
-Nela
snake781
Witam!

Cytat(tjaden @ 3.04.2009, 09:32:28 ) *


Dzięki. Przeczytałam cały. Niemniej ... nadal jak byłam głupia w temacie mojego
problemu - tak jestem. Idę poczytać coś jeszcze smile.gif

Pozdrawiam,
Nela
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.