<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Понятие ООП в JavaScript

Понятие ООП в JavaScript

ООП (Объекто-ориентированное программирование) - это принципиально новый вид программирования. ООП используется не только в JavaScript, но и в других языках тоже. И о понятии ООП я Вам и расскажу в этой статье.

В основе ООП лежит объект. Объект - это некая сущность, у которой есть свойства и методы, позволяющие этими свойствами манипулировать. Вот такое сухое определение, но зато полностью отражающее суть объекта. Чтобы стало ещё понятнее, давайте приведу пример из жизни. Самый популярный пример - это автомобиль. Какие свойства могут быть у автомобиля? Например, может быть максимальная скорость, ускорение, количество передач, масса, цвет, текущие координаты местоположения автомобиля и так далее. Теперь, какие могут быть методы ? Это может быть метод "перекраски автомобиля", который занимается перекрашиванием автомобиля в другой цвет. Это может быть метод "движения", которая занимается изменением текущих координат местоположения и так далее.

Думаю, что с объектами всё достаточно понятно.

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

Теперь поговорим о трёх китах ООП: инкапсуляция, наследование и полиморфизм.

Начнём с инкапсуляции. Инкапсуляция - это процесс сокрытия части объекта от пользователя. Для того чтобы было легче понять, что такое инкапсуляция, привожу пример. Допустим, Вы набираете текст в Word. Знаете ли Вы, что в этот момент Вы посылаете огромное количество бит из 0 и 1? Известно ли Вам, как они обрабатываются? Известно ли Вам, как они превращаются в символы, которые Вы видите на экране? И вообще, как происходит вывод на ЖК-монитор? Скорее всего, Вы об этом даже не задумывались. То есть реализация всей этой физики от Вас скрыта. Это и есть инкапсуляция. Вы можете спокойно использовать объекты и их функциональность, но при этом Вам совсем не надо знать, как это работает. И это очень удобно и для пользователя, и для программиста.

Теперь поговорим о наследовании. Наследование - механизм ООП, позволяющий создавать классы на основе других классов, забирая их свойства и методы. Снова пример из жизни. Ведь согласитесь, что объект "Автомобиль" - это абстрактность. Ведь существуют элементарно легковые и грузовые автомобили. То есть родительский класс (или как его ещё называют супер-класс) "Автомобиль" и два дочерних (или наследника, или производных): "Легковые автомобили" и "Грузовые автомобили". Принцип легковых и грузовых автомобилей один и тот же. То есть у каждого из них есть свойства "автомобиля" (максимальная скорость, ускорение и прочее) и методы (перемещения, перекраски). Однако, свойства будут немного другого значения (например, масса у грузовых машин, как правило, выше). А реализация методов будет другая (ведь перекрасить грузовую машину - это немного другое, нежели перекрасить легковую, хоть и принцип примерно один и тот же).

И последняя парадигма ООП - это полиморфизм. Самый сложный для понимания "кит", однако, не менее важный, чем другие. Полиморфизм - это взаимозаменяемость объектов. Или другими словами, объект может иметь много форм. Например, объект "Автомобиль" может иметь две формы "Грузовые автомобили" и "Легковые автомобили". И если мы вызовем метод "перекраски автомобиля", то в зависимости от того, с каким объектом мы работаем, объект будет перекрашиваться как "грузовой автомобиль" или как "легковой автомобиль". Ведь мы можем, например, потребовать в качестве параметра функции объект "Автомобиля", но ведь мы не знаем, какая именно форма придёт в функцию: "легковой автомбиль" или "грузовой автомобиль". Однако, мы точно знаем, что все методы, которые мы применяем внутри функции к этому объекту будут корректно обрабатываться. Надеюсь, что-то прояснилось, однако, если это не так, то ничего страшного. В принципе, для JavaScript ООП не так важно, поэтому тут достаточно и общих понятий.

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

Что же касается JavaScript, то тут ООП как такового нет, однако, концепции ООП JavaScript подчиняется. Существуют две части JavaScript (их несколько больше, но для 90% случаев их вполне достаточно). Первая часть - это ядро языка JavaScript. Здесь содержатся классы, отвечающие за математические операции, строковые операции, работу с массивами и так далее. Вторая часть - это клиентская. Здесь содержатся классы, которые отвечают за объекты на HTML-страницах, такие как: формы, кнопки, текстовые поля, ссылки, изображения, различные другие элементы страницы. Со многими объектами мы познакомимся в следующих статьях. А пока хватит.

Спасибо за внимание!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (4):

ytuber_vladzio ytuber_vladzio 08.01.2017 15:01:47

отредактируйте пж первую строчку, ведь не очень этот способ и новый... почти 8 лет прошло...

Ответить

848484 848484 11.02.2019 19:06:16

Вообще то этому сайту тоже больше 8ми лет....

Ответить

bear1962 bear1962 15.04.2017 12:10:38

Здравствуйте Михаил Юрьевич! Долго думал в какую тему написать -наверное сюда. Ситуация: метод объекта обрабатывает событие (onclick например). Как методу получить достум к свойствам этого объекта? Я придумал вот так: this.delGIm = function(evt) { var yaObj = arguments.callee.ya; ... } //конец delGIm this.delGIm.ya = this; не очень красиво а по другому как?

Ответить

kostya_nad kostya_nad 01.08.2017 09:59:52

Как всегда, на пальцах)

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.