На примере PHP. Подразумевается, что самые азы программирования блондинка знает. Действующие лица: Преподаватель (П.) Блондинка (Б.) Диалог: П.: Сейчас я тебе объясню принцип объектно-ориентированного программирования Б.: Ну даю… ой… хи-хи, то есть дааавате, объясняйте. П.: Ну так вот. Представь себе, что ты пошла в какой-нибудь магазин… Б.: Ещё б скааазали “гастраааном”. (скривила лицо) Я в бутики толька хааажу. П.: Ну хорошо, зашла ты в бутик. И увидела там шубу. Б.: норкаваю! П.: Да, норковую! И захотела купить. Шуба - это объект, который ты хочешь купить. А вообще Шубы - это класс объектов. В этом классе могут быть различного вида шубы от искуственного меха до соболя. В коде это можно написать: class Shubi { public $tip; } где public означает, что кто угодно может узнать какой тип шубы ты купила. Б.: Кто угодна? И даже Танька Синявская? П.: Ну если Танька Синявская приедет и увидит твою шубу, то да. Значит ты хочешь купить объект, т.е. шубу, которая принадлежит классу “Шубы”. Чтобы это было так, нужно написать: var $shuba1 = new Shubi(); var - это типа “ХАЧУ”; new - это типа “купить новую”
Б.: А пачиму shuba1? П.: Ну а ты разве одну шубу только купишь? Б.: А, ну дааа… (делает вид, что понимает) А, что, я так вот сразу куплю шубу без примерки? П.: Конечно нет. Всё верно. У шубы есть свойства, например, размер. Добавим в класс Shubi это свойство, а потом укажем, какой размер у этой шубы. В итоге код у нас получается такой: class Shubi{ public $tip; public $razmer; } $shuba1 = new Shubi; $shuba1->tip = "norka"; $shuba1->razmer = 53; Б.: Я что толстая тааакая? У меня Соракдивяяятый рааазмер! П.: Ну хорошо, хорошо. Размер 49. Дальше: Купив шубу, задали её размер. А размер - это свойство объекта. И для расчётов можем его получить написав: $razmer_shubi = $shuba1->razmer; т.е. если мы хотим узнать, чему равно какое-нибудь свойство, то нам нужно написать имя объекта, добавить такую стрелочку “->” и написать свойство объекта. Б.: Ну паняла, не дура я. (надулась) П.: Замечательно! Ну, а после того как ты купила шубу, что ты сделаешь? Б.: Нааадену и паеду пааадружкам хвастать. П.: Ага, значит оденешь. Значит совершишь действие. Значит это мы напишем так: $shuba1->odetj(); Что означает, что ты одела шубу. Это называется метод и записывается этот метод в классе в виде функции: class Shubi{ public $tip; public $razmer; function odetj(){ return true; } } Б.: А зааачем odetj со скобочкамиии? П.: А в скобочки записываются параметры действия. Вдруг ты захочешь одеть её задом на перёд. Б.: Я что, дура что лиии? П.: Да. Б.: Чтооо? (в глазах ярость, рука воинственно поднялась, сверкнув ногтями) П.: Ой, в смысле, да нет, конечно. Например, ты не захочешь застёгивать её совсем, а оставить пару пуговичек растёгнутыми. Б.: Ааа, ну ладно. Ааа, как это записать? П.: ну, например, так: $shuba->odetj(2); Б.: Что значит “напримееер”? Может быть подругомууу? П.: Может. Это зависит от того как описать класс Shubi. Б.: Бааалин, ещё это в Shubi записывать! П.: Ну да, смотри: class Shubi{ public $tip; public $razmer; function odetj($pugovici){ return $pugovici; } } у всех шуб, есть каие-то определённые свойства: размер, цвет… Б.: Цвет может быть разный. П.: Конечно, но совсем никакого цвета не бывает. Хоть какой-то цвет будет. Значит свойство “цвет” будет у каждой шубы. Вот как узнать какой цвет у твоей шубы. Б.: Пасмааатреть на неё. П.: нет, я и мею в виду в коде. Б.: Ааааа… ну, наверна, так: $cvet_shubi = $shuba1->cvet; П.: Умничка! (Блондинка сияет) Только предварительно нужно добавить это свойство в класс Shubi. Как? Б.: Наверна, так: class Shubi{ public $tip; public $razmer; public $cvet; function odetj($pugovici){ $rasstegnutie_pugovici = $pugovici; return $rasstegnutie_pugovici; } } П.: Только прежде, чем получить цвет у шубы, нужно задать этот цвет. Это можно сделать либо в классе Shubi, тогда все создаваемые шубы будут одного цвета, хотя не проблема их перекрасить. Либо, ты можешь получить шубу без определённого цвета и сама назначить её любой цвет. Б.: Ага, вот чтоб тааак в жизни было. Одела шубу и скааазала “хачу белую, нет, хачу чёрную”… П.: Дааа… программировать и создавать, практически синонимы. Ну и ещё объекты имеют методы, т. е. действия которые можно совершить с шубой. Теперь сними шубу. Б.: Ага. Выключите свет. П.: Что? Б.: Ой, хи-хи… в смысле написааать? П.: Ну конечно! Б.: Снимаю (пошлый смешок): class Shubi{ public $tip; public $razmer; public $cvet; function odetj($pugovici){ $rasstegnutie_pugovici = $pugovici; return $rasstegnutie_pugovici; } function snjatj(){ return true; } } $shuba1->snjatj(); П.: Великолепно! Ну хватит с тебя на сегодня. Б.: Пабииигу, по бутикам пока не закрыыылись! Источник: http://www.seleckis.lv |