Что это обозначает?

Программирование — увлекательная тема, с ключевыми терминами и идеологиями, которые могут показаться сложными и сложными. Эти сложности могут отпугнуть других от изучения этой замечательной темы, увеличивая разрыв между тем, сколько людей могут кодировать и сколько людей не могут. Сегодня мы сосредоточимся на Ориентации объекта, но для того, чтобы я мог включить других, я не буду говорить о том, как работает технический код, до самого конца. Случайный читатель должен быть в состоянии прочитать 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, постройте что-нибудь маленькое, постройте что-то грандиозное, но что бы вы ни делали…