Bom dia a todos
Eu tava fazendo uns experimentos com a classe e me veio uma dúvida
Quando queremos um atributo com valor imutável, usamos val, e quando não queremos que o mesmo seja imutável, usamos o var.
Mas em relação as classes? pois eu fiz uma classe com val e pude alterar os atributos sem dar problema:
package br.com.alura.classe
fun main() {
    var alex = Conta("Alex",1234,55.60)
    println(alex.getNomeTitular())
    println(alex.getSaldoDaConta())
    alex.depositaDinheiro(50.0)
    alex.setNomeTitular("Alex da Silva")
    println(alex.getSaldoDaConta())
    println(alex.getNomeTitular())
}No console aparecia assim:
Alex
55.6
105.6
Alex da Silvae quando eu colocava essa classe como var, aparecia essa mensagem no IntelliJ:
Variable is never modified, so it can be declared using 'val' Então, o que tem que ser feito para uma classe ser considerada que foi alterada?
Código da classe completa como referência:
package br.com.alura.classe
class Conta {
    private var nomeTitular:String = "";
    private var numeroDaConta: Int = 0;
    private var saldoDaConta: Double = 0.0;
    constructor(nomeTitular: String, numeroDaConta: Int, saldoDaConta: Double) {
        this.nomeTitular = nomeTitular
        this.numeroDaConta = numeroDaConta
        if (saldoDaConta <0){
            throw Exception("saldo nao pode ser abaixo de 0")
        }
        this.saldoDaConta = saldoDaConta
    }
    fun getNomeTitular():String {
        return nomeTitular
    }
    fun setNomeTitular(nome:String){
        this.nomeTitular = nome
    }
    fun getNumeroDaConta(): Int{
        return numeroDaConta
    }
    fun getSaldoDaConta():Double{
        return saldoDaConta
    }
    fun depositaDinheiro(deposita:Double){
        saldoDaConta += deposita
    }
    fun sacaDinheiro(saca:Double){
        if (saca > saldoDaConta){
            throw Exception("Nao pode sacar mais que seu saldo, que é de $saldoDaConta")
        }
        saldoDaConta -= saca
    }
    override fun toString(): String {
        return "Conta(nomeTitular='$nomeTitular', numeroDaConta=$numeroDaConta, saldoDaConta=$saldoDaConta)"
    }
}Ps: eu fiz uns cursos de java na Alura antes de fazer esse, por isso eu sei um pouco de programacao
 
            