Hallo, ich habe hier ein Programm das ich gerne besser verstehen möchte. Nun habe ich mich hingesetzt und es mit hilfe von Google, soweit wie möglich Kommentiert, sollte der schnellste Weg sein ein Programm besser zu verstehen. Ich hoffe das Ihr mir helfen könnt, ich weiß nicht ob ich fehler in den komentaren habe. Vielen Danke im vorraus:
Programm 1
Programm 2
Programm3
Programm 1
Java:
import java.io.*;
import java.text.*;
class Timer
{
static PrintWriter out = new PrintWriter(System.out, true);
static DecimalFormat // statische funktion
f1 = new DecimalFormat("00"), // objekt mit dem 2 x 0 Format
f2 = new DecimalFormat("000"); // objekt mit dem 3 x 0 Format
int min, sek, tsdSek; // var. deklarieren
void stelle(int min, int sek, int tsdSek) // Methode mit 3 int variablen
{
this.min = min; // die obere min gleich der min in der void methode
this.sek = sek; // die obere sek gleich der sek in der void methode
this.tsdSek = tsdSek; // die obere min gleich der min in der void methode
}
void tick() // methode tick
{
if (++tsdSek == 1000)
{
tsdSek = 0;
if (++sek == 60)
{
sek = 0;
min++;
}
}
}
void zeigeAn() // Methode zeigeAn
{
out.println(
f1.format(min) + ":" + f1.format(sek) + ":" + f2.format(tsdSek));
}
public String toString()// gibt ZeigeAn werte als String aus
{
return "Zeit: "
+ f1.format(min) + ":" + f1.format(sek) + ":" + f2.format(tsdSek);
}
}
Programm 2
Java:
class SignalTimer extends Timer // Von der Klasse Timer erben
{
final static char SIGNAL = 7; // Statische Funktion Signal dem wert 7 übergeben
boolean aktiv = false; // Variable aktiv mit false deklarieren
int minSig, sekSig, tsdSekSig; // 3 Variablen dem vartyp int zuweisen
void sigTick() // Methode sigTick
{
tick(); // Methode tick von der Timer klasse geerbt
if (aktiv) // Wenn aktiv ..
{
if ((min == minSig) && (sek == sekSig) && (tsdSek == tsdSekSig)) // wenn min==minSig ... gleich ist
{
Timer.out.print(SIGNAL); // In Timer (Signal) ausgeben
Timer.out.flush(); // ?????
aktiv = false; // aktiv wird zu false
}
}
}
public String toString() // Methode deklarieren
{
return super.toString() // toString von der Timer Klasse erben und ausgeben
+ " Signalzeit: "
+ Timer.f1.format(minSig) + ":"
+ Timer.f1.format(sekSig) + ":"
+ Timer.f2.format(tsdSekSig)
+ (aktiv ? " aktiviert" : " nicht aktiviert");
}
}
Programm3
Java:
class TimerTB
{
final static int N = 5000; // 5000 Ticks in einer funktion mit int N übergeben
public static void main(String[] args) // main methode
{
SignalTimer st = new SignalTimer(); // Objekt st deklarieren
Timer t = new Timer(); // Objekt t deklarieren
st.aktiv = true; // der klasse st (Signaltimer) den wert für aktiv true überliefern
st.tsdSekSig = 999; // der klasse st (Signaltimer) den wert 999 für tsdSekSig übergeben
Timer.out.println(st); // st an die klasse Timer schicken
Timer.out.println(t); // t an die Klasse Timmer schicken
for (int i = 1; i <= N; i++)
{
st.sigTick();
t.tick();
}
Timer.out.println(st); // das gleiche wie oben nochmal
Timer.out.println(t); // das gleiche wie oben nochmal
}
}