Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Warum nur initialisierungen außerhalb von Methoden
public class Swing1 extends JFrame{
JLabel label1=new JLabel("JButtons: ");
label1.irgendwasdraufzugreifen();
}
Obwohl doch label1 schon erzeugt wurde kann man in der Klasse nur im Konstruktor bzw. anderen Methoden darauf (irgendwasdraufzugreifen) zugreifen, aber warum? Das Objekt wurde doch eine Zeile darüber schon mit new JLabel erzeugt. Wieso kann ich dann nicht auf die Attribute und Methoden von JLabel direkt darunter zugreifen?
Wieso kann ich also nur initialisierungen außerhalb von Methoden ausführen?
Der Fehler liegt in deiner Frage. Du kannst Methoden eben nur innerhalb von Methoden aufrufen. Punkt. (mit Muckefuck á la static-Block fange ich nun gar nicht erst an)
"Weil du ausserhalb von Methoden (bzw static Blöcken) keinen Code ausführen kannst sondern nur Variablen initialisieren kannst."
Was macht das für Sinn? Das Objekt im Beispiel oben existiert ja trotzdem. also könnte man die methode doch aufrufen... Wieso kann man das also nur innerhalb von Methoden aufrufen oder ist das einfach so?
Was macht das für Sinn? Das Objekt im Beispiel oben existiert ja trotzdem. also könnte man die methode doch aufrufen... Wieso kann man das also nur innerhalb von Methoden aufrufen oder ist das einfach so?
Was macht das für Sinn? Das Objekt im Beispiel oben existiert ja trotzdem. also könnte man die methode doch aufrufen... Wieso kann man das also nur innerhalb von Methoden aufrufen oder ist das einfach so?
Was macht es für einen Sinn Methodenaufrufe wild zwischen die Methoden schreiben zu können? Wann sollte der denn ausgeführt werden und wer sollte da noch durchsteigen?
Ja, aber ich wollte ihn nicht vollkommen verwirren.
Ich muss aber zugeben selbst keine zu benutzen und wenn ich mal über welche stolperte, sie wieder in den "normalen" Code zurückgeführt habe. Sprich: Ich hab nie wirklich welche gebraucht.
Wird nicht, daher ist es müsig über ein 'würde' zu diskutieren.
Als die Sprachspezifikation festgelegt wurde war den Verantwortlichen wohl durchaus klar wie chaotisch ein solcher Code werden würde.
Naja, würde das nicht ausgeführt werden, wenn ich das Objekt erzeuge, zwischen deren Methoden es steht
Dieser Satz ist gelinde gesagt MUMPITZ!
Naja, würde das nicht ausgeführt werden, wenn ich das Objekt erzeuge.
Ja würde es aber halt nur wenn es in der Methode steht die aufgerufen wird wenn eine Klasse "erzeugt" instanziert wird. Und diese Methode ist halt der Konstruktor. Ich vermute das das auch dein <- zwichen deren Methoden es steh ist ^^
Wenn du mal Klassen brauchst die je nach übergabe unterschiedlich reagieren sollen und daher mehrere Konstruktoren haben wirst du auch verstehen warum alles andere schwachsinn wäre.
Nächster Punkt warum kann man Variablen außer halb und inerhalb von Methoden init. naja ganz einfach außerhalb = Klassenvariablen welche von jeder Methode genutzt werden können innerhalb von Methoden sind es auch nur auf die Methode begrenzte Variablen. Hat den Vorteil das nicht jede Zählvari im Speicher liegt. sondern nach der Methode vom Garbage Collector verschluckt wird.
Also alles im Lot Java ist nicht doof und du auch nicht. Berechtigte Frage mit einer einfachen antwort die einem aber erst einmal gesagt werden muss.