[Duda] Como actualizar un objeto en Java

Iniciado por Brax, 5 Abril 2014, 16:33 PM

0 Miembros y 1 Visitante están viendo este tema.

Brax

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!

Mitsu

Puedes declarar un objeto calendar de ésta manera:

Código (=java) [Seleccionar]

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.

Código (=java) [Seleccionar]

int i=1;
while(i<1000) {
    calendar = Calendar.getInstance(); // un solo objeto con una sola instancia
}


Pero si haces ésto:

Código (=java) [Seleccionar]

int i=1;
while(i<1000) {
    Calendar calendar = Calendar.getInstance(); // mil objetos Calendar
}



Salu2.