Outer class e Inner class

class Pessoa {
  var nome: String = "Jether"
  var cpf: String = "123.125.323-31"
 
  inner class Endereco {
      var rua: String = "Rua teste"
  }
}

No exemplo acima, a classe Pessoa é outer class e a classe Endereco é a inner class (acompanhada com a palavra reservada inner).

Uma inner class armazena uma referência para um objeto de sua outer class, com isso é possível acessar/utilizar os membros da outer class na inner class

Acessar um atributo de uma inner class:

Pessoa().Endereco().rua // Rua teste