Reproduzindo o codigo para estudos, obervei que o encapsulamento da aula não esta funcionando, visto que eu ainda consigo alterar o id do usuario (tagName) pelo metodo publico criarIdInterno.
val gamer1 = Gamer("Fabricio Moura", "fabricio@email.com")
println(gamer1)
val gamer2 = Gamer("Bianca", "bianca@email.com", "22/04/2000", "bpsx")
println(gamer2)
gamer2.let {
it.birthDate = "06/06/2002"
it.username = "bpsxg2"
it.createTagName()
}.also {
println(gamer2)
}
println(gamer2)
saida do console: Gamer(name='Fabricio Moura', email='fabricio@email.com', birthDate=null, username=null, tagName=null) Gamer(name='Bianca', email='bianca@email.com', birthDate=22/04/2000, username=bpsx, tagName=bpsx#04830) Gamer(name='Bianca', email='bianca@email.com', birthDate=06/06/2002, username=bpsxg2, tagName=bpsxg2#08715) Gamer(name='Bianca', email='bianca@email.com', birthDate=06/06/2002, username=bpsxg2, tagName=bpsxg2#08715)