Что это обозначает?
Программирование — увлекательная тема, с ключевыми терминами и идеологиями, которые могут показаться сложными и сложными. Эти сложности могут отпугнуть других от изучения этой замечательной темы, увеличивая разрыв между тем, сколько людей могут кодировать и сколько людей не могут. Сегодня мы сосредоточимся на Ориентации объекта, но для того, чтобы я мог включить других, я не буду говорить о том, как работает технический код, до самого конца. Случайный читатель должен быть в состоянии прочитать 75% этого блога и быть настолько увлеченным темой, что ему будет интересно узнать, как она связана с кодом.
Ориентация объекта
Давайте поговорим о том, что такое объект и как он связан с компьютерами. Словарь Merriam Webster Dictionary определяет Объект как нечто материальное, что может быть воспринято органами чувств, это определение имеет смысл. Мяч, лего, мой айфон и домик. Что общего у всех этих вещей? Все они объекты. Все они — нечто материальное, что интерпретируется нашим мозгом как мяч, лего, мой айфон и дом. Однако подумайте, чем вышеперечисленные объекты отличаются друг от друга? Вы можете составить длинный список вещей, которые отличают все объекты друг от друга, все эти вещи сводятся к атрибутам объектов. Возьмем, к примеру, дом.
Дом имеет простые атрибуты, которые делают его домом. Перечислим несколько:
Дом
- Крыша
- Окно(а)
- Дверь(и)
- Номера)
- Ванная(ые)
да. Я уверен, что вы можете придумать больше вещей, которые есть в доме, но давайте пока рассмотрим это как план. Любой может согласиться с тем, что дом имеет вышеперечисленные атрибуты и что эти атрибуты необходимы для дома. Вы можете подумать сейчас, а как это относится к компьютерам? Что ж, давайте поговорим о компьютерах. Как мы можем связать ранее обсуждавшееся определение Объекта с компьютерами? Что ж, если Объект для людей — это «нечто материальное, что может быть воспринято органами чувств», тогда для компьютера это должно быть «нечто цифровое, что может понять компьютер». Да, это действительно так просто! В Code мы можем создать чертеж под названием «Дом» и присвоить ему вышеуказанные атрибуты, и каждый раз, когда мы хотим создать новый дом, мы просто обращаемся к исходному чертежу и вводим значения, которые хотим иметь.
Например: Я хочу построить новый дом. Назовем его «Ивы».
Ивы = Новый дом
- 1 крыша
- 4 окна
- 4 двери
- 2 комнаты
- 2.5 Ванные комнаты
Мой новый дом «Ивы» теперь является объектом, который я создал по чертежу «Дома». Теперь давайте будем честными, для того, чтобы построить дом, требуется гораздо больше времени, усилий и строительства, и я наверняка хотел бы иметь в своем доме больше, чем эти 5 атрибутов. Точно так же в программировании нужно создавать более сложные объекты с добавлением гораздо большего количества атрибутов, предел — ваше воображение, но пока это основы того, как объекты работают в программировании.
Код
Теперь, когда у нас есть довольно глубокое понимание того, что такое объект, давайте рассмотрим, как эти объекты будут отображаться в коде. В следующих примерах я буду ссылаться только на то, как это работает в программе Ruby, однако те же принципы применимы и к другим программам.
Итак, вопрос в том, как нам перевести наш дом «Ивы» в код. Что ж, сначала мы начнем с создания плана нашего Дома:
class House end
Класс — это схема того, как создаются все остальные объекты. Это буквально лист бумаги, с помощью которого ваши мечты могут стать реальностью. Хорошо, может быть немного драматично, но вы поняли, чтобы двигаться дальше, мы начнем здесь. Давайте продолжим и добавим некоторые атрибуты в наш план.
class House attr_accessor :roof, :windows, :doors, :rooms, :bathrooms def initialize(roof, windows, doors, rooms, bathrooms) @roof = roof @windows = windows @doors = doors @rooms = rooms @bathrooms = bathrooms end end
Здорово! Итак, теперь у нас есть все атрибуты, необходимые для постройки простого дома. Теперь я знаю, что у тебя есть вопросы. Что такое attr_accessor? Что значит инициализировать? Зачем вам нужно включать все эти знаки @ перед атрибутами, что это за концы? и на эти вопросы я скажу так: если вы хотите узнать больше, то вы это сделали. У вас есть что, спросите вы? У вас есть задатки, чтобы стать отличным инженером-программистом. Задавайте вопросы, будьте любопытны, никогда не соглашайтесь на меньшее, всегда старайтесь узнать больше, но пока это ваш план, и с помощью этого плана мы можем построить наш первый дом!
the_willows = House.new(1, 4, 4, 2, 2.5)
Потрясающий! Мы построили наш объект! У нас есть свой дом! Теперь предположим, что я хочу подтвердить, знает ли компьютер, сколько окон в моем доме. Мы можем сказать:
the_willows.windows computer returns #=> 4
Великолепный! Компьютер знает, сколько окон в моем доме, это именно то, что нам нужно, и мы можем применить этот же метод ко всем остальным вещам в моем доме.
the_willows.roof #=> 1 the_willows.windows #=> 4 the_willows.doors #=> 4 the_willows.rooms #=> 2 the_willows.bathrooms #=> 2.5
Вывод
Программирование прекрасно, не так ли? Я надеюсь, что благодаря этому блогу вы обнаружите, что объектная ориентация в программировании немного проще. Теперь идите, поделитесь этим с другом, изучите Ruby, постройте что-нибудь маленькое, постройте что-то грандиозное, но что бы вы ни делали…