Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса). - Котлин курс с нуля

Поділитися
Вставка
  • Опубліковано 5 лип 2024
  • 🔹 Тесты и практика по этому уроку: t.me/KotlinBasicsBot?start=yo...
    🔹 Текстовая версия урока: clck.ru/39VGEY
    🛠 Код из всех уроков: t.me/ievetrov_dev
    🛠 Личный телеграм канал про путь разработчика: t.me/ievetrov_dev
    ✅ Вопросы и ответы для Android собеседований: t.me/AndroidSprint_Interview
    🔹 Бесплатный курс по Android: clck.ru/376Zab
    🔹 VK: ievetrov.development
    Документация про конструкторы: kotlinlang.org/docs/classes.h...
    Открываем тему объектно-ориентированного программирования (ООП). В этом уроке будет немного больше теории, чем обычно. Задача на примерах и ассоциациях понять логику классов, зачем они нужны и что с их помощью можно реализовывать. В качестве введения в понятие "класс" расскажу примеры классов в самом языке, с которыми мы уже неоднократно работали. Далее плавно перейдем к понятию "сущность". Как ее выявить и почему в мире разработки программного обеспечения принят использовать такой подход. Все это будем рассматривать на примере очередного гипотетического приложения. Это будет каталог с рецептами, блюда можно будет добавлять в избранное, просматривать этапы готовки и скачивать ингредиенты в качестве списка покупок. Реализацию будем держать в уме - такой подробный пример нужен, чтобы научиться мыслить в стиле ООП, выделять будущие классы и наделять их свойствами. Во второй части приступим к "оживлению" классов. Мы продумаем какими действиями должны обладать объекты в приложении. Эти действия превратим в функции и наполним демонстрационной логикой. В конце воспроизведем несколько пользовательских сценариев, используя описанные выше функции.
    00:00 Классы в языке на примере типов переменных
    01:35 Теория ООП (объектно-ориентированный стиль)
    02:17 Пример сущности в приложении с рецептами
    02:55 Создание классов в Kotlin
    04:45 Свойства (характеристики) сущности
    06:02 Trailing comma - висящая запятая
    06:28 Инициализация свойства значением по умолчанию
    06:52 Создание экземпляра класса (объекта)
    09:45 Обращение к свойствам объекта
    10:31 Изменение свойств объекта
    11:07 Продумывание действий сущности
    12:20 Создание функций внутри класса
    13:34 Обращение к методам класса
    #kotlin #котлин #программирование

