Usar ou não usar o this? - Java - GUJ
Usar ou não usar o this?
Carinha Agosto 23, 2011, 8:13am #1
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 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.
rmendes08 Agosto 23, 2011, 8:22am #2
Cara, isso vai muito do gosto do freguês. Particularmente, eu uso somente quando há a necessidade de eliminar ambiguidades.
Nicolas_Fernandes Agosto 23, 2011, 8:24am #3
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.
DoomGuy Agosto 23, 2011, 8:27am #4
Eu uso pq deixa o código mais "claro", menos variáveis pra lembrar : )
daveiga Agosto 23, 2011, 8:43am #5
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.
Carinha Agosto 23, 2011, 8:54am #6
Pensei que pudesse haver algum tipo de "acordo informal" onde sempre se usasse o this, para deixar mais claro e tudo o mais…
@NicolasFernandes
Como eu acesso atributo/método da superclasse sem usar o super? '-'
denisspitfire Agosto 23, 2011, 8:55am #7
Pow, this é d+. Uso sempre que possivel rs…
mateuscs Agosto 23, 2011, 9:36am #8
Sempre use por boa prática.
Os próximos programadores, irão ler melhor seu codigo.
vitordaumling Agosto 23, 2011, 9:58am #9
eu geralmente uso this no construtor, pra setar valores em variaveis da private da classe
mas no main é legal usar também pq melhora o entendimento do código. Embora, isso vai muito do desenvolvedor mesmo.
fantomas Agosto 23, 2011, 10:33am #10
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.
discorpio Agosto 23, 2011, 10:51am #11
[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…
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.
rmendes08 Agosto 23, 2011, 12:00pm #12
[quote=vitordaumling]eu geralmente uso this no construtor, pra setar valores em variaveis da private da classe
mas no main é legal usar também pq melhora o entendimento do código. Embora, isso vai muito do desenvolvedor mesmo. [/quote]
Não dá pra usar o this dentro do método main porque ele é static …
vitordaumling Agosto 24, 2011, 8:21am #13
verdade rmendes08, realmente nao da pra usar o this no main!
não tinha me atentado a isso, to começando com java.
rafaelaalves Agosto 24, 2011, 8:53am #14
Rapaz se não tem necessidade é melhor vc não usar, mas quem faz o código é o programador ^^
j0nny Agosto 24, 2011, 9:51am #15
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'.
Ivan_Alves Agosto 24, 2011, 9:57am #16
Eu também só uso o 'this' quando necessário para os casos de ambiguidade em SET já o 'super' é sempre, talvez seja preguiça mesmo, flw!
Ivan_Alves Agosto 24, 2011, 9:58am #17
quebrado Agosto 24, 2011, 10:05am #18
Raramente uso "this". Geralmente é o eclipse que usa pra min. hahahah
saoj Agosto 24, 2011, 10:15am #19
Não dá pra usar o this dentro do método main porque ele é static …[/quote]
Pensei que o pessoal ia ficar discutindo isso pra sempre… this dentro de método static não faz qualquer cabimento… O exemplo dado nem compila…
rogelgarcia Agosto 24, 2011, 9:28pm #20
O problema maior não é nem usar ou não o this… (não existe padrão, eu por exemplo, só uso se necessário)