ООП урок 2 – създаване на клас
След първия урок за OOP, който написах снощи, реших да пусна и втори, а имено нещо като второ въведение в OOP, тъй като предишният беше главно терминология. В този урок ще създадем първия ни клас и впоследствие обект.
Ето примерен клас:
class MathOperations {
public $var=6;
public function subirane($a,$b)
{
return $a+$b;
}
public function izvajdane($a,$b)
{
return $a-$b;
}
}
Това е най-обикновен клас с два метода – subirane и izvajdane. В случая метода subirane събира две числа и връща резултата, а метода izvajdane извжда $a-$b и връща резултата. Ние капсулирахме двата метода като public – т.е. те могат да бъдат викани в класа и извън класа. Можете и да не пишете public, ако смятате те да са публични, но е хубаво да се пише – просто в случай, че някой друг програмист седне да проверява да му е по-лесно четенето.
Сега ще създадем и обект. Както споменах в предния урок това става с ключовата дума new. В част от случаите (и в нашия) някаква променлива трябва да си присвои този обект. Ето и как става.
$myObject = new MathOperations();
Сега вече в $myObject се съдържа всичката информация за обекта MathOperations. Защо има () след MathOperations? Ами просто обектите също могат да приемат някакви стойности. По подразбиране не приема, но с магическия метод __construct, който се вика попринцип от php, но вие можете да си го напишете и конфигурирате по свои усмотрения, можете да избирате някакви параметри да се приемат от този обект. Нещо като при функциите. Всъщност вие ще го правите това, но когато напреднете още малко. В следващите уроци ще ви обясня за магическия метод __construct – какво прави, за какво е полезен и т.н.
Така… създадохме обект, $myObject го присвои, но нищо не излиза на екрана. Нормално, защото не сме извикали никой от методите (можем и свойства да викаме по същия начин).
Сега ще извикаме метода subirane, при което ще съберем 5 и 6. Как става това? Ето:
echo $myObject->subirane(5,6);
На вашият екран би трябвало да се покаже 11. Сега ще извикаме метода izvajdane
echo $myObject->izvajdane(10,7);
На вашият екран би трябвало да се покаже 3.
Сега ше извикаме и свойство.
echo $myObject->var;
Ше се покаже 6.
Как ги изкарахме. Пишем си стандартно едно echo за да визуализираме информация, после пишем промеливата, която е присвоила даден обект, после пишем ->, после пишем метода и вече ако има някакви параметри, които трябва да въведем ( в нашия случай $a и $b ) ние ги въвеждаме като стандартна функция. Т.е. izvajdane(10,7) примерно. Защо е -> не мога да обясня – свържете се с пичовете, които са създали php
В един файл може да има безброй много класове и могат да се създават колкото си искате обекти дори от един клас стига да ви позволява компютъра, на който сте.
Примерно:
$mySecondObject = new MathOperations();
И няма да излезе абсолютно никаква грешка.
Можем и да напишем
$myThirdObject = new MathOperations();
и пак няма да има грешка.
Надявам се, че съм поднесал достатъчно добре информацията
Критики и съвети в коментарите ![]()
Очаквайте още уроци за ООП и разни нещица, които са ми станали интересни в PHP
Related posts:
Браво, много добре и кратко обяснено. Тепърва се запознавам с ООП и ми се струва супер интересно, жалко само,че попадах на кофти литература поне до момента. Надявам се да напишеш и някои друг урок по тази тема.