Java: Methode auf erstmaliges Ausführen überprüfen
vom 25.04.2011, 09:43 Uhr
berndorin hat geschrieben:Du kannst die static Variable auch in deiner aktuellen Klasse verwenden.
Dazu nur ein Tipp: Mach die Variable private um das Geheimnisprinzip einzuhalten.
Dies müsste dann etwa so aussehen:
- Code: Alles auswählen
public class yourapplication {
private static int repeat=0;
public int dostuff() {
int dostuff=0;
if (this.repeat==0)
{
this.repeat=1;
dostuff=123;
}
else
{
dostuff=456;
}
return dostuff;
}
}
Ohne jetzt deinen Code noch einmal auszuprobieren würde ich sagen, dass dies so nicht funktionieren wird. Weiter oben habe ich ja dann schon die Idee geäußert, dass man die Variable ja einfach auf static setzen kann, sodass dann keine zusätzliche Klasse benötigt wird. Aber wie ja auch schon gesagt wurde, wird das dann nicht funktionieren, was ich mittlerweile auch so bestätigen kann. Glaubst du denn wirklich, dass alleine durch den Zusatz private hier noch etwas ändern wird und die Methode dann so dennoch funktioniert?
Habe mir gerade einmal ein Beispielprojekt erstellt:
Hauptprogramm:
- Code: Alles auswählen
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Test1 blubb=new Test1();
System.out.println(blubb.dostuff());
System.out.println(blubb.dostuff());
System.out.println(blubb.dostuff());
}
}
Klasse Test1:
- Code: Alles auswählen
public class Test1 {
private int counter=0;
public int dostuff()
{
if(counter++==0)
{
return 123;
}
else
{
return 456;
}
}
}
Habe in der Klasse Test1 die Variable auf static gesetzt und das Ergebnis blieb gleich. Bei static kommt es auf den Aufruf an wenn immer weider einer neue Klasse erstellt wird, muss man static nehmen, da static eine Klassenvariable ist und in allen Klassen gleich ist. Wenn man nur eine Klasse hat, reicht eine ganz normale als private deklarierte Variable.
Hallo,
du hast einfach nur etwas falsch interpretiert. Ich bin schon sehr gut und erfahren in der Programmierung mit JAVA. Du hast ja das "Problem", dass die Variable nicht konstant ist bzw. lokal. Du sprichst ja auch von "lokalen Variablen". Wenn du globale Variablen verwendest, gibt es keine Probleme.
Mein Vorschlag:
- Code: Alles auswählen
// Klasse Testklasse wird erzeugt
public class Testklasse{
// Datenfelder werden deklariert
// boolean Variable, je nachdem, ob die Methode aufgerufen wurde.
public static boolean aufgerufen;
// Konstruktor der Klasse
public Testklasse(){
// Variable wird Anfangszustand zugewiesen
aufgerufen = false;
}
// Methode
public static void tuEtwas(){
aufgerufen = true;
doSomething();
}
}
Bei Fragen bitte einfach melden.
Link dieser Seite https://www.talkteria.de/forum/topic-160285-10.html
Ähnliche Themen
Weitere interessante Themen
- Calla Pflanze 2136mal aufgerufen · 1 Antworten · Autor: Schlafendes Wiesel · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Calla Pflanze
- Tipps zur Geranien Pflege 2384mal aufgerufen · 1 Antworten · Autor: C97 · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Tipps zur Geranien Pflege
- Kräuter auf Balkon - was ist sinnvoll und robust? 1298mal aufgerufen · 1 Antworten · Autor: Carmili · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Kräuter auf Balkon - was ist sinnvoll und robust?
- Luftwurzeln der Monstera: Tropfenbildung/Gestank 1767mal aufgerufen · 1 Antworten · Autor: Diamante · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Luftwurzeln der Monstera: Tropfenbildung/Gestank