КОМЕНТАРІ • 37

  • @ievetrov
    @ievetrov  Рік тому +5

    Ссылки и содержание:
    🔹 Тесты и практика по этому уроку: t.me/KotlinBasicsBot?start=youtube
    🔹 Текстовая версия урока: clck.ru/39VGEY
    🛠 Код из всех уроков: t.me/ievetrov_dev
    🛠 Личный телеграм канал про путь разработчика: t.me/ievetrov_dev
    ✅ Вопросы и ответы для Android собеседований: t.me/AndroidSprint_Interview
    🔹 Бесплатный курс по Android: clck.ru/376Zab
    🔹 VK: vk.com/ievetrov.development
    00:00 - 01:35 - Классы в языке на примере типов переменных
    01:35 - 02:17 - Теория ООП (объектно-ориентированный стиль)
    02:17 - 02:55 - Пример сущности в приложении с рецептами
    02:55 - 04:45 - Создание классов в Kotlin
    04:45 - 06:02 - Свойства (характеристики) сущности
    06:02 - 06:28 - Trailing comma - висящая запятая
    06:28 - 06:52 - Инициализация свойства значением по умолчанию
    06:52 - 09:45 - Создание экземпляра класса (объекта)
    09:45 - 10:31 - Обращение к свойствам объекта
    10:31 - 11:07 - Изменение свойств объекта
    11:07 - 12:20 - Продумывание действий сущности
    12:20 - 13:34 - Создание функций внутри класса
    13:34 - 15:29 - Обращение к методам класса

  • @chuckluck8113
    @chuckluck8113 Рік тому +8

    Качественные уроки. Главное продолжай делать!

    • @ievetrov
      @ievetrov  Рік тому +1

      пока не планировал останавливаться) благодарю!

  • @ni204
    @ni204 Рік тому +6

    Спасибо за видеоурок, ждем след темы

    • @ievetrov
      @ievetrov  Рік тому +2

      Спасибо, что смотрите 🥹

  • @daryamedic
    @daryamedic Рік тому +4

    Больше выпусков Иван!

    • @ievetrov
      @ievetrov  Рік тому +1

      Будет сделано 😌 хорошего дня!

  • @AlexAlex-tg4qx
    @AlexAlex-tg4qx 11 місяців тому +4

    Большое спасибо за труд! Смотрю уроки и понимаю что они качественнее многих школ, начиная от материала и заканчивая подачей! Браво, маэстро!

    • @ievetrov
      @ievetrov  11 місяців тому +2

      Оу спасибо за высокую оценку! 🙏
      Рад стараться)

  • @vitalyzavaritsky8303
    @vitalyzavaritsky8303 Рік тому +3

    Спасибо за уроки, очень полезно. Не останавливайся.

    • @ievetrov
      @ievetrov  Рік тому +1

      Спасибо вам за поддержку, не останавливаемся)

  • @user-xt9sf8np9d
    @user-xt9sf8np9d Рік тому +3

    Большое спасибо за курс и ваш труд!

    • @ievetrov
      @ievetrov  Рік тому +1

      Благодарю за фидбек!

  • @user-kn2rr5xi4k
    @user-kn2rr5xi4k 9 місяців тому +1

    Шикарное видео по вводу в ООП

  • @Mema817
    @Mema817 Рік тому +3

    Больше!

  • @user-vk2ot6bw5k
    @user-vk2ot6bw5k Рік тому +5

    А у вас будут уроки про архитектуру, contex, навигацию, сетевой слой? Я думаю стоит сделать это 🙂Вы хорошо объясняете

    • @ievetrov
      @ievetrov  Рік тому +2

      Да, эти штуки хочу сразу в рамках разработки Андройд приложений показывать) и спасибо за обратную связь, Исаак!

  • @user-yu9iu6ft5r
    @user-yu9iu6ft5r 6 місяців тому

    Добрый день. Спасибо за ваши уроки. Все доходчиво и понятно, а бот с тестами и заданиями - это вообще супер. По тестам этого урока одно замечание - не совсем корректно дан ответ на вопрос "где может размещаться код класса" Верным ответом указано "в отдельном файле с произвольным именем". На самом деле Котлин не требует от пользователя писать код класса в отдельном файле. Можно сделать сколько угодно классов в одном файле с функцией main и это будет прекрасно работать. Да, это не хороший подход, но знать об этой возможности надо.

  • @romankhnykin5428
    @romankhnykin5428 Рік тому +3

    Я думаю, что лучше сразу привыкать к правильному именованию переменных, чтобы потом было проще ориентироваться в коде.
    В данном случае я бы заменил dish1 на friedEggs и dish2 на noodleSoup
    В результате получаем не dish1.category = "Блюда из яиц"
    а friedEggs.category = "Блюда из яиц"
    и.т.д

    • @ievetrov
      @ievetrov  11 місяців тому +3

      все верно!

  • @m_abdulbasirov
    @m_abdulbasirov 11 місяців тому

    Спасибо за видеоурок

  • @kluster120
    @kluster120 Рік тому +1

    Спасибо !

    • @ievetrov
      @ievetrov  Рік тому +2

      спасибо вам за комментарий 🤘 Хорошего дня)

  • @greylabservice444
    @greylabservice444 4 місяці тому +1

    Благодарю за урок. Уже целый год пытаюсь разобраться с ООП

  • @TheHprc
    @TheHprc Рік тому +1

    Это было здорово ! Маленький вопрос. Функции Dish должны создаваться только внутри файла класса Dish ?

    • @ievetrov
      @ievetrov  Рік тому +1

      Приветствую! в этом же файле, более того - внутри класса, так как они должны иметь доступ к полям класса и в целом понимать, к какому классу принадлежат.
      Есть еще функции-расширения (расширяющие функционал какого-то класса извне), это отдельная тема, коснулся ее в 21 уроке:
      ua-cam.com/video/mrz-wExchyk/v-deo.html

  • @asdpuvgle
    @asdpuvgle 9 місяців тому +1

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

    • @ievetrov
      @ievetrov  9 місяців тому +2

      Функция main() - это точка входа в программу. То есть, программа начинает выполняться с нее. Для Java она может располагаться в любом классе из твоей программы и имеет сигнатуру:
      public static void main(String[] args){
      // some code
      }
      То есть, это статическая функция. Внутри нее можно создавать экземпляры других классов твоей программы или вызывать другие статические функции.
      В Kotlin, когда ты пишешь:
      fun main() {
      // some code
      }
      Также создается класс, внутри которой эта функция располагается. Только создается неявно и называется именем файла.

    • @asdpuvgle
      @asdpuvgle 9 місяців тому

      @@ievetrov большое спасибо)
      получается функция мейн фундаментальная и все последующие классы связаны с ней?

    • @ievetrov
      @ievetrov  9 місяців тому +1

      Да, ее название зарезервировано в системе. Она является ключевой точкой входа

  • @user-li5ls7gu5z
    @user-li5ls7gu5z Рік тому +5

    нельзя ж так затягивать с выпусками)

    • @ievetrov
      @ievetrov  Рік тому +2

      сам жду этих выпусков не меньше вашего) ^^

    • @user-li5ls7gu5z
      @user-li5ls7gu5z Рік тому +1

      @@ievetrov не понял. вы разве не автор?

    • @ievetrov
      @ievetrov  Рік тому +2

      автор 😅 ну «жду» - это фигурально выражаясь )

    • @user-li5ls7gu5z
      @user-li5ls7gu5z Рік тому +2

      @@ievetrov понятно)

  • @olghe
    @olghe 9 місяців тому

    Жаль, что с 11 видео больше нет текстовой версии!

    • @ievetrov
      @ievetrov  9 місяців тому +1

      На самом деле есть на сайте) ievetrov.ru
      Пока не добавил ссылки под видео