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

É corretor afirmar que nesse caso o "THIS" substitui a função do "IF"?

public class Caneta { String modelo; String cor; float ponta; int carga; boolean tampada; void status() { System.out.println("Modelo: " + this.modelo); System.out.println("Uma caneta " + this.cor); System.out.println("Ponta: " + this.ponta); System.out.println("Carga: " + this.carga); System.out.println("Está tampada? " + this.tampada); }

void rabiscar() {
    if (this.tampada == true) {
        System.out.println("ERRO! Não posso rabiscar");
    } else {
        System.out.println("Estou Rabiscando");
    }
}

void tampar() {
    this.tampada = true;
}

void destampar() {
    this.tampada = false;
}

}

5 respostas

Diego, beleza ?

A resposta da suapergunta é : Não ! . O único caso em que você precisa usar o this é quando tem uma variável de escopo (ou parâmetro) com o mesmo nome de um atributo (ou variável de classe) e precisa diferenciá-los.

Se seu metodo passa parametro com o mesmo nome de um atributo da classe, então para se referenciar a aquela instancia do metodo, se usa o this, senão fizer isso, java iraáentender que quer alterar o atributo da classe

Necessariamente o GETTER/SETTER/CONSTRUCT sempre vão trabalhar juntos?

Oi Diego, tudo bem?

Nem sempre, o ideal ainda é implementar apenas o necessário. Se quisermos que outras classes tenham acesso a um atributo, implementamos um Getter, se quisermos que outras classes também possam alterar esse atributo, implementamos um Setter, e por aí vai.

Inclusive, recomendo dar uma olhadinha nesse post que aborda uma prática cotroversa relacionada a getters e setters. Mas a ideia principal é simples: implementamos apenas aquilo que realmente precisamos!

Espero ter ajudado, qualquer dúvida estamos à sua disposição!

Bons estudos!!

Quando saber distinguir a necessidade de get e set na hora de programar?

solução!

Então Diego, essa é uma decisão que você deve tomar de acordo com as suas necessidades, não existe nenhuma regra fixa para isso, apenas implemente o que você julga ser necessário no seu programa e evite deixar métodos que expõe a sua classe - como os getters e setters - disponíveis sem que haja uma justificativa para elas existirem, já que em muitos casos podemos usar métodos como o saca(), deposita() e transfere() que podem muito bem substituir os getters e setters, ainda assim respeitando as regras de negócio de um banco.

É normal ter essas dúvidas no começo, mas garanto que com a prática e o auxílio dos vários exemplos que ainda virão mais pra frente na formação, tudo ficará mais claro!