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

Quando declarar a variável mais de uma vez

Oi pessoal! Assistindo a esta aula sobre escopo de variáveis tive uma dúvida. É uma boa prática fazer isso de sempre declarar variáveis mais de uma vez quando se trata de escopos diferentes? Se não, quando é permitido? Porque sempre que uma situação como esta acontece comigo eu tendo a pensar que o mais "correto" seria declarar a variável antes, de forma mais geral, em um escopo que abarque os outros blocos. Qual seria a situação correta para fazer de cada forma? Obrigada!

3 respostas
solução!

Oie Valquíria, tudo bem?

Não sei se entendi muito bem sua pergunta, mas em qualquer caso segue uma explicação do que acredito que seja sua dúvida:

De maneira geral, quando você declara uma variável no formato de "atributo" ou fora de qualquer estrutura essa vai ser uma variável que possivelmente vai ser usada diversas vezes em ocasiões diferentes, por exemplo se pensarmos em uma classe "Conta", ela vai ter um atributo "saldo" que será usado em métodos de depósito, transferência e saque, ou seja, ela será chamada e usada em três ocasiões diferentes, e no caso dela ela não pode ser recriada dentro de cada método já que uma conta possui um único saldo para ser manipulado. Agora pensando em operações menores, onde uma variável vai ser usada apenas dentro daquela estrutura, as vezes é melhor declarar dentro daquele escopo limitado.

Como eu vi que você já alcançou o curso de java orientação objeto, acredito que você irá conseguir entender minha explicação acima.

Caso minha resposta não seja o que você tinha dúvida, é só mandar mensagem por aqui novamente que estarei a disposição :)

Bons estudos!

Exatamente isso, Igor! Obrigada. Portanto quando a variável será utilizada mais de uma vez e em contextos diferentes é melhor criar de maneira mais geral, e quando utilizamos em contextos específicos pode ser criada apenas dentro de um método por exemplo, certo? Agora minha dúvida é, seria má prática criar varáveis locais (ou seja, limitadas a escopos diferentes) com o mesmo nome, ou deveríamos sempre buscar criar com nomes diferentes mesmo que elas nunca vão se "esbarrar" por assim dizer? Acontece que ao ulitizarmos código de bibliotecas e etc é bem provável que haja variáveis com os mesmos nomes, imagino.

Oie Valquíria!

Respondendo suas perguntas:

"Portanto quando a variável será utilizada mais de uma vez e em contextos diferentes é melhor criar de maneira mais geral, e quando utilizamos em contextos específicos pode ser criada apenas dentro de um método por exemplo, certo?"

R: Isso mesmo!

"Agora minha dúvida é, seria má prática criar varáveis locais (ou seja, limitadas a escopos diferentes) com o mesmo nome, ou deveríamos sempre buscar criar com nomes diferentes mesmo que elas nunca vão se "esbarrar" por assim dizer?"

R: Acredito que depende, se no seu contexo for mais fácil de entender o que está acontencendo no código não vejo motivo para não ser feito, agora até onde eu sei, a maioria dos programadores não acharia muito legal e optariam por não repetir o mesmo nome. Algumas "boas práticas" irão depender muito do contexto do projeto no qual você está trabalhando, as vezes os membros da sua equipe adotam uma "prática" nova e por vezes incomum para outros programadores, isso visto de fora pode ser considerado má prática mas dentro da sua equipe, por todos fazerem desse jeito, pode ser considerado algo normal.

Eu achei uma discussão muito legal no stackoverflow onde é comentado algumas boas práticas quando se fala de nomes de métodos e variáveis em java, se tiver interesse de ver é só clicar aqui. Lembrando, o que está escrito não necessariamente é uma regra absoluta, algumas vezes irá depender do contexto no qual você está trabalhando.

Espero ter ajudado :)

Bons estudos!