Обект (програмиране): Разлика между версии

Изтрито е съдържание Добавено е съдържание
Редакция без резюме
StilianK (беседа | приноси)
Редакция без резюме
Ред 132:
He said: GRRRRRRRAAAUUUU
</source>
 
== Създаване и освобождаване на обекти в [[:bg:PHP|PHP]] ==
<source lang="php">
<?php
class Lion
{
public $age;
public $sex;
function set_age($inputAge)
{
$this -> age = $inputAge;
}
function get_age()
{
return $this -> age;
}
function set_sex($inputSex)
{
$this -> sex = $inputSex;
}
function get_sex()
{
return $this -> sex;
}
function Hunting()
{
$isHunting = "can";
if (age > 10)
{
$isHunting = "can't";
}
return $isHunting;
}
function LionVoice()
{
return "My lion said: GRRRRRRRAAAUUUU";
}
}
 
$myLion = new Lion();
$myLion->set_age(2);
$myLion->set_sex("male");
echo("My ".$myLion->get_age()." years old lion is ".$myLion->get_sex().". My lion ".$myLion->Hunting()." hunt. ".$myLion->LionVoice());
?>
</source>
 
Създаването на обекти в езика PHP се осъществява чрез ключовата дума new, която създава нова инстанция на класа. Достъпването до методи на класа става използвайки синтаксиса: „$обект -> функция(параметър);“. Параметрите са нужни само ако функцията изисква такива.
 
За да се използва конструктор в PHP е нужно името на функцията, която ще се изпълнява при всяко инстанциране да съвпада с името на класа. В примера се използва конструктора Lion, за да се зададат първоначалните стойности за пол и години на новото лъвче.
 
Във версия PHP 5 не е изцяло довършена концепцията за капсулиране на данните(да се избира дали атрибутите да бъдат достъпни извън класа). Добре е обаче да се използват функции за достъп(setAge и getAge спрямо примерния код), тъй като при премахване или добавяне на някаква нова проверка за валидността на данните подавани към този атрибут се налага промяна единствено във функциите за достъп до този атрибут.
 
За освобождаването на паметта в PHP от ненужните обекти и променливи се грижи garbage collector, който открива автоматично всички ресурси към които вече няма референции(не се използват).
 
 
== Използвана литература ==