Foro sobre Java SE > Inicializar variables
En Java, en general las variables con tipo primitivo se inicializan por defecto con valor cero al declararlas.
Por ejemplo:
int entero; // valor inicial es 0
Sin embargo, las clases se inicializan a null al declararlas.
Por ejemplo:
String cadena; // valor inicial es null
En ocasiones, sí es imprescindible inicializar una variable primitiva.
public class Test {
public static void main(String[] args) {
System.out.println("contador = " + getContador(""));
System.out.println("contador = " + getContador("1"));
}
public static int getContador(String cadena) {
int cont = 0; // si no se inicializa: error de compilación
if (cadena.isEmpty()) {
cont = 1;
}
return cont;
}
}
Pues muchas gracias, no lo habia visto en ningun sitio tan bien explicado.
Besos, Ana.
Hola:
La cosa es así:
Las variables de clase se incializan con un valor por defecto, el valor por defecto depende del tipo:
Tipos primitivos
================
boolean: false
char:'/u0000'
Enteros(byte,short,int,long): 0Lpara long, 0 para los otros
Decimales(float,double):0.0F o 0.0D
Variables de referencia
=======================
Tipo referencia null
Las variables locales (las que se declaran en métodos ) deben ser inicializadas explicitamente, sino dará un error de compilación.
Gracias donk && choces ;) no hubierais podido explicarlo mejor
Lo siento, @donk, pero no es exacto decir que las variables locales deben inicializarse, o habrá un error de compilación. No siempre es necesario.
En el caso siguiente no hay error de compilación, porque siempre se asignará un valor a la variable cont, a diferencia del ejemplo del mensaje anterior, en el que la asignación es condicional.
public class Test {
public static void main(String[] args) {
System.out.println("contador = " + getContador(""));
System.out.println("contador = " + getContador("1"));
}
public static int getContador(String cadena) {
int cont; // no hay error de compilación
if (cadena.isEmpty()) {
cont = 1;
} else {
cont = 0;
}
return cont;
}
}
mm, yo no dije que había que inicializarlas en la misma linea de la declaración.
sin embargo siempre se les debe asignar un valor antes de usarlas. ya que el compilador no les asigna un valor por defecto.
En el caso anterior no hay error de compilación, porque la asignación no es condicional.
Los valores que devuelve un método siempre deben estar explícitamente asignados, no sirve la inicialización por defecto. Si en todos los casos existe asignación explícita, como en el ejemplo anterior, el compilador no lanza un error en la declaración, aunque no haya asignación de valor en la misma declaración.
Buenas a todos!
Llevo un tiempo con una duda que no logro entender.
En algunos lugares he leido que las variables deben inicializarse(darles un valor,el que sea) y despues usarse como se quiera.He leido hasta que es de buen programador hacer eso.
Mi pregunta es que sentido tiene eso?
Se supone que al declarar la variable(a menos que sea una objeto)ya estas reservando espacio para ella, es mas si la declaras y no la usas tendras un aviso, pero si la declaras y la inicializas y se te olvida usarla por lo que sea pues no te enteraras.
Es una duda de novata que tengo, que opinan de esto?
Saludines