Só queria tirar uma dúvida rápida com vocês, acontece que estou habituado a usar o “this” para todos os campos existentes na classe, seja ele privado ou publico. quando o atributo é static eu uso o modo recomendado pelo eclipse (nomeDaClasse).atributo …
isso seria má programação? o “this” deve ser usado apenas quando o nome de um parâmetro for igual ao nome de um atributo da classe?
Olha não é má programação não… mas o mais legal mesmo é usar quando há sombreamento, que o caso que você citou de variavel de parametro ser igual a variavel de classe.
Só queria tirar uma dúvida rápida com vocês, acontece que estou habituado a usar o “this” para todos os campos existentes na classe, seja ele privado ou publico. quando o atributo é static eu uso o modo recomendado pelo eclipse (nomeDaClasse).atributo …
[/quote]
Não é “recomendado pelo eclipse”. É recomendado pela lógica e o bom senso (entenda-se : razões técnicas). O eclipse apenas segue essa lógica e bom senso
Como disse o leandroqbs o this deve ser usado apenas quando ha sombreamento (normalmente num set sempre ha sombreamento e é ai que se usa mais o this). Contudo, embora o sombreamento é a razão para a existência do this (e do super, já agora) usar o this tem outro efeito muito mais importante: clareza de código. Quando alguém lê “this.algumacoisa” não tem duvidas que “algumacoisa” é um atributo da classe em causa.
Portanto, como boa programação sempre está ligada a uma boa leitura de código (“what you see is what will run”) não é apenas uma boa prática, mas quanto a mim uma necessidade lógica e de bom senso (leia-se: uma prática para não causar erros desnecessários)
Concordo com o Sérgio. O uso do this ajuda muito quando você não conhece o código. Colocar o this sempre não interfere no compilador e ajuda os programadores…conselho…continue usando sempre…
Só mais uma dúvida que fiquei:
No caso para atributos eu continuarei usando, mas para os métodos que assim como os atributos são inerentes a classe, seria também recomendável o uso ou já seria um exagero?
As IDEs modernas (Eclipse, IDEA, Netbeans) tem o recurso de colorir diferentemente os fields das variáveis locais. Por isso eu acho desnecessário colocar o ‘this’ em todas as referências ao field na classe. Com o Syntax Highlighting dá pra identificar claramente o que é um e o que é outro. O código acaba ficando mais verborrágico ainda usando o ‘this’ em tudo.
Concordo. Fica uma m ler classes muito grandes. Apesar de ser tido como “uma boa prática de programação” eu sempre zelo pela leitura do código, tem de ser o mais simples possível. Usar this sempre acaba resultando em linhas feijão com arroz muito grandes. Claro que, dependendo da empresa, vc não tem opção de escolha - deve seguir os padrões definidos pela empresa. Eu, pessoalmente, prefiro prefixar membros privados com “_” (underline, isso é muito comum em c e c++). Só uso this em construtores (pois não há uma alternativa). No final é uma questão de gosto e estilo.
Só mais uma dúvida que fiquei:
No caso para atributos eu continuarei usando, mas para os métodos que assim como os atributos são inerentes a classe, seria também recomendável o uso ou já seria um exagero?
[/quote]
Aqui a conversa é um pouco diferente porque usar this e super num metodo pode interferir com a herança. O melhor é deixar sem nada, a menos que seja explicitamente necessário.