Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Kotlin для начинающих. Основы ООП. Часть 2 – ievetrov
Rating: 4.8 out of 5(25 ratings)
491 students

Kotlin для начинающих. Основы ООП. Часть 2 – ievetrov

Бесплатный курс по Kotlin для начинающих. Продолжение. Комфортный вход в мобильную Android разработку.
Created byIvan ievetrov
Last updated 1/2023
Russian

What you'll learn

  • Применение Kotlin в реальных приложениях
  • Основы ООП
  • Создавать классы и объекты
  • Что такое сеттеры, геттеры и field
  • Отличать наследование от полиморфизма
  • Правильно использовать модификаторы доступа, инкапсуляцию
  • ENUM классы и их константы
  • Работать с лямбда-выражениями

Course content

1 section10 lectures1h 33m total length
  • Урок 1: ООП. Классы и свойства15:28

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    Открываем тему объектно-ориентированного программирования (ООП). В этом уроке будет немного больше теории, чем обычно. Задача – на примерах и ассоциациях понять логику классов, зачем они нужны и что с их помощью можно реализовывать.

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

    Реализацию будем держать в уме – такой подробный пример нужен, чтобы научиться мыслить в стиле ООП, выделять будущие классы и наделять их свойствами.

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

  • Урок 2: Конструкторы10:56

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


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

    В чем были сложности и какие прелести создания объектов появились благодаря Котлин. Конструкторов может быть несколько. Один основной (primary constructor) и множество дополнительных или вторичных конструкторов (secondary constructor).

    Станет понятен процесс инициализации переменных класса, а также порядок вызовов блоков кода при создании объекта. Также расскажу про блоки инициализации – init. В них можно поместить код, который должен будет непрекословно выполниться при создании экземпляров класса. Блоков init может быть множество, выполняться они будут в порядке расположения в коде.

  • Урок 3: Null Safety7:30

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    Знакомимся с крутой фичей языка программирования Kotlin – null safety. Сначала расскажу в целом что такое исключения в программировании и про NullPointerException (NPE) в частности. Также коротко приведу пример, когда может возникнуть эта ошибка при взаимодействии с сервером. Далее изучим основные операторы в теме null-безопасности: оператор безопасного вызова (?.) и оператор утверждения "Это не null" (!!).

  • Урок 4: ООП. Наследование11:23

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    На примере Kotlin разбираем один из принципов объектно-ориентированного программирования (ООП). В уроке коротко опишу что это такое и в каких ситуациях применяется. На примере логики определения сущностей космических кораблей создадим базовый класс-родитель с общими свойствами и функциями. Затем создадим два подкласса. На примере продемонстрирую как установить связь между родителем и потомком. Итогом будет создание объектов подклассов и вызов у этих объектов базовых методов суперкласса.

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

  • Урок 5: Интерфейсы6:05

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    Немного затронем абстрактные классы в Kotlin. Объявим абстрактный класс с такими же полями и методами внутри него. Далее создадим дочерний класс космического шаттла Первого ордена и имплементируем в него поля и методы родителя.

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

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

    Наконец, создадим экземпляр конкретизированного класса с типом космического шаттла и проверим корректность отработки реализованных методов интерфейсов.

  • Урок 6: ООП. Инкапсуляция7:16

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    Рассказываю про модификаторы доступа (видимости) в Kotlin. public, private, protected, internal. Краткое описание каждого из них и примеры.

    В качестве примера будем описывать объект "Путеводитель для путешествующих автостопом по Галактике". Наглядно будет понятно, какой областью видимости обладает каждый из модификаторов. Из какого класса или файла к нему можно обратиться или он будет виден.

    Далее поговорим еще об одном принципе ООП – инкапсуляции. И в завершении покажу как обращаться к приватным переменным в классе извне безопасно. Это подведет нас к теме сеттеров и геттеров.

  • Урок 7: Сеттеры и геттеры5:40

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    Сеттеры и геттеры в языке программирования Kotlin (setter and getter). Из урока вы поймете, что это такое и как работает. При обращении к полям, Котлин под капотом генерирует их самостоятельно. Но их можно кастомизировать под свои нужды и я покажу как.

  • Урок 8: ООП. Полиморфизм10:41

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    Полиморфизм в языке программирования Kotlin. Один из принципов ООП. Не редкий вопрос на собеседованиях. У тех интервьюеров, которые придают большее значение теории, чем реальному опыту и технологиям. Ок. Подразделяется на 3 типа: ad hoc (по случаю), subtyping (полиморфизм включения), parametric (параметрический).

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

  • Урок 9: ENUM7:40

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


    enum классы в языке программирования Kotlin. enum – сокращение от enumeration, поэтому по другому они еще называются классы перечисления. enum полезен там, где сущность может принимать одно из заранее известных вариантов значений.

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

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

  • Урок 10: Лямбды10:23

    Ссылка на дополнительные учебные материалы прикреплена в ресурсах к уроку.


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

    Еще мы столкнемся с неочевидным поведением кода. Обладая полученной информацией, станут понятны отличия обычных анонимных функций в Котлин от лямбда-выражений. Разберем создание лямбд по атомам. Это важнейший кирпичик в фундамент профессиональной разработки.

Requirements

  • Желание попробовать себя в программировании
  • Дополнительный разработки опыт не требуется

Description

Привет. Меня зовут Иван (ievetrov). Добро пожаловать на продолжение курса по Kotlin для новичков.

На этом курсе мы продолжим знакомство с языком Kotlin и разберем еще 10+ тем, которые составляют основную базу знаний, позволяющую тебе двигаться дальше по пути в мобильную разработку.

Если ты еще совсем чайник в программировании, рекомендую пройти первую часть этого курса – "Kotlin c нуля. Основы программирования. Часть 1".

Здесь мы откроем тему объектно-ориентированного программирования (ООП). Разберем на примерах и ассоциациях логику классов, зачем они нужны и что с их помощью можно реализовывать. В качестве введения в понятие "класс" расскажу примеры классов в самом языке, с которыми мы уже неоднократно работали. Далее плавно перейдем к понятию "сущность". Как ее выявить и почему в мире разработки программного обеспечения принят использовать такой подход. Все это будем рассматривать на примере очередного гипотетического приложения.

Прольем свет на устройство конструкторов. Расскажу что такое исключения в программировании. Изучим такие понятия, как наследование и полиморфизма, и чем они отличаются друг от друга.

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

Узнаем про модификаторы доступа, инкапсуляцию.

Станут понятны отличия обычных анонимных функций в Котлин от лямбда-выражений. Разберем создание лямбд по атомам. Это важнейший кирпичик в фундамент профессиональной разработки.

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

Я создал бот для эффективного закрепления полученных знаний, который мотивирует и помогает не бросать занятия. В ресурсах к уроку ты найдешь ссылку. Обучающий бот содержит 200 бесплатных вопросов для тестирования и 100 практических задач с финальным проектом – телеграм бот на Kotlin. Тренажер и самоучитель по Kotlin в одном флаконе. Еще там можно отслеживать свой личный прогресс – отображается вся статистика по тестам и задачам для каждой темы. Общая статистика участника учитывается в общем рейтинге.

Добро пожаловать и погнали!

Who this course is for:

  • Для тех, кто хочет сделать первые шаги в сферу программирования через язык программирования Kotlin
  • Для тех, кто хочет стать Android-разработчиком и создавать мобильные приложения
  • Для тех, кто желает стать Kotlin разработчиком