Содержание
- 2. Цели модуля
- 3. ООП, классы, объекты Наследование, интерфейсы Методы класса Any, классы данных Делегированные свойства и lateinit Расширения для
- 4. По окончании модуля вы будете знакомы с ООП парадигмой в котлине и научитесь писать программы, которые
- 5. ООП, классы, объекты
- 6. На этом уроке мы рассмотрим, что такое ООП, классы, объекты, методы, поля. Научимся на практике работать
- 7. Kotlin - ООП язык ООП использует: классы объекты иерархии Объектно-ориентированное программирование
- 8. Название: Автомобиль Характеристики: количество колес максимальная скорость мощность двигателя количество дверей размеры кузова Действия: разгон (двигатель
- 9. Класс: Автомобиль Название: Tesla Cybertruck Характеристики: количество колес - 4 шт. максимальная скорость - 209 км/ч
- 10. Поля: количество колес текущая скорость скорость мощность двигателя количество дверей размеры кузова Поля и методы Методы:
- 11. Инкапсуляция Наследование Полиморфизм Абстракция Принципы ООП
- 12. Могут применяться к полям, методам, классам. public(по умолчанию) - доступность отовсюду protected - доступность внутри класса
- 13. На этом уроке мы рассмотрели, на чем основывается ООП, на практике поработали с: классами конструкциями импортов
- 14. Наследование, интерфейсы
- 15. На этом уроке мы рассмотрим наследование, интерфейсы, абстрактные и анонимные классы. Цели урока
- 16. Автомобиль является транспортом Самолет является транспортом Наследование Транспорт разгон торможение Автомобиль разгон торможение открытие дверей Самолет
- 17. Иерархия классов
- 18. Отсутствует множественное наследование На вершине иерархии наследования находится класс Any Необходимы модификаторы класса - open или
- 19. Предназначен для наследования Невозможно создать экземпляр абстрактного класса Может иметь абстрактные методы и свойства Может содержать
- 20. Может иметь поля и методы Все поля и методы будут доступны пользователю интерфейса Нет внутренней реализации
- 21. Не имеют имени Используются для создания объекта один раз С помощью них можно создать объект интерфейса,
- 22. На этом уроке мы рассмотрели наследование, научились работать с классами-наследниками, интерфейсами, абстрактными и анонимными классами. Рассмотрели
- 23. Методы класса Any, классы данных
- 24. На этом уроке мы поговорим о сравнении объектов, рассмотрим методы класса Any - equals, hashcode, toString.
- 25. Равенство по ссылке (object3 === object4) Равенство по значению (object3 == object4) Сравнение
- 26. Хеш-код - это целочисленное значение, которое возвращается хеш-функцией для объекта. Функция hashCode является хеш-функцией. Она должна
- 27. Объекты одинаковы - хешкоды одинаковы Хешкоды одинаковы - объекты необязательно одинаковы (коллизия) Хешкоды разные - объекты
- 28. Возвращает текстовое представление объекта. По умолчанию возвращает название класса и хешкод в шестнадцатеричном виде: com.skillbox.skillboxkotlin.Car@b026219 toString()
- 29. Генерирует методы неявно: equals()/hashСode() toString() componentN() copy() Ограничения: Должен быть как минимум 1 аргумент в основном
- 30. На этом уроке мы рассмотрели ссылочное сравнение объектов и сравнение по значению. Изучили методы класса Any:
- 31. Делегированные свойства и lateinit
- 32. На этом уроке мы с вами рассмотрим модификатор свойств lateinit а также делегированные свойства Цели урока
- 33. Позволяет произвести отложенную инициализацию свойства класса. Для того, чтобы использовать модификатор lateinit необходимо: свойство должно быть
- 34. Позволяют переиспользовать код для инициализации свойств и добавить логику при обращении к полю и при установке
- 35. На этом уроке мы рассмотрели модификатор свойства lateinit, делегированные свойства, научились создавать свои делегированные свойства и
- 36. Расширения для классов
- 37. На этом уроке мы узнаем, что такое расширения для классов, и как с ними работать. Цели
- 38. Предназначены для добавления нового функционала в классы без наследования от них. Виды: extension function extension property
- 39. На этом уроке мы рассмотрели расширения, научились их создавать и использовать Выводы
- 40. Объявления объектов
- 41. На этом уроке рассмотрим такие объявления объектов, как объект-синглтон, объект-компаньон. Цели урока
- 42. Синглтон - объект класса, который существует в единственном экземпляре во время всей работы приложения. объявляется с
- 43. находится внутри класса объявляется с помощью ключевых слов companion object может быть и не быть имени
- 44. На этом уроке рассмотрели объявления объектов - объект-синглтон, объект-компаньон. Научились работать с ними на практике. Выводы
- 45. Перечисления, sealed-классы
- 46. На этом уроке рассмотрим перечисления и sealed классы, посмотрим, чем они отличаются, как с ними работать
- 47. Классы, которые могут содержать только объявленные объекты. Нельзя создать объект этого класса во время выполнения Объявляются
- 48. Класс, наследники которого известны на момент компиляции. Похож на перечисления Наследниками могут выступать объекты-синглтоны и классы
- 49. На этом уроке мы рассмотрели перечисления и sealed классы, узнали их возможности и отличия на практике.
- 50. Перегрузка операторов
- 51. На этом уроке мы с вами поговорим о перегрузке операторов для классов Цели урока
- 52. Перегрузка операторов data class Point(val x: Int, val y: Int) operator fun Point.unaryMinus() = Point(-x, -y)
- 53. На этом уроке мы узнали, как можно перегружать работу операторов для собственных классов Выводы
- 54. Домашнее задание
- 56. Скачать презентацию