Я начал писать компьютерные программы исключительно для удовольствия.

Изначально я хотел подшутить над своими друзьями и разыграть другие шутки, мне немного поздно пришло в голову, что я собираюсь серьезно заняться компьютерным программированием в ближайшем будущем.

Где-то в этом году кто-то предложил мне одноразовую работу, на самом деле мою первую работу веб-разработчика - он попросил меня создать базовый веб-сайт, и я подумал, что это будет прекрасное время, чтобы применить все, чему я научился, на практике.

На выполнение проекта у меня ушло около двух недель. В конце концов, я создал что-то достаточно хорошее, чтобы им можно было пользоваться, а также хвастливо нарушил все правила, регулирующие ООП и программирование в целом. Что ж, думаю, меня нельзя полностью винить, 95 процентов кода состояло из случайных ответов stackoverflow.

В то время я считал, что если кажется, что это работает, то, вероятно, работает.

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

Осознав это, я начал целенаправленно работать над тем, чтобы сделать свой код более читабельным, взял привычку делать отступы, а также обязательно комментировал каждый нечеткий блок кода в своих программах, но все же моих усилий было недостаточно.

Иногда я смотрел на код лучших разработчиков вокруг меня и встречал некоторые ключевые слова, которые я использовал слишком часто, но никогда не понимал, что они означают. Я также не был хорошо знаком с основами ООП, и это было самой тревожной из моих проблем. В то время я пробовал изучать и понимать ООП, и это оказалось трудным, как и все остальное.

Эта статья познакомит вас с основными концепциями ООП с примерами, но я бы хотел прочитать ее, когда у меня были проблемы с ООП.

Начнем с понимания, что такое объектно-ориентированное программирование.

Объектно-ориентированное программирование - это стиль программирования, который поддерживает концепцию определения всех свойств и функций объекта в классе, это обеспечивает возможность многократного использования кода и является гораздо более эффективным подходом к программированию, чем предыдущие парадигмы.

Теперь возникает вопрос, что такое класс и что он должен содержать? Как мы узнаем, что у нас достаточно свойств и функций, чтобы их можно было сгруппировать в класс?

Чтобы ответить на эти вопросы, давайте подумаем следующим образом; класс может содержать весь код, который имеет дело с определенным элементом программы. Пример, объясняющий это: предположим, что у нас есть общая программа, которая выполняет множество функций, но у нас есть меньшая часть этой программы, которая определяет элемент «пользователь», мы можем сгруппировать весь наш код, относящийся к пользовательским свойствам и пользовательским функциям. в пределах одного класса, и это было бы полезно для нашей программы в целом во многих отношениях.

Примеры кода написаны на PHP и сделаны краткими.

Мы должны называть класс в соответствии с тем, что он есть, для удобства чтения, а также принято начинать имя класса с заглавной буквы, если имя класса содержит два слова или более, то оно должно быть написано в верхнем регистре.

class User {
// The code
}

У класса могут быть свойства; Свойства - это переменные внутри класса, эти переменные могут быть инициализированы для хранения значений или могут быть оставлены неинициализированными (в некоторых языках программирования они должны быть инициализированы перед компиляцией исходного кода).

Мы также можем указать, насколько доступны эти свойства, используя ключевые слова модификатора доступа.

class User {
protected $age;
public $name;
public $clothed = true;
}

А теперь самое интересное: мы можем перейти к созданию объектов одного и того же класса, и каждый объект будет иметь свой собственный набор свойств, уникальных только для этого объекта.

$firstUser = new User ();
$secondUser = new User ();
$thirdUser = new User ();

Теперь вам может быть интересно, что хорошего в классах и зачем нам вообще создавать экземпляры (объекты) классов? Подумайте об этом таким образом; В прошлом процедурный подход к программированию позволял всем переменным и функциям жить вместе в глобальной области всей программы, то есть все они жили на одной поверхности и, возможно, могли взаимодействовать друг с другом, просто вызывая их имена и тому подобное.

С классами это не так; класс определяет область действия, выходящую за пределы глобальной области видимости, каждая операция, выполняемая в области действия класса, полностью скрыта от глобальной области видимости. Код, вложенный в область видимости класса, инкапсулируется классом и недоступен для использования в глобальной области видимости, поэтому для доступа к коду внутри класса и его использования необходимо создать экземпляр класса. Этот экземпляр класса называется объектом.

Мы можем создать столько объектов класса, сколько захотим, и каждый объект будет отличаться от другого. При создании или создании экземпляра объекта объект наследует все свойства своего класса и может получать уникальные значения для своих собственных свойств.

Стоит помнить, что класс определяет структуру и поведение объектов, которые будут созданы из него.

Получить значение в свойстве объекта очень просто. В PHP это можно сделать, сославшись на имя объекта, поставив тире больше знака (- ›), а затем имя свойства.

echo $firstUser->age;
echo $secondUSer->name;
echo $thirdUser->clothed;

Результат:

12
Иордания
ложь

Также стоит помнить, что знак $ прикрепляется только к имени объекта, но не к имени свойства.

Установка нового значения для свойства объекта ничем не отличается, мы просто присоединяем справа оператор присваивания, и значение присваивается свойству объекта.

$firstUser->age = 20;
$secondUSer->name = “Castiel”;
$thirdUser->clothed = true;

Теперь печать свойства этих объектов даст:

20
Кастиэль
Верно

Это было весело!

Классы удобны в использовании, идея свойств также блестящая, но подумайте об этом. Представьте себе класс, который определяет пользователей, этот класс говорит, что все пользователи должны иметь имя и свойство возраста, это здорово, но этот класс не определяет функциональные возможности, связанные с пользовательским объектом, объекты, скорее всего, будут выполнять операции с использованием функций и эти функции называются методами, класс должен определять методы для своих объектов.

Примерами функций для пользовательского класса, выполняемых методами, могут быть «создать сообщение», «оставить комментарий» и другие подобные.

class User{
protected $age; 
public $name; 
public $clothed = true; 
public function makePost() { 
// code for making a post go here;
}

Мы только что включили простой метод makePost () в наш пользовательский класс, обратите внимание, что мы добавляем к методу префикс с модификатором публичного доступа, чтобы указать, что этот метод может быть вызван из глобальной области конкретным экземпляром класса.

Принято называть метод верблюжьими строчными буквами. Названия методов должны соответствовать выполняемым ими функциям, и они должны быть краткими.

Мы вызываем методы аналогично тому, как мы обращаемся к свойствам объекта; имя объекта, тире со знаком (- ›) и название метода.

$firstUser = new User();
$firstUser->makePost();

Первая строка приведенного выше кода создала объект пользовательского класса, а другая строка вызвала метод makePost (). В реальном программировании метод makepost () лучше будет иметь параметр для получения текста, созданного пользователем, и, возможно, сохранения его в базе данных, но это всего лишь примеры, и все остается очень простым, поскольку это всего лишь введение в основы ООП.

Теперь давайте посмотрим, как много мы сделали, мы узнали об основной идее ООП и теперь знаем, что означает ООП в более ясных терминах, мы также увидели, почему классы и объекты отлично подходят для современного программирования. Молодцы, мы столько сделали! Это должно помочь заложить основу, если вы хотите узнать больше об ООП.