Lo que quiero decir es como actualizar el objeto de forma que este cargue de nuevo, pero sin tener que volverlo a declarar.
Aca en el método run, estoy declarando lo siguiente:
calen = new GregorianCalendar();
Pero si lo estoy declarando así, ¿Estoy haciendo que el programa tenga mas objetos y se haga mas pesado, o que?
¿Como seria la manera correcta de hacerlo?
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Reloj extends Thread{
Calendar calen;
Reloj(){
calen = new GregorianCalendar();
start();
}
public void run(){
while(true){
try{
System.out.println(calen.get(Calendar.HOUR)+":"+calen.get(Calendar.MINUTE)+":"+calen.get(Calendar.SECOND));
calen = new GregorianCalendar();
sleep(1000);
}catch(Exception e){System.out.println("Error");}
}
}
public static void main(String[] args){
Reloj reloj = new Reloj();
}
}
Espero haberme explicado.
Gracias y un saludo!
Puedes declarar un objeto calendar de ésta manera:
Calendar calendar; // objeto Calendar
Éste objeto es solamente un objeto Calendar pero no tiene una instancia de la clase Calendar. Una instancia es la 'escencia' de una clase que se le asigna a un objeto de dicha clase, y un objeto es solamente una variable que es de un 'tipo' de clase. Así que tu puedes instanciar mil y un veces el objeto Calendar y siempre será un solo objeto, ya que al instanciar nuevamente el objeto, la instancia anterior desaparece de memoria.
int i=1;
while(i<1000) {
calendar = Calendar.getInstance(); // un solo objeto con una sola instancia
}
Pero si haces ésto:
int i=1;
while(i<1000) {
Calendar calendar = Calendar.getInstance(); // mil objetos Calendar
}
Salu2.