programowanie obiektowe lekcja

3. Programowanie obiektowe – funkcje klasy, gettery i this

W poprzedniej lekcji, utworzyliśmy klasę o nazwie Post, oraz jej prywatne zmienne. Brakuje nam tylko funkcji, które będą nadawać oraz pobierać wartości,  dla tych zmiennych. Utworzymy sobie tak zwane gettery i settery.

Gettery – cóż to i po co? Są to funkcje, które pozwalają pobrać z obiektu, który powstanie według klasy, wartości zmiennych. Przypominam, że klasa jest tylko planem obiektu, więc bezpośrednio z klasy, nic nie wyciągamy, raczej… chociaż w programowaniu, bywa różnie 🙂 Ale przejdźmy do konkretów:

Mamy taki oto kod, i trzeba dorobić gettery do zmiennych:

class Post{
private $nazwa;
private $tresc;
private $autor;
}

Musimy więc utworzyć trzy funkcje, dla każdej zmiennej osobno. Funkcje klasy też mogą być publiczne lub prywatne. Domyślenie jednak funkcje te są publiczne, więc nie musimy pisać słówka public przed function.

Gdy kodujesz i chcesz aby to ślicznie wyglądało, nazwą funkcji jest: get oraz nazwa zmiennej z dużej litery np, function getName(). My jednak w tej lekcji mamy polskie nazwy zmiennych, więc zamiast get napiszemy sobie „pobierz”.

Uwaga czas włączyć myślenie! Co musi robić funkcja, która ma nam wyciągnąć wartość zmiennej, z utworzonego obiektu? Pomyśl, pomyśl… Funkcja musi zwrócić wartość zmiennej. Jeśli funkcja coś zwraca, to używamy magicznego słówka, return.

„This” w programowaniu obiektowym

Nie zadziała to jednak tak łatwo jak myślisz. return $autor; w środku funkcji nie wystarczy. Oznaczałoby to, że chcemy zwrócić zmienną $autor, która byłaby zadeklarowana w środku, tej funkcji, My jednak chcemy wyciągnąć z obiektu ,jego zmienną. Tą która jest zadeklarowana na górze klasy. Służy do tego słówko $this->, po którym piszemy nazwę zmiennej. Oznacza ono, że odwołujemy się do zmiennej klasy.

Jak łatwo zapamiętać, co robi this?

This po prostu wskazuje na zmienną, która jest na górze klasy, a zmienne te deklarujemy właśnie tam. Wtedy wygląda to, z klasą… 🙂

Pomyśl teraz jak to powinno wyglądać… najpierw function potem nazwa, następnie nawiasy i klamry. Potrzebujemy też return, nowego słówka, czyli $this-> ze strzałką , oraz nazwy zmiennej, która jest na górze. Spróbuj to napisać 🙂

Rozwiązanie, czyli gettry dla klasy Post:

<?php
class Post{
private $nazwa;
private $tresc;
private $autor;

function pokazNazwe(){
return $this->nazwa;
}
function pokazTresc(){
return $this->tresc;
}
function pokazAutora(){
return $this->autor;
}

Settery, czyli funkcje ustawiające wartości zmiennych, przedstawię w następnej lekcji.  Pomyśl jednak sam, w jaki sposób powinny one działać. Funkcja taka musi nadawać wartość zmiennej klasy, która wprowadzona zostanie jako argument, czyli w nawiasy.

Była to kolejna lekcja, bardziej teoretyczna. Opisane sprawy jednak trzeba zrozumieć, zanim zacznie się je stosować. Często w nauce programowania obiektowego, tylko wspomina się o wskaźniku This, który „pokazuje o tam”.  Z taką wiedzą, nie jest się nawet w stanie, napisać prostego gettera. Zachęcam do napisania „setterów” analogicznie do getterów, bez pomocy google 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *