Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Różnica między klasą a obiektem...
Forum PHP.pl > Forum > Przedszkole
uirapuru
W moim rozumowaniu klasa to jakiś tam przepis na obiekt, obiekt jest natomiast ucieleśnieniem klasy. Jeśli się mylę, to mnie oświećcie. Co z tego wynika? Tu moje pytanie. Jaka jest różnica w odwoływaniu się takim:

Klasa::jakas_metoda();

a

Obiekt->jakas_metoda();

Chodzi mi nie o teorie teraz, ale o zastosowania praktyczne. Mam rozumieć, że pierwsza metoda sie wykona, ale nie zostanie faktycznie utworzony obiekt?
Crozin
Pierwsze to metoda klasy, drugie to metoda obiektu. Naprawdę nie czytałeś w manulu niczego na temat statyczynych metod/pól?
uirapuru
Jest wcześnie rano i trochę nie umiem pojąć różnicy... ;D Tak na chłopski rozum...
erix
Cytat
Chodzi mi nie o teorie teraz, ale o zastosowania praktyczne. Mam rozumieć, że pierwsza metoda sie wykona, ale nie zostanie faktycznie utworzony obiekt?

Tak. Statycznych metod używasz, jeśli zastosowanie nie wymaga wielu instancji danej klasy. Czyli np. robisz klasę owoc:

  1. <?php
  2. $x = new Fruit();
  3. $x->kind = 'apple';
  4.  
  5. $y = new Fruit();
  6. $x->kind = 'pear';
  7. ?>


I masz rozróżnienie na owoce. Ale:
  1. <?php
  2. Fruit::$kind = 'grape';
  3. ?>

I możesz tylko jeden owoc w kodzie zmajstrować.

PS. Dodaj tag do tematu
Crozin
Tak, wiem... Java - ale całkiem fajnie są wyjaśnione podstawy prog. obiektowego: http://java.sun.com/docs/books/tutorial/java/index.html
Object-Oriented Programming Concepts, Classes and Objects, Interfaces and Inheritance
cojack
Cytat(erix @ 19.05.2009, 08:58:41 ) *
I masz rozróżnienie na owoce. Ale:
  1. <?php
  2. Fruit::$kind = 'grape';
  3. ?>

I możesz tylko jeden owoc w kodzie zmajstrować.


Jaki znowu $kind? Nie odwołasz się statycznie do zmiennej nie statycznej. Zwróci Ci błąd Fatal error: Access to undeclaerd static property: foo:$a in Comand line on line 1

Przykład klasy: class foo {public $a;} echo foo::$a;

Możesz się odwołać w ten sposób ale tylko wtedy jeżeli $a w klasie jest static, ale dziwne jest to że jak jest static to można na niej posługiwać się obiektem klasy.

Tak więc reasumując, :: używa się jak nie jest nam potrzebny obiekt klasy, tylko np wywołanie metody z klasy. Amba.
erix
Cytat
Jaki znowu $kind? Nie odwołasz się statycznie do zmiennej nie statycznej. Zwróci Ci błąd Fatal error: Access to undeclaerd static property: foo:$a in Comand line on line 1

Zrobiłem za duży skrót myślowy; chodziło mi o statyczną, ale nie napisałem, mój błąd. [;
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.