Część 22 kursu PHP INF.03: Programowanie obiektowe (OOP) w PHP. Definiowanie klas, tworzenie obiektów, właściwości i metody, pseudozmienna $this, konstruktor i destruktor oraz 16 pytań quizowych.
Klasa to przepis, a obiekt to konkretna rzecz zrobiona według tego przepisu. Klasę definiujemy słowem class , a obiekt tworzymy operatorem new .
class Uczen {
public $imie;
public $punkty;
public function przedstaw() {
return $this->imie . ' ma ' . $this->punkty . ' pkt';
}
}
$ola = new Uczen();
$ola->imie = 'Ola';
$ola->punkty = 18;
echo $ola->przedstaw();
class Uczen {
public $imie;
public $punkty;
public function przedstaw() {
return $this->imie . ' ma ' . $this->punkty . ' pkt';
}
}
$ola = new Uczen();
$ola->imie = 'Ola';
$ola->punkty = 18;
echo $ola->przedstaw();
Czym jest klasa?
Poprawna: b) Klasa opisuje, jak zbudować obiekt.
Właściwości deklarujemy w klasie, najczęściej z modyfikatorem dostępu. Metody to funkcje w klasie; mają dostęp do właściwości przez $this , które oznacza „ten obiekt”.
class Prostokat {
public $bokA;
public $bokB;
public function pole() {
return $this->bokA * $this->bokB;
}
public function obwod() {
return 2 * ($this->bokA + $this->bokB);
}
}
$p = new Prostokat();
$p->bokA = 4;
$p->bokB = 3;
echo 'Pole: ' . $p->pole() . ', obwod: ' . $p->obwod();
class Prostokat {
public $bokA;
public $bokB;
public function pole() {
return $this->bokA * $this->bokB;
}
public function obwod() {
return 2 * ($this->bokA + $this->bokB);
}
}
$p = new Prostokat();
$p->bokA = 4;
$p->bokB = 3;
echo 'Pole: ' . $p->pole() . ', obwod: ' . $p->obwod();
Co oznacza $this?
Poprawna: c) $this wskazuje obiekt, na którym wywołano metodę.
Konstruktor __construct() wykonuje się automatycznie przy tworzeniu obiektu. W nim ustawiamy wartości początkowe, żeby obiekt nigdy nie był „pusty”.
class Uczen {
public $imie;
public $punkty;
public function __construct($imie, $punkty = 0) {
$this->imie = $imie;
$this->punkty = $punkty;
}
}
$ola = new Uczen('Ola', 18);
$jan = new Uczen('Jan');
echo $ola->imie . ' ' . $ola->punkty . ' / ' . $jan->punkty;
class Uczen {
public $imie;
public $punkty;
public function __construct($imie, $punkty = 0) {
$this->imie = $imie;
$this->punkty = $punkty;
}
}
$ola = new Uczen('Ola', 18);
$jan = new Uczen('Jan');
echo $ola->imie . ' ' . $ola->punkty . ' / ' . $jan->punkty;
Kiedy działa konstruktor?
Poprawna: b) Konstruktor uruchamia się w chwili new.