0 голосов
 
834 просмотра
16.03.2020 / 01:14  Aladdin

Разница между классами Java и Kotlin

Не давно меня спросили разницу между классами Java и Kotlin, естесственно я не смог ответить ничего. Кто нибудь знает в чем разница?
Ответы
 
2 голоса
 
# 21.03.2020 / 00:49  Senderman
kotlin классы имеют properties, которые по факту являются backing field + getter + setter. Т.е. то что в java
  1. public class Box {
  2. private final int volume;
  3. // конструктор, геттер, сеттер
  4. }
в котлине будет
  1. class Box(val volume: Int)

Кроме того, классы, проперти, методы по умолчанию имеют модификатор public, а package-private(default) модификатора в котлине нет. internal - не совсем то, что надо.
В отл. от java, в kotlin внешний класс не видит private методов внутренних классов.
Классы в kotlin могут иметь первичный и вторичные конструкторы, которые обязаны использовать первичный (this()), а так же есть блок init{} (аналог static{} в java, но для инита не-статик полей). В java ты просто объявляешь несколько конструкторов, которые не связаны друг с другом.
В котлине абстрактные классы могут быть sealed, тогда его наследниками могут быть только внутренние классы.
По умолчанию все классы в kotlin являются final. Чтобы можно было от него наследоваться, его надо сделать open, либо abstract/sealed.
Изм. Senderman от 21.03.2020 / 00:57
 
1 голос
 
# 16.03.2020 / 08:06  Витаминыч
Из того, что помню: модификаторами доступа.

Вообще, там много различий, рекомендую почитать Kotlin in action, глава 4
Изм. aNNiMON от 17.03.2020 / 14:23

Screenshot_2020-03-16-09-03-52-749_com.mixplorer.jpg (160.65 кб.)
Всего: 2

Реклама

Мы в соцсетях

tw tg yt gt