Your SlideShare is downloading. ×
Solit 2014, ООП, Соловей Василий
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Solit 2014, ООП, Соловей Василий

63
views

Published on

Василий Соловей, Солигорск. PHP-разработчик в в «Электронном Солигорске». …

Василий Соловей, Солигорск. PHP-разработчик в в «Электронном Солигорске».

«Минусы ООП на примере языка PHP». Development секция. Для разработчиков (начальный и средний уровень).
1. Что есть ООП (легкое повторение уже знакомого)
2. Лучше доверять авторитету мнения, чем мнению авторитета (во всем нужно разбираться основательно, а в ООП тем более)
3. Неизменная скупость в похвалах — верный признак посредственного ума (плюсы ООП)
4. Не все то солнышко, что блестит (основная часть доклада – минусы ООП)
5. Кто владеет информацией, тот владеет ситуацией (пояснение сути доклада:
доклад не принижает и не умоляет достоинств ООП он создан расширить кругозор)
«Начинать никогда не поздно!». Мотивационное выступление. На личном примере, я могу рассказать, что начинать никогда не поздно, и если есть желание – нет повода себе отказывать.
1. Путь в тысячу миль начинается с одного шага (с чего начать)
2. И на верном пути повстречаются распутья (как не сбиться с дороги начав)
3. Кто ты программист? (мой взгляд на программирование)
4. Успех – дитя настойчивости

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
63
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ООП  Что же такое ООП?   ООП — это методология программирования, в основеве которой лежит принцип  описания сущносте проектируемой системы и методов взаимодействия между ними.  При описании сущности испольется такие понятия как класс и объект.    Основные понятия  Класс   Под понятие «Класс» принято понимать нейкий шаблон с описанием  свойств(переменнных) и методов(функций), которыми может обладать нейкая  сущность в системе.     Объект    Сущность в адресном пространстве вычислительной системы, появляющаяся при  создании экземпляра класса или копирования прототипа (например, после запуска  результатов компиляции и связывания исходного кода на выполнение).   Абстракция    Абстрагирование — это способ выделить набор значимых характеристик объекта,  исключая из рассмотрения незначимые. Соответственно, абстракция — это  набор всех таких характеристик.  Инкапсуляция    Инкапсуляция — это свойство системы, позволяющее объединить данные и  методы, работающие с ними в классе, и скрыть детали реализации от  пользователя.  Наследование    Наследование — это свойство системы, позволяющее описать новый класс на  основе уже существующего с частично или полностью заимствующейся  функциональностью. Класс, от которого производится наследование, называется  базовым, родительским или суперклассом. Новый класс — потомком,  наследником или производным классом.   Полиморфизм   Полиморфизм — это свойство системы использовать объекты с одинаковым  интерфейсом без информации о типе и внутренней структуре объекта.    Реализация ООП в PHP    Описание классов в PHP начинаются служебным словом class:  class Имя_класса {  // описание членов класса ­ данных и методов для их обработки  }  Для объявления объекта необходимо использовать оператор new:  Объект = new Имя_класса;  Данные описываются с помощью служебного слова var. Метод описывается так же, как  и обыкновенная функция. Методу также можно передавать параметры.   Пример класса на PHP: 
  • 2. <?php  // Создаем новый класс Coor:  class Coor {  // данные (свойства):  public $name;  protected $addr;    // методы:   function Name() {   echo "<h3>John</h3>";   }    }    // Создаем объект класса Coor:  $object = new Coor;  ?>  Доступ к классам и объектам в PHP  Мы рассмотрели, каким образом описываются классы и создаются объекты. Теперь  нам необходимо получить доступ к членам класса, для этого в PHP предназначен  оператор ­>. Приведем пример:  <?php  // Создаем новый класс Coor:  class Coor {  // данные (свойства):  public $name;    // методы:   function Getname() {   echo "<h3>John</h3>";   }    }    // Создаем объект класса Coor:  $object = new Coor;  // Получаем доступ к членам класса:  $object­>name = "Alex";  echo $object­>name;  // Выводит 'Alex'  // А теперь получим доступ к методу класса (фактически, к функции внутри клас са):  $object­>Getname();  // Выводит 'John' заглавными буквами  ?>  Чтобы получить доступ к членам класса внутри класса, необходимо использовать  указатель $this, который всегда относится к текущему объекту. Модифицированный  метод Getname():  function Getname() { 
  • 3. echo $this­>name;  }  Таким же образом, можно написать метод Setname():  function Setname($name) {  $this­>name = $name;  }  Теперь для изменения имени можно использовать метод Setname():  $object­>Setname("Peter");   $object­>Getname();  А вот и полный листинг кода:  <?php  // Создаем новый класс Coor:  class Coor {  // данные (свойства):  public $name;    // методы:   function Getname() {   echo $this­>name;   }     function Setname($name) {   $this­>name = $name;   }    }    // Создаем объект класса Coor:  $object = new Coor;  // Теперь для изменения имени используем метод Setname():  $object­>Setname("Nick");  // А для доступа, как и прежде, Getname():  $object­>Getname();  // Сценарий выводит 'Nick'  ?>  Указатель $this можно также использовать для доступа к методам, а не только для  доступа к данным:  function Setname($name) {  $this­>name = $name;  $this­>Getname();  }     Наследование и полиморфизм классов в PHP  Наследование классов в PHP  Наследование ­ это не просто создание точной копии  существующего класса, чтобы  потомок мог выполнять такойже функционал, плюс какие­нибудь новые, характерные 
  • 4. только ему функции. Рассмотрим конкретный пример на PHP:  <?php  class Parent {  function parent_funct() { echo "<h1>Это родительская функция</h1>"; }  function test () { echo "<h1>Это родительский класс</h1>"; }  }    class Child extends Parent {  function child_funct() { echo "<h2>Это дочерняя функция</h2>"; }  function test () { echo "<h2>Это дочерний класс</h2>"; }  }    $object = new Parent;  $object = new Child;    $object­>parent_funct(); // Выводит 'Это родительская функция'  $object­>child_funct(); // Выводит 'Это дочерняя функция'  $object­>test(); // Выводит 'Это дочерний класс'  ?>  Ключевое слово extends (см. пример) говорит о том, что дочерний класс Child  наследует все методы и свойства класса Parent. Родительский класс обычно называют  базовым классом или суперклассом, а дочерний класс Child ­ производным или  подклассом.  Полиморфизм классов в PHP  Полиморфизм ­ это свойство базового класса использовать функции производных  классов. Практический пример, показывающий свойство класса ­ полиморфизм:  <?php  class Base {   function funct() {   echo "<h2>Функция базового класса</h2>";   }   function base_funct() {   $this­>funct();   }  }    class Derivative extends Base {   function funct() {   echo "<h3>Функция производного класса</h3>";   }  }    $b = new Base();  $d = new Derivative();    $b­>base_funct();  $d­>funct();  $d­>base_funct();  // Скрипт выводит: 
  • 5.   // Функция базового класса  // Функция производного класса  // Функция производного класса  ?>  В рассмотренном примере функция base_funct() класса Base была перезаписана  одноименной функцией класса Derivative. Функция, переопределенная таким образом,  называется виртуальной.  Все минусы и плюсы более подробно будут описаны в перзентации  Плюсы ООП   считаю, что основными и ярко вырвженными плюсами являются:  1. Класс универсален для создаваемых  объектов и их может быть большое  количество.  2. Инкапсуция  3. Наследование      Минусы:  1. Сложность пониманиия.  2. Избытачность кода — приложение на ООП как правило больше  3. Нреобретение ненужного функционала классами наследниками при расширении  родительского класса.  4. Если допустить ошибку на этапе разработке архитектуры приложения потом сложно  «вклинится» и что то поменять. Если уже возведен n­й этаж сложно сделать подвал с  автомобильной парковкой)  5. Проектирование класса требует большого опыта. Это итеративный процесс, где  приходится учиться на своих же ошибках.   + несколько вырезок из статьи: http://blogerator.ru/page/oop_why­objects­have­failed  В презентации каждый из пунктов будет раскрыт подробно  и с примерами