Авторизация







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

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











< Назад

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





< Назад

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

Выход


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

Главная >> 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
Опубликовал: Сергей Кашурин
Просмотров: 415
Правила перепечатки

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

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

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


24 классных PHP библиотеки, о которых вы должны знать
Для PHP-разработчика, и времени лучшего не придумаешь чем сейчас. Ведь каждый день, появляются всё новые и новые вспомогательные элементы, такие, как например полезные библиотеки.
BARAJA - jQuery плагин создающий великолепные информационные карточки на вашем сайте, экономя драгоценное место
Благодаря этому плагину, элементы могут располагаться как карты в виде стопки, раскладываясь перед нами оригинальным способом. Добавьте к элементам небольшой текст и уникальный рисунок, примените оригинальный эффект преобразования, и ваша страничка преобразится на глазах.
110 бесплатных PSD элементов, для ваших слайдеров, лент, выпадающих меню навигации и аудио видео проигрывателей
Используйте бесплатно распространяемую графику, вместо того, чтобы тратить ваше драгоценное время, особенно, когда дело доходит до веб дизайна. Ведь его вы можете потратить на более нужные вещи, такие как проявление творчества. Чтобы сделать из вашего проекта конфетку, ниже приведены 110 бесплатных PSD элементов для создания слайдеров, лент, выпадающих меню навигации и аудио видео проигрывателей, полученных нами с различных веб-сайтов и отдельных лиц, которые вносят вклад в графику для дизайнеров, абсолютно бесплатно.
Серебряный рубль 1924 года цена скупка-монет.рус
Используйте бесплатно распространяемую графику, вместо того, чтобы тратить ваше драгоценное время, особенно, когда дело доходит до веб дизайна. Ведь его вы можете потратить на более нужные вещи, такие как проявление творчества. Чтобы сделать из вашего проекта конфетку, ниже приведены 110 бесплатных PSD элементов для создания слайдеров, лент, выпадающих меню навигации и аудио видео проигрывателей, полученных нами с различных веб-сайтов и отдельных лиц, которые вносят вклад в графику для дизайнеров, абсолютно бесплатно.

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

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

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

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

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

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

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