To może je spróbuję tak zdeczka wprowadzić. Nie będzie to może szczyt wiedzy programistycznej ale dla laika najlepiej tlumaczyć na chłopski rozum. Nie znam PHP jeżeli chodzi o programowanie obiektowe, dlatego moje nauczanie będę prowadził w C#, jednak uważam że będzie to na tyle proste że zrozumiesz a w formie ćwiczenia stworzysz podobny kod w PHP.
Programowanie obiektowe jest to sposób programowania, gdzie używasz obiektów. Czym są obiekty? No tak naprawdę obiektem może być wszystko: przedmioty, figury, ludzie, samochody. Te ostatnie są bardzo prostym przykładem więc na ich podstawie omówię najważniejsze kwestie. Samochodów może być dużo, każdy z nich posiada wspólne cechy, czyli każdy z nich jest jakiejś marki, ma jakiś kolor, jakiś silnik i jakiś przebieg. Znamy wszystkie parametry (marka, kolor, silnik, przebieg), ale nie znamy ich wartości - to jest własnie
KLASA. Teraz spośród wszystkich samochodów możemy stworzyć jeden, taki który posiada kolor, silnik i markę - jest to
OBIEKT. Obiekty tak jak już mówiłem, tworzymy używając klasy. Zatem od czego zaczynamy naszą zabawę z programowaniem obiektowym? Od napisania naszej klasy!
Oto jak wygląda klasa o jakiej pisaliśmy: nazwa Samochód, parametry: marka, kolor, silnik, przebieg.
Kod:
class Samochod
{
public string marka;
public string kolor;
public double silnik;
public int przebieg;
}
Wszystko co dotyczy tej klasy, musi zawierać się w klamerkach { }.
Jak widzimy, tworzenie klasy rozpoczynamy od wyrazu
class, następnie nazwa. Logiczne, nie ma co tłumaczyć.
W klamrach już jest ciekawiej, widzimy
Kod:
public string kolor;
Po kolei:
public - o tym później - przy hermetyzacji :)
string - typ naszego pola (parametru)
kolor -nazwa naszego pola.
Mamy już klasę, teraz aby zrobić nasz obiekt potrzebny nam będzie
KONSTRUKTOR. Czym jest konstruktor? jest to metoda, która wywołuje się przy tworzeniu obiektu. Może brzmieć strasznie, ale to nic trudnego. Metoda to funkcja w klasie. Metoda to tak łopatologicznie: zadanie jakie może realizować klasa np. jedź(), albo zapal_swiatla().
Jak stworzyć konstruktor, stworzyć metodę o takiej samej nazwie co klasa! czyli dopisać pod polami:
Kod:
public Samochod()
{
}
Kiedy mamy już klasę z konstruktorem, możemy stworzyć obiekt! Jak go stworzyć? W kodzie programu (nie w klasie!) napisać instrukcję:
Kod:
Somochod auto1 = new Samochod();
To jest nasz pierwszy obiekt! Ale zaraz, nasz samochód jeszcze nie ma ani koloru, ani marki, nic nie ma. Co robimy? Można by po kolei odwoływać się do pól i je ustawiać np:
Kod:
auto1.marka = "Toyota";
auto1.kolor = "czerwony";
....
Można ale to jest brzydkie. Możemy to wszystko zrobić w konstruktorze!
Tworzymy więc kolejny
KONSTRUKTOR Z ARGUMENTAMI Czym są argumenty? są to już konkretne wartości naszego samochodu. Konstruktor ten robimy np. tak:
Kod:
public Samochod(string _marka, string _kolor, double _silnik, int _przebieg)
{
marka = _marka;
kolor = _kolor;
silnik = _silnik;
przebieg = _przebieg;
}
A jak stworzyć dzięki niemu obiekt?
Dokładnie tak jak poprzednio, ale w nawiasach wpisujemy cechy naszego samochodu, w takiej samej kolejnosci.
Kod:
Samochod auto2 = new Samochod("Toyota", "czerwony", 1.6, 10000);
Teraz temu naszemu samochodowi, możemy powierzyć jakieś zadania, prawda? Jednak te zadania trzeba mu najpierw zapisać w klasie tworząc metody. Zróbmy prostą metodę jedz(), która wypisze nam na ekran jakiś tekst. Pod konstruktorami dopiszmy:
Kod:
public jedz()
{
Console.WriteLine("Bruuuuuum");
}
Jak rozkazać samochodowi żeby jechał? Bardzo podobnie jak "brzydko" przypisywalismy wartości do pól, mianowicie piszemy nazwę naszego obiektu, a potem po kropce nazwę metody z nawiasami:
Co się pojawi na ekranie? To Twoja praca domowa, koniec lekcji, odrób pracę domową i stwórz podobny kod w PHP. Jak będziesz chciał dalej się pouczyć to mogę Ci wytłumaczyć na czym polegają rzeczy ściśle związane z programowaniem obiektowym, mianowicie: dzidziczenie, hermetyzacja, polimorfizm.
Pozdrawiam! :)
Zakładki