constructor de class y variables miembro (campos)

Intento declarar la class con el constructor; sin embargo, parece haber un conflicto con esa syntax y declarar miembros de la class.

¿Alguna sugerencia de cómo van juntas?

class Person (aName:String) { var name : String get() = this.name set(myName) {this.name = myName} init { this.name = aName } } 

Estás usando setter dentro de tu setter haciendo set(myName) {this.name = myName} . Esta es una llamada recursiva y no lo que deberías hacer. En su lugar, use el acceso de field esta manera:

 name: String? = null set(myName) { field = myName } 

Pero en realidad, ni siquiera necesitas esto. Puedes declarar en el constructor primario, ese name debe ser una propiedad de tu class:

 class Person(var name: String) 

No necesitas nada de eso. Puedes simplemente definir el name en el constructor como var , y Kotlin lo expondrá como una propiedad.

 class Person(var name: String) // Usage... val p = Person("Dave") println(p.name) // "Dave" p.name = "Phil" println(p.name) // "Phil" 

Solo para agregar a lo que otros han dicho, aquí hay una mejor syntax si quieres tener aName como un parámetro de constructor separado:

 class Person (aName:String) { var name = aName }