Урок 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 #котлин #программирование
Ссылки и содержание:
🔹 Тесты и практика по этому уроку: 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 - Обращение к методам класса
Качественные уроки. Главное продолжай делать!
пока не планировал останавливаться) благодарю!
Спасибо за видеоурок, ждем след темы
Спасибо, что смотрите 🥹
Больше выпусков Иван!
Будет сделано 😌 хорошего дня!
Большое спасибо за труд! Смотрю уроки и понимаю что они качественнее многих школ, начиная от материала и заканчивая подачей! Браво, маэстро!
Оу спасибо за высокую оценку! 🙏
Рад стараться)
Спасибо за уроки, очень полезно. Не останавливайся.
Спасибо вам за поддержку, не останавливаемся)
Большое спасибо за курс и ваш труд!
Благодарю за фидбек!
Шикарное видео по вводу в ООП
Больше!
А у вас будут уроки про архитектуру, contex, навигацию, сетевой слой? Я думаю стоит сделать это 🙂Вы хорошо объясняете
Да, эти штуки хочу сразу в рамках разработки Андройд приложений показывать) и спасибо за обратную связь, Исаак!
Добрый день. Спасибо за ваши уроки. Все доходчиво и понятно, а бот с тестами и заданиями - это вообще супер. По тестам этого урока одно замечание - не совсем корректно дан ответ на вопрос "где может размещаться код класса" Верным ответом указано "в отдельном файле с произвольным именем". На самом деле Котлин не требует от пользователя писать код класса в отдельном файле. Можно сделать сколько угодно классов в одном файле с функцией main и это будет прекрасно работать. Да, это не хороший подход, но знать об этой возможности надо.
Я думаю, что лучше сразу привыкать к правильному именованию переменных, чтобы потом было проще ориентироваться в коде.
В данном случае я бы заменил dish1 на friedEggs и dish2 на noodleSoup
В результате получаем не dish1.category = "Блюда из яиц"
а friedEggs.category = "Блюда из яиц"
и.т.д
все верно!
Спасибо за видеоурок
Спасибо !
спасибо вам за комментарий 🤘 Хорошего дня)
Благодарю за урок. Уже целый год пытаюсь разобраться с ООП
Это было здорово ! Маленький вопрос. Функции Dish должны создаваться только внутри файла класса Dish ?
Приветствую! в этом же файле, более того - внутри класса, так как они должны иметь доступ к полям класса и в целом понимать, к какому классу принадлежат.
Есть еще функции-расширения (расширяющие функционал какого-то класса извне), это отдельная тема, коснулся ее в 21 уроке:
ua-cam.com/video/mrz-wExchyk/v-deo.html
у меня вопрос к лучшему гайд мейкеру,функция мэйн какую роль играет между классами?и в целом как классы взаймодействуют между собой ,они отсылаются к функции мэйн???
Функция main() - это точка входа в программу. То есть, программа начинает выполняться с нее. Для Java она может располагаться в любом классе из твоей программы и имеет сигнатуру:
public static void main(String[] args){
// some code
}
То есть, это статическая функция. Внутри нее можно создавать экземпляры других классов твоей программы или вызывать другие статические функции.
В Kotlin, когда ты пишешь:
fun main() {
// some code
}
Также создается класс, внутри которой эта функция располагается. Только создается неявно и называется именем файла.
@@ievetrov большое спасибо)
получается функция мейн фундаментальная и все последующие классы связаны с ней?
Да, ее название зарезервировано в системе. Она является ключевой точкой входа
нельзя ж так затягивать с выпусками)
сам жду этих выпусков не меньше вашего) ^^
@@ievetrov не понял. вы разве не автор?
автор 😅 ну «жду» - это фигурально выражаясь )
@@ievetrov понятно)
Жаль, что с 11 видео больше нет текстовой версии!
На самом деле есть на сайте) ievetrov.ru
Пока не добавил ссылки под видео