Я новичок в Kotlin , и у меня есть следующие сомнения -
Используя конвертер Java в Kotlin ( this Link ), я преобразовал следующий Java-код в Kotlin .
Java класс:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
Сгенерированный класс Kotlin:
class Person(name:String, age:Int) {
var name:String
var age:Int = 0
init{
this.name = name
this.age = age
}
}
Но я не понимаю, как Java-код и сгенерированный код Котлина эквивалентны, потому что модификаторы видимости членов данных класса изменяются с private (на Java) до public (на Kotlin).
Я полагаю, что если модификаторы видимости сохранятся (члены данных объявлены закрытыми в Kotlin), то в Kotlin должны быть созданы также методы получения и установки, и только тогда они должны быть эквивалентными.