Programowanie obiektowe (OOP) pozwala na organizowanie kodu w strukturę obiektów. OOP w PHP wprowadza zasady takie jak dziedziczenie, polimorfizm, enkapsulacja, a także zagadnienia takie jak konstruktory, metody, właściwości i inne mechanizmy, które umożliwiają tworzenie bardziej modularnych, łatwych w utrzymaniu i rozbudowywanych aplikacji.
Podstawowe pojęcia OOP w PHP
Klasy i Obiekty:
- Klasa to szablon lub blueprint, który definiuje właściwości i zachowania (metody) obiektów.
- Obiekt to instancja klasy, zawierająca konkretne dane i mogąca wykonać metody zdefiniowane w klasie.
Przykład: Definicja klasy i obiektu
<?php
class Samochod {
public $marka;
public $kolor;
// Konstruktor
public function __construct($marka, $kolor) {
$this->marka = $marka;
$this->kolor = $kolor;
}
// Metoda
public function jedz() {
echo "Samochód $this->marka jedzie.<br>";
}
}
// Tworzymy obiekt
$mojSamochod = new Samochod("Toyota", "Czerwony");
echo $mojSamochod->marka . "<br>";
$mojSamochod->jedz();
?>
Metody w PHP
Metody to funkcje zdefiniowane wewnątrz klasy, które operują na danych obiektu i wykonują operacje związane z klasą. Możemy zdefiniować metody statyczne (wywoływane bez tworzenia obiektu) lub niestatyczne (wywoływane na instancji obiektu).
Przykład: Metody w klasie
<?php
class Kalkulator {
public function dodaj($a, $b) {
return $a + $b;
}
public static function pomnoz($a, $b) {
return $a * $b;
}
}
$kalkulator = new Kalkulator();
echo $kalkulator->dodaj(2, 3); // wywołanie metody niestatycznej
echo Kalkulator::pomnoz(2, 3); // wywołanie metody statycznej
?>
Konstruktor w PHP
Konstruktor (__construct
) to specjalna metoda, która jest wywoływana podczas tworzenia obiektu. Pozwala na inicjalizację wartości właściwości obiektu.
Przykład: Konstruktor w PHP
<?php
class Osoba {
public $imie;
public $wiek;
// Konstruktor
public function __construct($imie, $wiek) {
$this->imie = $imie;
$this->wiek = $wiek;
}
public function przedstaw() {
echo "Cześć, mam na imię $this->imie i mam $this->wiek lat.<br>";
}
}
$osoba = new Osoba("Jan", 30);
$osoba->przedstaw();
?>
Dziedziczenie w PHP
Dziedziczenie pozwala jednej klasie przejąć właściwości i metody innej klasy, co umożliwia tworzenie hierarchii klas. Klasa, która dziedziczy, nazywa się klasą potomną, a klasa, z której dziedziczy, to klasa bazowa.
Przykład: Dziedziczenie
<?php
class Zwierze {
public $gatunek;
public function __construct($gatunek) {
$this->gatunek = $gatunek;
}
public function dajGlos() {
echo "Zwierzę wydaje dźwięk.<br>";
}
}
class Pies extends Zwierze {
public function dajGlos() {
echo "Hau hau!<br>";
}
}
$zwierze = new Pies("Pies");
$zwierze->dajGlos(); // Pies wyda dźwięk "Hau hau!"
?>