Meu problema é simples e não afeta o funcionamento do programa, quero saber isso por questão de convenção e para deixar o código mais bonito.
Não há nenhum problema com o nome do atributo ser igual o de uma variável, mas mesmo assim seria bom eu colocar o this?
public class Exemplo{
int Ex = 0;
public static void main (int[] args){
Ex = 1; //Usar ou não o this?
}
public void func(int Ex){
this.Ex = Ex; //Aqui é obrigatório...
}
}
É isso aí, acho que sou meio preguiçoso por não procurar isso no google, mas na verdade eu não sei nem qual “pergunta” formular para que o google me dê a resposta.
Eu, particularmente, uso o this somente quando necessário, como no caso do seu método func. Já a palavra reservada super eu uso sempre, para identificar que o atributo ou método está na classe superior.
Eu sempre usei o this, pelo mesmo motivo do @DoomGuy, acho que assim fia ‘óbvio’ de quem estamos falando.
Mas quando eu troquei de emprego me surpreendi por que aqui ninguém usa ‘this’ e me acharam um ET quando me viram usando.
Acho que não há um padrão, use o que parecer mais confortável.
Se vc utilizar um editor que não tem auxilio de cores para informar as visibilidades o “this” será de grande ajuda. Lembrando que mesmo com o notepad ou algo até mais rudimentar é possivel programar em java.
Além disso faz parte das boas praticas, raramente deixo de utilizar.
[quote=Carinha]Pensei que pudesse haver algum tipo de “acordo informal” onde sempre se usasse o this, para deixar mais claro e tudo o mais…
Obrigado pelas respostas!
@NicolasFernandes
Como eu acesso atributo/método da superclasse sem usar o super? ‘-’[/quote]
Voce pode omitir a sintaxe “super”, para invocar um método da super classe, desde que este método não esteja sobrescrito na sub-classe (classe atual), bastando tão somente invocar o metodo atráves de sua assinatura. Agora se este método estiver sobrescrito na sub-classe (classe atual), ai voce terá que utilizar a sintaxe “super” para diferenciar o método da super classe com o metodo da sub-classe que esta sobrescrito.
Com relação ao atributo, vai depender com qual modificador voce o declarou dentro de cada classe, pois para ter acesso a atributos de super classe, voce tem que declará-los com o modificador “public” na super classe, e se voce declarar um atributo com o mesmo nome na sub-classe com o modificador “private”, ai é recomendavel usar o “this” para referenciar o atributo da classe atual, e o “super” para referenciar o atributo da super classe. Se voce declarar os atributos como “private” na super classe e nas sub classes, ai não necessidade de usar nem this e nem super, porque os da super classe voce não tem acesso a atributos com visibilidade “private”.
Quanto a uso da sintaxe “this”, isso realmente vai do gosto de cada um, porem acho que ele somente deve ser usado para diferenciar um atributo no escopo de método com o atributo do escopo de classe.
Não vejo necessidade, até porque, quem programa em Java, programa em uma IDE, e o Eclipse, por exemplo, deixa os atributos de outra cor :lol:
Acho que fica muito poluído pra tudo usar ‘this’.