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

Java: this, boolean, Return

Olá

  1. This: para que serve ??? por que usar, "se ele não faz diferença"?
  2. Boolean: Entendo que quando colocarmos ele como método ele nos retornará "true" ou "false", também vi em aula que ele guarda um valor, mas outras variáveis também guardam valor, então por que usa-lo ? como é o uso do mesmo na prática ?
  3. O "Return" só é usado no boolean ?? retornamos o que ???

Grato pela atenção !

2 respostas
solução!

Fala, Sandro! Tudo bem contigo?

São dúvidas muito importantes que as vezes deixamos passar batido:

  • This

Imagina se o nome do parâmetro for igual ao nome do atributo da classe

public void aplicaDesconto(double valor) {
    valor -= valor * valor;
}

No lugar de porcentagem eu coloque o nome de valor. Veja o quão confuso seria: espero receber um valor que vou esperar a subtração de um valor por outro valor e multiplicar o valor da subtração pelo valor recebido. O Java saberá quem é quem?

A resposta é não! Vai até compilar o código, mas o valor considerado vai ser o de menor escopo.

É aqui que entra a palavra this para mostrar que esse é um atributo da Classe e não o argumento recebido. Ainda que seja opcional, é sempre bom utilizar a palavra this em atributos para evitar futuros problemas de ambiguidade e assim você deixar claro que este é um atributo da classe e não uma simples variável.

Neste caso ficaria assim:

public void aplicaDesconto(double valor) {
    this.valor -= this.valor * valor;
}

Agora sei exatamente quem é o atributo da classe e quem é o parâmetro que receberá.

  • Boolean

O boolean sempre vai retornar verdadeiro ou falso. Até aí tudo bem! O que acontece é que posso nomear esse meu atributo booleano. Vamos supor que abro uma conta e possui os seguintes atributos:

private int agencia;
private int numero;
private String nome;
private boolean contaAtiva;

Agora vou criar um construtor para que todas as vezes em que eu criar uma nova conta ela já comece com o atributo contaAtivajá receba o valor como falso

public Conta (int agencia, int numero, String nome) {
    this.agencia = agencia;
    this.numero = numero;
    this.nome = nome;
    this.contaAtiva = false;
}

Veja que só vou inserir os dados de Agência, Número e Nome pois a conta não estará ativa no momento da criação. A qualquer momento posso alterar isso criando um método para que todas as vezes em que eu chamar esse método ative a conta

  • Return

O return é usado em quando queremos retornar algo. Isso parece vago, mas vamos exemplificar.

Quando gero os Getters e Setters eles apresentam dois comportamentos: um eu quero inserir informações e outro eu quero buscar informações.

Todas as vezes em que eu insiro informação, na verdade eu não espero que "me retorne" nada. Simplesmente insira um nome, agencia ou número e o que diferencia isso é uma palavra chave chamada void. Todas as vezes em que ver essa palavra no método saiba que ela vai inserir alguma informação.

public void setNome (String nome) {
    this.nome = nome;
}

Na hora em que eu criar um objeto e inserir um nome no objeto, nada retornara

Cliente cliente1 = new Cliente();
cliente1.setNome = "Fulano";

Quando quero buscar uma informação perceba que eu preciso que me traga alguma informação e para que isso aconteça utilizamos return

public String getNome () {
    return nome;
}

O que estamos retornando é o nome que inseri. Exemplo:

Cliente cliente1 = new Cliente();
cliente1.setNome = "Fulano";

System.out.println(cliente1.getNome());

Ele vai retornar o nome que inseri com o setNome

Sandro, tentei deixar o mais simples possível, mas caso ficou alguma dúvida, me dê um retorno, amigo!!!

Espero ter ajudado!

Um abraço e bons estudos

Cássio muito obrigado pela atenção e excelente esclarecimento !!!