ООП   PHP   web   4GL - визуальные среды

Объектно-ориентированное программирование на PHP

Стало стандартом, что изучение ООП всегда начинается с понятия «класса». Давайте и мы не будем отходить от этих правил. Идея объектно-ориентированного программирования заключается в том, что в ООП мы начинает думать сущностями. А что такое сущность? - Это все, что нас окружает, то есть это обычные объекты. А объектом у нас может быть все что угодно (автомобиль, дом, компьютер и т.д.). Что такое класс? - Класс описывает эти объекты, то есть является их формальной моделью.

Например, у нас есть объект «автомобиль». Прежде чем его собрать, нам нужен чертеж. В этом чертеже должно прописываться, то, что мы должны знать об этом автомобиле — это то, что автомобиль обладает некоторыми свойствами (цвет, размер, максимальная скорость, уровень безопасности) и методами (автомобиль может двигаться вперед и назад, поворачивать руль, следить за усталостью водителя и т.д.).

В объектно-ориентированном программировании для того, чтобы описать такой чертеж существует понятие «класс». «Класс» обязательно должен включать в себя описание таких понятий, как свойства и методы рассматриваемого объекта.

Итак, как же записывается «класс»? Записывается он следующим образом — вначале идет ключевое слово class, затем имя класса и фигурные скобки, в которых описываются свойства и методы:

<?php
class Car{
//описание свойств
//описание методов
}
?>

Обратите внимание, что имена классов регистрозависимы.

Основываясь на этом классе можно создавать объекты или в ООП они еще называются «экземпляры класса». Объект класса создается следующим образом — ставится переменная, далее идет ключевое new и имя класса с круглыми скобками:

<?php
//описание объекта 
class Car{
//описание свойств
//описание методов
}
//создание объекта
$car = new Car();
?>

От одного класса (чертежа) можно создавать несколько экземпляров класса или объектов (машин):

<?php
//описание объекта 
class Car{
//описание свойств
//описание методов
}
//создание объекта
$car1 = new Car();
$car2 = new Car();
?>

Теперь давайте разберем, что же такое свойства и методы объекта. Начнем с свойств. Это обычные переменные. Но не совсем. Если переменная находится где-то в коде, то это обычная переменная. А если переменная находится в классе, то эта переменная — свойство.

Например, у автомобиля есть год выпуска. Соответственно инициализируем переменную $year. Мы можем присвоить ей значение по умолчание, например 2003. Также у автомобиля есть максимальная скорость, инициализируем переменную $speed. Еще у автомобиля есть марка, делаем переменную $model. Все эти переменные — это свойства объекта, то есть нашего автомобиля.

Однако в объектно-ориентированном программировании перед такими переменными-свойствами принято ставить модификаторы доступа. Что такое модификаторы доступа? Это ключевые слова, которые обозначают возможность доступа или возможность обратиться из методов объекта или из экземпляров класса к свойствам этого объекта. Эти ключевые слова записываются как public, protected, private. Более подробно о них мы поговорим чуть позже. А пока будем использовать модификатор public:

<?php
//описание объекта 
class Car{
	public $year = 2003;
	public $speed;
	public $model;
}
//создание объекта
$car1 = new Car();
$car2 = new Car();
?>

Теперь, смотрите, что у нас здесь происходит. Мы из класса создали два объекта или два экземпляра класса, которые обладают одинаковыми свойствами, два из которых не определены ($speed, $model) и одним свойством, у которого есть значение по умолчанию ($year = 2003).

Я хочу обратиться к одному из свойств из одного из созданного объекта. Как мне это сделать? Для этого я пишу имя переменной, которой присвоен объект, далее ставлю вот такую стрелку -> (тире и знак больше) и имя свойства, но без знака доллара:

<?php
//описание объекта 
class Car{
	public $year = 2003;
	public $speed;
	public $model;
}
//создание объекта
$car1 = new Car();
$car2 = new Car();
echo $car1->year;//обращение к свойству объекта
?>

Далее я хочу присвоить первому и второму автомобилю скорость и модель. Так как изначально у нас нет значения скорости по умолчанию и нет значения модели, то я это сделаю таким образом: $car1->speed = 210, $car1->model = «bmw», $car2->speed = 260, $car2->model = «lexus»:

<?php
//описание объекта 
class Car{
	public $year = 2003;
	public $speed;
	public $model;
}
//создание объекта
$car1 = new Car();
$car1->speed = 210;//присвоение значения свойству объекта
$car1->model = "bmw";//присвоение значения свойству объекта

$car2 = new Car();
$car2->speed = 260;//присвоение значения свойству объекта
$car2->model = "lexus";//присвоение значения свойству объекта
echo $car2->year;//обращение к свойству объекта
?>

В следующем уроке мы с вами выполним лабораторную работу, и продолжим изучение объектно-ориентированного программирования.

Евгений Владимирович Андреев

ООП   PHP   web   4GL - визуальные среды

(время поиска примерно 20 секунд)

Знаете ли Вы, что спецификация - это документ, описывающий соглашение между разработчиками и пользователями. Разработчик берется написать модуль, а пользователь соглашается не полагаться на знания о том, как именно этот модуль реализован, т.е. не предполагать ничего такого, что не было бы указано в спецификации. Такое соглашение позволяет разделить анализ реализации от собственно использования программы. Спецификации дают возможность создавать логические основы, позволяющие успешно "разделять и властвовать".

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 01.10.2019 - 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вячеслава Осиевского - Карим_Хайдаров.
30.09.2019 - 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Дэйвида Дюка - Карим_Хайдаров.
30.09.2019 - 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Владимира Васильевича Квачкова - Карим_Хайдаров.
29.09.2019 - 19:30: СОВЕСТЬ - Conscience -> РУССКИЙ МИР - Карим_Хайдаров.
29.09.2019 - 09:21: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> КОЛЛАПС МИРОВОЙ ФИНАНСОВОЙ СИСТЕМЫ - Карим_Хайдаров.
29.09.2019 - 07:41: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Михаила Делягина - Карим_Хайдаров.
26.09.2019 - 17:35: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Пешехонова - Карим_Хайдаров.
26.09.2019 - 16:35: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
26.09.2019 - 08:33: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от О.Н. Четвериковой - Карим_Хайдаров.
26.09.2019 - 06:29: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Ю.Ю. Болдырева - Карим_Хайдаров.
24.09.2019 - 03:34: ТЕОРЕТИЗИРОВАНИЕ И МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ - Theorizing and Mathematical Design -> ФУТУРОЛОГИЯ - прогнозы на будущее - Карим_Хайдаров.
24.09.2019 - 03:32: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> "Зенит"ы с "Протон"ами будут падать - Карим_Хайдаров.
Bourabai Research Institution home page

Боровское исследовательское учреждение - Bourabai Research Bourabai Research Institution