Авторизация







Регистрация / Забыли пароль?

Регистрация нового пользователя











< Назад

Восстановление пароля





< Назад

Добро пожаловать

Выход


Ежедневное обновление статей и уроков, будь в курсе, держи руку на пульсе событий!

Главная >> PHP

PHP для начинающих (10 из 10 частей)


В парадигме программирования, существует такое понятие как процедурная парадигма. В ней, программист пишет программу, состоящую из коллекции самостоятельных процедур, вызывая которые, можно получить доступ к...
 

    Классы и Объекты:

    В парадигме программирования, существует такое понятие как процедурная парадигма. В ней, программист пишет программу, состоящую из коллекции самостоятельных процедур, вызывая которые, можно получить доступ к некоторым возможностям программы. Как мы уже говорили в 8 части, процедурное программирование является лучшим выбором, чем простой неструктурированный программный код. Изначально, весь код писался сплошным, без разделения на процедуры или функции, прошло какое-то время, и программисты придумали новую парадигму называемую Объектно-Ориентированным Программированием, сокращённо ООП, которая обеспечила лучший способ создания и развития больших и сложных систем, нежели программирование с помощью функций. Мы не хотим запутать читателей, нагрузив сложными условиями и преимуществами ООП, на этом этапе, мы рассмотрим необходимые основы.

    В ООП, класс – это конструкция языка, которая используется в качестве шаблона для создания экземпляров класса, называемыми объектами. Данное руководство, шаг за шагом объясняет все шаги создания класса. 

    Создание Класса

    Пример#1

    В приведённом ниже примере, создаётся класс под названием Person. Он имеет две переменные экземпляра: имя и адрес, а так же несколько методов. Переменные экземпляра не доступны за пределами класса, потому что определены как приватные, поэтому, нам нужны будут методы для доступа к ним. Публичные же переменные, могут быть доступны и за пределами класса. Все переменные экземпляра, должны быть конфиденциальными, и должны обладать методами, для доступа к ним. В данном примере, все методы являются общедоступными, в противном случае, они не будут доступны за пределами класса.

    После того как мы создали класс, давайте создадим его экземпляр, и назовём его $p, в общем у нас получится так p = new Person(); Обратите внимание, что объект $p связывает переменные экземпляра и методы вместе, данное ООП свойство называется инкапсуляция.

<?php
class Person
{
//Свойства или переменные экземпляра
private $name;
private $address;
        
//Методы и модели поведения
//Методы set используется для установки переменных экземпляра
              public function setName($aName) 
             {
             $this->name= $aName;
        }
    public function setAddress($aAddress) 
    {
               $this->address= $aAddress;
        }
    //Метод get используется для получения переменных экземпляра
    public function getName() 
    {
               return $this->name;
        }
    public function getAddress() 
    {
                return $this->address;
        }
}//Конец класса

//Создаём объект класса Person
$p = new Person();
//Задаём имя
$p->setName("Иван Павлов");
//Задаём адрес
$p->setAddress("Россия, Волгоград, ул. Свободы");
//Выводим имя
echo $p->getName();
//Выводим адрес
echo $p->getAddress();
?>

    Код выше, выдаст следующий результат:
    Иван Павлов Россия, Волгоград, ул. Свободы

    Конструктор и Деструктор

    Как только мы создали объект класса, вызывается конструктор, который в свою очередь, инициализирует переменные экземпляра и выполняет прочие действия, которые нужны для приведения нашего класса в полную боевую готовность, следовательно, он может быть нам полезен. Аналогичным образом действует деструктор, за тем лишь исключением, что вызывается он в конце работы класса, и разрушает созданные объекты и переменные.

    Пример#2

    Код приведённый ниже, выполняет такие же операции как и пример 1, но реализован он чуть иначе. Здесь, мы инициализируем переменный экземпляра и используем деструктор для их разрушения.

<?php
class Person
{
        //Свойства или переменные экземпляра
        private $name;
    private $address;
        
    //Конструктор по умолчанию
    public function __construct() 
    {
               $this->name= " Иван Павлов ";
           $this->address= " Россия, Волгоград, ул. Свободы ";
       }
          //Деструктор по умолчанию
       function __destruct() 
       {
             //Эта часть кода будет выполнена, когда
         //мы уничтожим объект явно.
       }
    
      //метод get используется для получения переменных экземпляра
    public function getName() 
    {
               return $this->name;
        }
    public function getAddress() 
    {
                return $this->address;
        }
}//Конец класса

