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

Criando um if no construtor com 2 argumentos

Boa noite pessoal, estou com o seguinte código abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

gostaria de criar um parâmetro que obrigue na chamada do construtor, que seja informado um valor para agencia e numero > 0, porem, se usar um if retornando TRUE e FALSE, devo mudar o retorno do construtor para Boolean e ai não compila.

Alguém consegue me dar uma luz?

8 respostas

pessoal até achei outro jeito, não é o que eu queria, mas deu pra quebrar o galho:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade eu queria que desse um erro e a Conta não fosse instanciada, no caso acima, instancia, mas usa o parâmetro que eu defini como 1 para ambos os casos em que o número informado fosse 0.

Boa noite,

Você não pode definir um tipo de retorno para um construtor.

Você pode mudar um pouco a lógica desse if, caso for a variável for menor ou igual a zero você pode apresentar uma mensagem de erro e fazer um return dentro do if. Esse return vai encerrar o construtor.

Exemplo:

public Conta(int agencia, int numero) {
        Conta.total++;
        if (agencia <= 0 && numero <= 0) {
            System.out.println("Só podem ser inseridos valores maiores que 0");
            return;
        }
        this.agencia = agencia;
        this.numero = numero;
        System.out.println("Estou criando uma conta " + this.numero);
    }
solução!

Boa Noite Arthur,

até achei um outro meio utilizando as Exception :

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeaté realizei os testes e deu certo. Vou usar o seu código para ver como fica e se ficar mais bonito vou utilizar ele também.

Obrigado pela ajuda meu amigo.

Arthur,

usando o código que voce me enviou, ainda assim, o construtor é finalizado e cria a conta com os valores 0.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Edilberto,

Acredito que a melhor solução senha com as Exceptions mesmo.

O seu construtor está ficando bem legal

obrigado pela forca Arthur.

Como faz com esses exceptions? Isso é do próximo curso? Eu tive esse mesmo problema, consigo mandar a mensagem de erro, mas a conta ainda é criada. Inclusive Edilberto, não seria melhor colocar o total++ dentro do if? Aí o total só aumenta se a conta é de fato criada.

De qualquer forma, gostei que não fui o único a pensar nisso. Abraços!

Boa tarde Maria ,

Desculpe a demora no retorno, segue abaixo respostas:

Como faz com esses exceptions? Isso você verá um pouco mais a frente. Dependendo da sua grade de estudos.

Inclusive Edilberto, não seria melhor colocar o total++ dentro do if? Se deixar o total++ dentro do IF, sempre que a conta for criada, o total não será computado e sempre será 1, pois o método que incrementa o valor esta dentro do laço do IF. Por isso ele deve ficar sempre por fora.

qualquer coisa pode me encontrar no https://github.com/EdilbertoMorais