Классы — это хлеб с маслом (или фалафель и пиво) в объектно-ориентированном программировании. Чтобы дать простое определение, классы в основном являются шаблоном для создания объектов. Как ни странно, хотя в Ruby есть поговорка «Все является объектом», классы таковыми не являются. Они являются шаблоном для создания объектов.

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

Как создать новый курс

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

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

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

Для инициализации таких свойств мы используем метод инициализации в Ruby и метод конструктора в Javascript.

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

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

Как создать объект из класса

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

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

Методы класса и экземпляра

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

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

До сих пор мы видели, что методы, которые вы определяете в классе, могут использоваться для объектов, созданных из класса. Но можно ли их вызвать на самом классе? Не совсем. Если вы хотите создать метод, который будет работать для самого класса, у вас есть возможность создать так называемый метод класса в Ruby и аналогичный статическийметод в Javascript.

Методы класса (или статические методы, как они называются в Javascript) полезны, когда вы хотите сделать с классом что-то, что не имеет ничего общего с его экземпляром. Они часто используются для служебных функций, fx. для Active Record в Ruby, а также в Javascript.

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

Методы класса создаются путем помещения ключевого слова self перед именем метода в Ruby или перед ключевым словом static в Javascript.

Как проверить принадлежность объекта к классу

Чтобы увидеть, является ли объект экземпляром данного класса, и Ruby, и Javascript предлагают нам вызывать встроенные методы. Если вы знаете класс, и вы также

знаете объект, то вы можете проверить с помощью instance_of?(Ruby) или instanceOf (Javascript). Эти методы дадут вам простой ответ «да» или «нет» (логическое значение). Это полезно, например, если у вас есть готовые классные методы экземпляра и вы хотите быть уверены, что можете использовать их для данного объекта.

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

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

Надеюсь, вы получили больше ясности и понимания того, что такое классы, как они работают и как их можно использовать как в Javascript, так и в Ruby. Различия между двумя языками не слишком велики, поскольку оба они объектно-ориентированы, и разница заключается в основном в небольшом изменении синтаксиса. В любом случае, я считаю очень полезным помнить о них, т.е. Смотрите их рядом друг с другом, чтобы я не тратил время на изучение синтаксиса ruby ​​для Javascript и наоборот.

Спасибо и удачного дня!