Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 12 da Aula 3 - Java.lang

Por que esta ocorrendo este erro?

Classe ContaBancaria

public class ContaBancaria {
    public int ID;
    public String nome;
    public double saldo;

    // Construtores
    public ContaBancaria(int iD, String nome) {
        this.ID = iD;
        this.nome = nome;
    }

    // metodo comparação
    // public boolean equals(Object obj){
    // ContaBancaria outraConta = (ContaBancaria) obj;
    // return this.ID == outraConta.ID;
    // }
    public boolean equals(Object obj, String nome) {
        ContaBancaria outra = (ContaBancaria) obj;
        return this.ID == outra.ID && this.nome.equals(outra.nome);
    }

    public void imprimeLetraPorLetra(String texto) {
        for (int i = 0; i < texto.length(); i--) {
            System.out.print(texto.charAt(i));
        }
    }

    public void inverte(String texto2) {
        for (int j = texto2.length() - 1; j >= 0; j--) {
            System.out.print(texto2.charAt(j));
        }
        System.out.println("");
    }

}

Classe TestaConta

public class TestaConta {

    public static void main(String[] args) {

        ContaBancaria cc1 = new ContaBancaria(1, "Pedro");
        ContaBancaria cc2 = new ContaBancaria(1, "Marcelo");

        if (cc1 == cc2)
            System.out.println("1 - mesmo objeto");
        else
            System.out.println("1 - outro objeto");
        if (cc1.equals(cc2))
            System.out.println("2 - objeto equivalente");
        else
            System.out.println("2 - objto NÃO equivalente");

        cc1.imprimeLetraPorLetra("aviao");
        cc1.inverte("aviao");
    }

}

Mensagem de erro`

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The local variable aviao may not have been initialized

    at TestaConta.main(TestaConta.java:19)
2 respostas
solução!

Testei seu código na minha máquina e funcionou normalmente, com exceção do método imprimeLetraPorLetra(String texto) que esta decrementando a variável quando deveria incrementar, conforme abaixo:

''' public void imprimeLetraPorLetra(String texto) { for (int i = 0; i < texto.length(); i++) { System.out.print(texto.charAt(i)); } } '''

Porém, sobre o erro mencionado, o compilador sempre exige que uma variável que será impressa seja inicializada, mas como já disse, não sei por que não funciona na sua máquina no seu caso.

Obrigado Renan, deu certo agora.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software