//Создаём объект класса Person
$p = new Person();
//Выводим имя
echo $p->getName();
//Выводим адрес
echo $p->getAddress();
?>

    Код выше, выдаст такой же результат как и в примере 1:
    Иван Павлов Россия, Волгоград, ул. Свободы

    Наследственность

    Исходя из названия, наследование-это принцип, по которому дочерний класс может наследовать методы, формы своего родительского класса и работать с его методами своими способами.

    Пример#3

    В этом примере, мы расширим наш класс Person, и создадим дочерний от него класс Student. Подкласс Student, наследует методы и все переменные от родительского класса Person. Метод родительского класса  printMe, будет переписан в дочернем классе. Зачем мы пишем одно и тоже в разных классах? Если метод с тем же именем существует в родительском и дочернем классе, то дочерний объект класса имеет возможность выбора версий данного метода. В данной ситуации, дочерний класс переопределяет метод родительского класса, это называется переопределение метода. Если мы вызовем  метод printMe, он выведет нам информацию о Student, но не о Person. Помните, что данные Person, доступны и в дочернем классе Student.

<?php
class Person
{
        //Свойства или переменные экземпляра
        private $name;
    private $address;
    
       //Функция для печати переменных экземпляра
       public function printMe()
       {
           echo $this->name.", ".$this->address;
       }
}//Конец класса Person

//Класс Student – дочерний класс от Person
class Student extends Person
{
    //Переменные экземпляра, помните, что имена и адреса наследуется от Person
    private $program;
    
    //Конструктор по умолчанию
    public function __construct() 
    {
               $this->name= "Вася Иванов";
           $this->address= "Россия, г.Протвино ул.Садовая";
           $this->program= "ИТ поддержка";
       }
   
       public function printMe()
       {
           echo $this->name.", ".$this->address.", ".$this->program;
       }
}//Конец дочернего класса Student

//создаём объект класса Person
$s = new Student();
//Печатаем
$s->printMe();
?>

    Результат: 
    Вася Иванов Россия, г.Протвино ул.Садовая ИТ поддержка

    В этом руководстве, объекты и классы описаны в коротком варианте, ознакомиться с более расширенной версией, вы можете здесь: http://www.php.net/manual/en/language.oop5.php


Дата публикации: 21.02.2013
Опубликовал: Сергей Кашурин
Просмотров: 416
Правила перепечатки

Правила перепечатки

Уважаемый посетитель сайта!
Ниже преведены условия использования и перепечатки материалов сайта /
Все материалы данного сайта подготовлены для Вас лично мной.

Большая часть материалов сайта - это авторские уроки, остальные, это переводы уроков с английского языка на русский.
Если Вы решили использовать материалы данного сайта где-то на своих ресурсах или в рассылке, то соблюдайте следующие требования:
1. Урок или статья должны перепечатываться «как есть» с сохранением всех ссылок на источник урока, а если это перевод, то и на сайт, авторы которого подготовили его.
2. Ссылки на сайт источника и переводчика обязательно должны быть работоспособными (при нажатии по ссылке человек должен перейти на сайт автора/переводчика). Если Вы перепечатали какой-либо документ, обязательно проверьте ссылку на работоспособность.
3. Искажение информации об авторе, источнике, переводчике при перепечатке материалов запрещено!
4. Содержание урока или статьи при перепечатке не должно подвергаться модификациям и переделке. Все уроки и статьи, размещенные на сайте, должны перепечатываться как есть. Вы не имеете права урезать, исправлять или иным образом коверкать републикуемый документ.
С уважением, Сергей Кашурин– владелец сайта /


arcticModal - простые модальные окна jQuery
В поисках простого плагина для создания модальных окон, я перепробовал кучу вариантов, наткнувшись на arcticModal я остановился. Простота работы, вес самого плагина меня очень порадовали, поэтому поделюсь с вами я именно им, так как сам его проверял.
Colorizer: пользователь сам выберет цвет продукта на вашем сайте
Когда вы выбираете машину, или футболку в интернет магазине, хотелось бы вам самим выбрать для неё цвет? Думаю да. В этой статье, я расскажу вам про плагин Colorizer, с помощью которого, для наших дорогих пользователей, мы сможем предоставить возможность выбора цвета продукта в котором он заинтересован, что оставит о нас приятное впечатление и заявку на покупку. jQuery плагин Colorizer - изменим цвет к лучшему.
23 jQuery плагина для организации слайд-шоу и галерей на сайте
Дорогие Друзья! Сегодня, я хочу познакомить вас с подборкой замечательных jQuery плагинов для создания слайд-шоу и галерей. Все они являются бесплатными и очень просты в установке и настройке.

Уроки и статьи

«Найден Самый Дешевый и Эффективный Способ Рекламы в Интернете!»

Доказанo: ведение своей почтовой рассылки - это самый действенный и дешевый метод рекламы в Интернете.

Используете ли Вы его?

Если нет, то Вы давно теряете свои деньги! Если да, то пришло время вести Вашу почтовую рассылку на самом эффективном инструменте в Рунете - сервисе рассылок SmartResponder.ru

Узнать об этом подробнее >>

Быть в курсе всех событий: