Similar presentations:
Продолжение Kotlin. Свойства классов
1.
15.ПродолжениеKotlin
2.
Содержание1
Свойства классов
2
Модификаторы доступа
3
Функции/ функции-операторы
4
Лямбды
5
Замыкание, Inline функции
3.
1. Свойства классовКлассы в Kotlin могут иметь свойства: изменяемые (mutable) и
неизменяемые (read-only) — var и val соответственно.
Для того, чтобы воспользоваться свойством, мы просто
обращаемся к его имени (как в Java):
4.
1. Свойства классовГеттеры и сеттеры
Полный синтаксис объявления свойства выглядит так:
Пользовательский сеттер выглядит примерно так:
5.
2. Модификаторы доступаКлассы, объекты, интерфейсы, конструкторы, функции, свойства и их
сеттеры могут иметь модификаторы доступа (у геттеров всегда такая же
видимость, как у свойств, к которым они относятся). В Kotlin предусмотрено
четыре модификатора доступа:
private, protected, internal и public.
Если явно не используется никакого модификатора доступа, то по умолчанию
применяется public.
public - любой клиент, который видит объявленный класс, видит
его public члены;
private - видимость только внутри этого класса (включая его члены);
Internal - любой клиент внутри модуля, который видит объявленный класс, видит
и его internal члены;
protected - то же самое, что и private + видимость в субклассах.
6.
3. Функции/ функции-операторыВ Kotlin функции объявляются с помощью fun
ключевого слова
Параметры функции записываются имя:тип. Параметры
разделены запятыми. Каждый параметр должен быть явно указан.
7.
3. Функции/ функции-операторыПараметры функции могут иметь значения по умолчанию, которые
используются в случае, если аргумент функции не указан при её
вызове. Это позволяет снизить уровень перегруженности кода по
сравнению с другими языками.
8.
3. Функции/ функции-операторыЕсли функция не возвращает никакого полезного значения, её возвращаемый
тип - Unit. Unit - тип только с одним значением - Unit. Это возвращаемое
значение не нуждается в явном указании
9.
3. Функции/ функции-операторыКогда функция возвращает одно-единственное выражение, фигурные скобки {
} могут быть опущены, и тело функции может быть описано после знака =
Компилятор способен сам определить типа возвращаемого
значения.
10.
4. ЛямбдыЛямбда-выражения представляют небольшие кусочки кода,
которые выполняют некоторые действия. Фактически лямбды
представляют сокращенную запись функций. При этом лямбды
могут передаваться в качестве параметра в функции.
Лямбда-выражения оборачиваются в фигурные скобки:
Лямбда-выражение можно сохранить в обычную переменную и
затем вызывать через имя этой переменной как обычную
функцию.
11.
4. ЛямбдыЛямбды как и функции могут принимать параметры. Для
передачи параметров используется стрелка ->. Параметры
указываются слева от стрелки, а тело лямбда-выражения, то
есть сами выполняемые действия, справа от стрелки.
12.
5. Inline функцииInline-функции появились в Kotlin по причине избыточности
местной реализации лямбд. Каждый раз, когда вызывается
функция, которая принимает лямбду в качестве аргумента,
виртуальной машине приходится создавать анонимный объект для
хранения этой функции. А так как это затратная в плане ресурсов
операция, разработчики Koltin придумали решение: если объявить
функцию с ключевым словом inline, то компилятор «развернет» эту
функцию и ее лямбду в последовательный код.