971.05K
Category: programmingprogramming

Продолжение 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, то компилятор «развернет» эту
функцию и ее лямбду в последовательный код.
English     Русский Rules