ООП   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 - визуальные среды

Знаете ли Вы, что релятивизм (СТО и ОТО) не является истинной наукой? - Истинная наука обязательно опирается на причинность и законы природы, данные нам в физических явлениях (фактах). В отличие от этого СТО и ОТО построены на аксиоматических постулатах, то есть принципиально недоказуемых догматах, в которые обязаны верить последователи этих учений. То есть релятивизм есть форма религии, культа, раздуваемого политической машиной мифического авторитета Эйнштейна и верных его последователей, возводимых в ранг святых от релятивистской физики. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 14.11.2019 - 19:52: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
14.11.2019 - 12:35: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Светланы Вислобоковой - Карим_Хайдаров.
13.11.2019 - 19:20: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
13.11.2019 - 11:05: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
12.11.2019 - 19:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Марины Мелиховой - Карим_Хайдаров.
12.11.2019 - 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Бориса Сергеевича Миронова - Карим_Хайдаров.
12.11.2019 - 11:49: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Веры Лесиной - Карим_Хайдаров.
11.11.2019 - 00:24: СОВЕСТЬ - Conscience -> РУССКИЙ МИР - Карим_Хайдаров.
10.11.2019 - 23:14: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Кирилла Мямлина - Карим_Хайдаров.
08.11.2019 - 06:42: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вячеслава Осиевского - Карим_Хайдаров.
05.11.2019 - 21:56: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Декларация Академической Свободы - Карим_Хайдаров.
04.11.2019 - 12:41: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> КОМПЬЮТЕРНО-СЕТЕВАЯ БЕЗОПАСНОСТЬ ДЛЯ ВСЕХ - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution