|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
gets e sets na própria classe???Olá pessoal, Gostaria de saber se é uma boa prática usar os métodos get() e set() dentro da própria classe do atributo. tipo: public class Classe { int nome; public getNome() { ... } public setNome() { ... } public Stirng toString() { return "nome: " + getNome(); } public Stirng toString() { return "nome: " + nome; } } pelo meu pouco conhecimento em java, não vejo nada errado em nenhum dos dois métodos, por isso gostaria de saber de vcs qual a melhor prática, devido a encapsulamento e tal... está errado o segundo toString? é uma má prática? enfim, gostaria de esclarecer essas dúvidas com vcs. Essa dúvida surgiu, quando eu quis tirar vários gets e sets das minhas classes pra nao haver uma explosão de métodos de acesso nas classes, mas acabei nao tirando ennhum pq o toString() está usando todos... e aew, o que vcs me dizem? agradeço desde já qualquer explicação. --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Acho que seu primeiro toString eh desnecessario. Ta encapsulando o atributo privado "nome" tanto quanto "getNome". /O 2008/7/23 Tux Slack <slack.tux@...>: > Olá pessoal, > > Gostaria de saber se é uma boa prática usar os métodos get() e set() dentro > da própria classe do atributo. tipo: > > public class Classe { > int nome; > public getNome() { ... } > public setNome() { ... } > > public Stirng toString() { return "nome: " + getNome(); } > public Stirng toString() { return "nome: " + nome; } > > } > > pelo meu pouco conhecimento em java, não vejo nada errado em nenhum dos dois > métodos, por isso gostaria de saber de vcs qual a melhor prática, devido a > encapsulamento e tal... está errado o segundo toString? é uma má prática? > enfim, gostaria de esclarecer essas dúvidas com vcs. > > Essa dúvida surgiu, quando eu quis tirar vários gets e sets das minhas > classes pra nao haver uma explosão de métodos de acesso nas classes, mas > acabei nao tirando ennhum pq o toString() está usando todos... > > e aew, o que vcs me dizem? > > agradeço desde já qualquer explicação. > > > > -- Otávio Augusto "A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert A. Heinlein --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Aconselhor usar as convenções JavaBeans. Veja: http://pt.wikipedia.org/wiki/JavaBeans
Sds, Fabrício 2008/7/23 Tux Slack <slack.tux@...>:
-- Fabrício Entringer Moreira --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Somos obrigados a utilizar getters e setters por causa de frameworks que seguem a especificação JavaBeans (a maioria deles são frameworks para camada de visão). Estes métodos só deveriam ser utilizados quando necessário, e não se tornar um doença na aplicação, essa especificação induz muitos desenvolvedores a tratar seus objetos como meros containers de dados apenas, objetos sem comportamentos e lógica dentro.
Esses artigos são muito bons, http://blog.caelum.com.br/2006/09/14/nao-aprender-oo-getters-e-setters/ E este, http://blog.fragmental.com.br/2008/05/18/objetos-nao-sao-atributos-funcoes/ Abraços. 2008/7/23 Fabrício E. Moreira <moreira@...>:
-- Rafael Ponte http://www.rponte.com.br --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Otávio, é exatamente essa minha dúvida.. eu também acho desnecessário, mas quero saber qual a melhor prática, usar get() ou o atributo diretamente nos métodos da mesma classe. vc saberia explicar isso? 2008/7/23 Fabrício E. Moreira <moreira@...>:
--~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Eu já vi gente dizendo que usa porque, por exemplo, se um método "set" realizar alguma validação antes de atribuir o valor ao atributo, o código desta validação não necessita ser duplicado na classe. Eu acho desnecessário, porque dentro de uma simples classe não era para existir tanto código assim que justifique isso e também porque o atributo já é da própria classe mesmo, então ela tem o direito de realizar o que quiser com ele e a obrigação de mante-lo consistente. Não precisa ficar encapsulando o próprio atributo. 2008/7/23 Tux Slack <slack.tux@...>:
-- Jadson José dos Santos * Engenheiro de Computação * Especialista em Desenvolvimento de Sistemas Corporativos --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Nem toda aplicação usa frameworks. Não somos obrigados a sempre usar suas convenções. Não basta usar por usar. A idéia de usar os gets e sets ao meu ver é que você se restringe a uma única forma de acesso ao atributo. Por exemplo, se você quer formatar um valor sempre antes de retorná-lo. Sem usar o get isso pode quebrar. O mesmo serve para o set. Se você quer fazer algum tratamento no atributo antes de setá-lo, é mais adequado você usar o método set para isso. []'s Flávio Roberto Santos http://www.ourgrid.org/~flavio 2008/7/23 Fabrício E. Moreira <moreira@...>: > Aconselhor usar as convenções JavaBeans. Veja: > http://pt.wikipedia.org/wiki/JavaBeans > > Sds, > Fabrício > > 2008/7/23 Tux Slack <slack.tux@...>: >> >> Olá pessoal, >> >> Gostaria de saber se é uma boa prática usar os métodos get() e set() >> dentro da própria classe do atributo. tipo: >> >> public class Classe { >> int nome; >> public getNome() { ... } >> public setNome() { ... } >> >> public Stirng toString() { return "nome: " + getNome(); } >> public Stirng toString() { return "nome: " + nome; } >> >> } >> >> pelo meu pouco conhecimento em java, não vejo nada errado em nenhum dos >> dois métodos, por isso gostaria de saber de vcs qual a melhor prática, >> devido a encapsulamento e tal... está errado o segundo toString? é uma má >> prática? enfim, gostaria de esclarecer essas dúvidas com vcs. >> >> Essa dúvida surgiu, quando eu quis tirar vários gets e sets das minhas >> classes pra nao haver uma explosão de métodos de acesso nas classes, mas >> acabei nao tirando ennhum pq o toString() está usando todos... >> >> e aew, o que vcs me dizem? >> >> agradeço desde já qualquer explicação. >> >> > > > > -- > Fabrício Entringer Moreira > > > --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Valeu Rafael e Flávio..
Tirou minhas dúvidas... Obrigado mesmo. 2008/7/23 Flávio Santos <flavio.barata@...>:
--~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Permita-me reformular a pergunta.
" Vamos supor que o uso de um método set ou get seja justificado. Eu devo usá-lo para acessar um atributo quando estou dentro da própria classe deste atributo ?" Eu já dei a minha resposta: eu acho que não deve ! 2008/7/23 Flávio Santos <flavio.barata@...>:
-- Jadson José dos Santos * Engenheiro de Computação * Especialista em Desenvolvimento de Sistemas Corporativos --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Soh isso. get e set. pra cada atributo privado que queira acessar. /O 2008/7/23 Jadson Santos <jadsonjs@...>: > Permita-me reformular a pergunta. > > " Vamos supor que o uso de um método set ou get seja justificado. Eu devo > usá-lo para acessar um atributo quando estou dentro da própria classe deste > atributo ?" > > Eu já dei a minha resposta: eu acho que não deve ! > > > 2008/7/23 Flávio Santos <flavio.barata@...>: >> >> Nem toda aplicação usa frameworks. >> Não somos obrigados a sempre usar suas convenções. >> >> Não basta usar por usar. >> A idéia de usar os gets e sets ao meu ver é que você se restringe a >> uma única forma de acesso ao atributo. >> Por exemplo, se você quer formatar um valor sempre antes de >> retorná-lo. Sem usar o get isso pode quebrar. >> O mesmo serve para o set. Se você quer fazer algum tratamento no >> atributo antes de setá-lo, é mais adequado você usar o método set para >> isso. >> >> []'s >> >> Flávio Roberto Santos >> http://www.ourgrid.org/~flavio >> >> >> 2008/7/23 Fabrício E. Moreira <moreira@...>: >> > Aconselhor usar as convenções JavaBeans. Veja: >> > http://pt.wikipedia.org/wiki/JavaBeans >> > >> > Sds, >> > Fabrício >> > >> > 2008/7/23 Tux Slack <slack.tux@...>: >> >> >> >> Olá pessoal, >> >> >> >> Gostaria de saber se é uma boa prática usar os métodos get() e set() >> >> dentro da própria classe do atributo. tipo: >> >> >> >> public class Classe { >> >> int nome; >> >> public getNome() { ... } >> >> public setNome() { ... } >> >> >> >> public Stirng toString() { return "nome: " + getNome(); } >> >> public Stirng toString() { return "nome: " + nome; } >> >> >> >> } >> >> >> >> pelo meu pouco conhecimento em java, não vejo nada errado em nenhum dos >> >> dois métodos, por isso gostaria de saber de vcs qual a melhor prática, >> >> devido a encapsulamento e tal... está errado o segundo toString? é uma >> >> má >> >> prática? enfim, gostaria de esclarecer essas dúvidas com vcs. >> >> >> >> Essa dúvida surgiu, quando eu quis tirar vários gets e sets das minhas >> >> classes pra nao haver uma explosão de métodos de acesso nas classes, >> >> mas >> >> acabei nao tirando ennhum pq o toString() está usando todos... >> >> >> >> e aew, o que vcs me dizem? >> >> >> >> agradeço desde já qualquer explicação. >> >> >> >> >> > >> > >> > >> > -- >> > Fabrício Entringer Moreira >> > > >> > >> >> > > > > -- > Jadson José dos Santos > * Engenheiro de Computação > * Especialista em Desenvolvimento de Sistemas Corporativos > > > -- Otávio Augusto "A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert A. Heinlein --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Jadson, Se eu agrupei toda a lógica para setar um atributo da minha classe no método set...() e quero setar esse atributo em algum outro lugar na minha classe, prq não usar o meu método? É pra isso que ele existe, seja pra se chamado de fora ou de dentro da minha classe. []'s Erick Moreno 2008/7/23 Jadson Santos <jadsonjs@...>:
--~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Acreditor que a especificação javabeans seja somente uma convenção, não é de uso obrigatório (somente para alguns frameworks), mas ajuda na manutenção quando se trabalha em grande equipe.
E a mesma coisa que outras liguagens, por exemplo, a convenção da Borland é "TMinhaClasse" para classe, mas isso não quer disser que todas as classes devem ser iniciadas com T, usa que quer, mas quem programa a muito tempo quando ver algo do tipo "TMinhaClasse" já sabe que se refere a uma classe. Sds, Fabrício 2008/7/23 Erick Moreno <erickmoreno@...>:
-- Fabrício Entringer Moreira --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Erick, Se você vê necessidade nisso pode usar. Foi o que eu falei antes, acho desnecessário (não errado, apenas desnecessário) porque em poucas situações você vai ter uma lógica muito grande dentro de um método set ou get que possa justificar a reutilização. Tem muita gente que acha que acessando x diretamente vai está quebrando alguma boa prática da POO e prefere usar getX(). Mas pelo que eu sei, se você está dentro da própria classe, pode perfeitamente acessar x direto que vai está seguindo a POO. Até porque, teoricamente, se o atributo está na classe é porque você vai usar. E se for acessar através de métodos vai precisar gerar todos os métodos "setters" e "getters" e vai acabar tornando-os "públicos" indiretamente. Aí sim, vai está quebrando uma boa prática da POO . 2008/7/23 Erick Moreno <erickmoreno@...>:
-- Jadson José dos Santos * Engenheiro de Computação * Especialista em Desenvolvimento de Sistemas Corporativos --~--~---------~--~----~------------~-------~--~----~ ================================================================= Site: http://pbjug.org/ Grupo: http://groups.google.com/group/pbjug - Para cancelar a sua inscrição neste grupo, envie um e-mail para pbjug-unsubscribe@... ================================================================= -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: gets e sets na própria classe???Acho que o que não ficou claro, é que em muitos casos temos uma lógica para a recuperação e modificação de um atributo. Essa lógica deve ser colocada dos gets e sets da vida, e se ela existe, deve ser respeitada por todo o código, inclusive dentro da própria classe. O que vc diz, aplica-se apenas aos casos em que o get e o set não fazem nada além de recuperar e atualizar os atributos. Nessas circunstâncias, concordo com vc, que é o mesmo que acessar diretamente, mas é bem diferente de não dever usar gets e sets como vc afirmou. []'s Erick Moreno |