Boas Praticas de Programação ao criar uma classe java
7 respostas
P
pelegrini
Pessoal,
Surgiu uma dúvida em uma discussão aqui no trampo.
É uma boa pratica de programação setar objetos contidos em minha classe para null no momento da declaração dos mesmos ???
Olá colega.
Variáveis de instância são iniciadas por padrão no java, você precisa setar valores iniciais apenas para variáveis locais.
Variáveis de instância do tipo primitivo são iniciadas com valor default = 0. E VI do tipo referência são iniciadas como null. Sendo assim se você não setar sua referência de objeto dentro da sua classe para um valor especial não precisa iniciar ele como null, pois a jvm já o fez qdo vc instanciou um objeto, tenta debugar pra vc ver…
Acho que é isso… t+
Aldrin_Leal
Tanto faz, apesar que prefiro mais criar um constructor default e inicializá-lo nele, caso o valor seja não-nulo.
Isto tem outros impactos (i.e., se você tem variáveis finais, por exemplo) e principalmente, no Debugger (você vai passar pela linha de casa definição de variável, o que eu particularmente acho algo enfadonho).
T
thingol
Não é preciso.
(Entretanto, em C++ isso é uma boa prática - já tive problemas porque tinha me esquecido que C++ não inicializa automaticamente as variáveis de instância com zeros ou nulls, embora chame os construtores).
(Entretanto, em C++ isso é uma boa prática - já tive problemas porque tinha me esquecido que C++ não inicializa automaticamente as variáveis de instância com zeros ou nulls, embora chame os construtores).
thingol,
tem certeza que uma variável não seja null?
Tipo, não tou duvidando… mas esses dias eu declarei um private: string nome; e mandei imprimir na main() com um método acessador e não imprimiu nada. Isso significa que é null ou que são duas aspas? ("").
Outra coisa foi o construtor que você falou… você quis dizer o padrão feito pelo compilador, né? (pra inicializar null). Então todas as variáveis (string pelo menos) seriam instanciadas como null pelo construtor padrão, não seriam?
aVraço!
francislon
Não só String é inicializada como null, mas todos as instâncias de objetos.