Приватные поля в классе

Изучаю сейчас котлин и запуталась с модификаторами доступа. В Java поля класса обычно приватные, а для доступа пишутся getter и setter. Например:

public class People{
   private String name;

   public String getName(){
    return this.name;
   }

   public void setName(String name){
    this.name = name;
   }
}

Но если его конвертировать в Kotlin то получается:

class People {
    var name: String? = null
}

Судя по документации, если нет модификатора доступа, то это по умолчанию public, то есть нарушается инкапсуляция. Так ли это? И как все же сделать приватное поле и getter и setter?


Ответы (1 шт):

Автор решения: Eugene Krivenja

Ваш пример на Котлине

class People {
    var name: String? = null
}

Генерирует вот такой JVM байткод (оставил только сигнатуры)

public final class People {
  private Ljava/lang/String; name
  public final getName()Ljava/lang/String;
  public final setName(Ljava/lang/String;)V
  public <init>()V
}
→ Ссылка