Sto creando una piccola applicazione che scrive per 5 volte l'ora corrente, composta da tre classi:

AppletClock
codice:
import java.awt.*;
import javax.swing.*;

public class AppletClock {
   public static void main(String arg[]) {
		Clock calendarioEOrologio;
		calendarioEOrologio = new Clock();
		calendarioEOrologio.start();
		for(int i=0; i<5; i++) {
			System.out.println(calendarioEOrologio.oraEDataCorrente());
		}
	}
}
Clock
codice:
import java.util.*;

public class Clock extends Thread {
	
	private static Calendar dataOdierna;
	private Calendar orario;
	private static String data;
	
	public Clock() {
		data = "NULL";
	}
	
	public void run() {
		data = "Oggi è " + OraEData.ritornaNomeGiorno();
		data = data + ", " + OraEData.ritornaNomeMese() + " " + OraEData.ritornaNumeroAnno();
		data = data + "\n" + "Ora corrente: " + OraEData.oraH24();
		try {
			Thread.sleep(1000);
		} catch(Throwable e) {}
	}
	
	protected String oraEDataCorrente() {
		String oraEData;
		oraEData = data;
		return data;
	}
	
}
c'è anche una terza classe chiamata "OraEData" che funziona perfettamente (per semplificare il post l'ho omessa)

Solo che se faccio partire il programma, il thread non viene iniziato, tanto è vero che per 5 volte mi scrive "NULL".

In cosa ho sbagliato?