Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Obiekty - całkowicie zielone
snake781
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 2.04.2009

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


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();


Ten post edytował snake781 3.04.2009, 00:35:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




$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]
Go to the top of the page
+Quote Post
snake781
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 2.04.2009

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


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
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 17.10.2025 - 08:50