<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mihalytch personal blog &#187; класс</title>
	<atom:link href="http://mihalytch.org.ua/tag/klass/feed" rel="self" type="application/rss+xml" />
	<link>http://mihalytch.org.ua</link>
	<description>Все о высоких технологиях</description>
	<lastBuildDate>Mon, 05 Dec 2011 16:05:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Наследование в ООП</title>
		<link>http://mihalytch.org.ua/programming/php/inheritance-in-oop.html</link>
		<comments>http://mihalytch.org.ua/programming/php/inheritance-in-oop.html#comments</comments>
		<pubDate>Sun, 23 Mar 2008 16:37:39 +0000</pubDate>
		<dc:creator>mihal</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[класс]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/programming/php/inheritance-in-oop.html</guid>
		<description><![CDATA[Когда необходимо создать класс со свойствами и методами подобными существующему классу, используется наследование. Следует отметить, что наследование есть ключевым понятием [...]]]></description>
			<content:encoded><![CDATA[<p>Когда необходимо создать класс со свойствами и методами подобными существующему классу, используется <strong>наследование</strong>. Следует отметить, что наследование есть ключевым понятием в объектно-ориентированной технологии программирования.<br />
<span id="more-19"></span></p>
<p>Способность класса расширять существующий класс поддерживается в PHP. При расширении класса дочерний наследует все свойства и методы родительского за исключением частных атрибутов и методов. Есть возможность создавать новые методы и атрибуты, а также подменять унаследованные у родительского. Отношение унаследования между <em>родительским</em> и <em>дочерным</em> классом определяют с помощью ключевого слова <em>extends</em>.</p>
<p><em>Родительский</em> класс еще называют <em>базовым</em> или <em>суперклассом</em>.</p>
<p>Ниже представим синтаксис, используемый для определения отношения наследования:</p>
<pre><strong>class</strong> НовыйКласс <strong>extends</strong> РодительскийКласс <strong>{</strong></pre>
<pre>   <em>// методы и атрибуты дочернего класса  </em></pre>
<pre><strong>}</strong></pre>
<p><em>НовыйКласс </em>- имя нового класса, унаследовавшего свойства и методы базового.</p>
<p><em>РодительскийКласс</em> &#8211; имя базового класса.</p>
<p>В фигурных скобках описывают компоненты создаваемого класса.</p>
<p>При наследовании объявленные методы и атрибуты со спецификаторами доступа <em>public</em> и <em>private</em> ведут себя по отношению к дочернему классу точно так же, как и по отношению к внешней программе. Другими словами, дочернему классу доступны методы и атрибуты родительского только со спецификатором <em>public</em>.</p>
<p>При объявлении компонентов класса со спецификатором <em>protected</em> класс-наследник имеет возможность обращаться к данному свойству или методу, а внешняя программа нет.</p>
]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/programming/php/inheritance-in-oop.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Введение в ООП</title>
		<link>http://mihalytch.org.ua/programming/php/introduction-in-oop.html</link>
		<comments>http://mihalytch.org.ua/programming/php/introduction-in-oop.html#comments</comments>
		<pubDate>Sat, 01 Mar 2008 18:14:23 +0000</pubDate>
		<dc:creator>mihal</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[класс]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/programming/php/%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%be%d0%be%d0%bf.html</guid>
		<description><![CDATA[В ООП (объектно-ориентированном программировании) функции и данные, которыми манипулируют функции, связаны в объекты. Атрибуты (attributes) или свойства (properties) &#8211; данные. [...]]]></description>
			<content:encoded><![CDATA[<p>В <strong>ООП</strong> <em><strong>(объектно-ориентированном программировании)</strong></em> функции и данные, которыми манипулируют функции, связаны в объекты.</p>
<p><strong>Атрибуты (<em>attributes</em>)</strong> или <strong>свойства (<em>properties</em>)</strong> &#8211; данные.<br />
<strong>Методы (<em>methods</em>)</strong> &#8211; функции для обработки вышеупомянутых данных.<br />
<span id="more-17"></span><br />
Объект определяется классом, экземпляром которого он является. Класс определяет методы и атрибуты объекта. Путем создания экземпляра класса создается новый объект, инициализируются все его методы и атрибуты, а также вызывается конструктор (constructor).</p>
<p><strong>Конструктор (<em>constructor</em>)</strong> &#8211; функция, которая выполняет какие-либо начальные действия. В PHP 5 конструктор должен называться &#8211; <em>__construct ()</em>.</p>
<p>Далее приведен пример простого класса <em>TestClass</em>, создание и инициализация его объекта и вызов одного метода.</p>
<pre>&lt;?php</pre>
<pre>class TestClass {</pre>
<pre>	public $name;</pre>
<pre>	public $age;</pre>
<pre></pre>
<pre>	function __construct ($name, $age)  {</pre>
<pre> 		$this-&gt;name = $name;</pre>
<pre>		$this-&gt;age = $age;</pre>
<pre>	}</pre>
<pre></pre>
<pre>	function print_message ()  {</pre>
<pre>		$msg_text = "Привет, ".$this-&gt;name."!&lt;br /&gt;";</pre>
<pre>		$msg_text .= "Вам: ".$this-&gt;age" лет.";</pre>
<pre> 		return</pre>
<pre>	}</pre>
<pre>}</pre>
<pre></pre>
<pre>$new_class = TestClass ('Вася Пупкин', 29);</pre>
<pre>echo $new_class-&gt;print_message ();</pre>
<pre>?&gt;</pre>
<p>Результат выполнения кода приведенного выше:</p>
<pre>Привет, Вася Пупкин!</pre>
<pre>Вам: 29 лет.</pre>
<p>В данном примере конструктор инициализирует 2 атрибута: имя и возраст. Метод возвращает текст сообщения.</p>
<p><em>$this</em> &#8211; это псевдопеременная, которая автоматически создается во всех методах класса и представляет объект (в данном случае класса <em>TestClass)</em>. Для доступа к свойствам или методам класса используют оператор <em>-&gt;</em>.</p>
<p>Ниже приведены свойства, которыми обладают объкты:</p>
<p><a href="http://mihalytch.org.ua/programming/php/inheritance-in-oop.html" ><strong>Наследование (<em>inheritance</em>)</strong></a> &#8211; способность порождать из существующих классов новые, наследовать или переопределять их свойства и методы.</p>
<p><strong>Инкапсуляция (<em>encapsulation</em>)</strong> &#8211; способность скрывать данные от пользователей класса.</p>
<p><strong>Полиморфизм (<em>polymorphism</em>) </strong>- когда несколько классов реализуют одни и те же внешние методы. И есть возможность их попеременного использования в функциях.</p>
<p><strong>Специальные методы (<em>special methods</em>)</strong> &#8211; это свойство указывает на то, что классы имеют событийные обратные вызовы, которые выполняются при возникновении распространенных событий. Например: при создании, копировании, уничтожении и т.д.</p>
<p>Подробное описание вышеперечисленных свойств будет приведено в следующих статьях.</p>
]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/programming/php/introduction-in-oop.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

