Warum nur initialisierungen außerhalb von Methoden

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi!

Wenn ich z.B. folgende Klasse erstelle:

Code:
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?
 

Wildcard

Top Contributor
Weil du ausserhalb von Methoden (bzw static Blöcken) keinen Code ausführen kannst sondern nur Variablen initialisieren kannst.
 

AlArenal

Top Contributor
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)
 
G

Gast

Gast
"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?
 

Wildcard

Top Contributor
Gast hat gesagt.:
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?
So ist eben die Sprache aufgebaut. Wenn du Code bei der Objekterzeugung ausführen willst mach ihn in den Konstruktor.
 

AlArenal

Top Contributor
Gast hat gesagt.:
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?
 

AlArenal

Top Contributor
KSG9|sebastian hat gesagt.:
OT @Al: Es gibt auch Situationen bei denen static-Blöcke sinn machen :)

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.
 
G

Gast

Gast
Wann sollte der denn ausgeführt werden und wer sollte da noch durchsteigen?

-> Naja, würde das nicht ausgeführt werden, wenn ich das Objekt erzeuge, zwischen deren Methoden es steht?
 

Wildcard

Top Contributor
Gast hat gesagt.:
Naja, würde das nicht ausgeführt werden, wenn ich das Objekt erzeuge, zwischen deren Methoden es steht?
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.
 

TRunKX

Bekanntes Mitglied
Wow dieser Thread ist zu geil!

Schöne Grundsatzdebatte ^^

Also :


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.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Initialisierungen der einzelnen Klassen - Objektorientierung Java Basics - Anfänger-Themen 4
R Unterschiedliche Initialisierungen Java Basics - Anfänger-Themen 3
MarvinsDepression Umgebungsvariable kann Java-Applikationen außerhalb der IDE nicht starten Java Basics - Anfänger-Themen 4
B Zugriffsmodifier, Zugriff außerhalb Package Java Basics - Anfänger-Themen 5
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
L Buttons außerhalb der sichtbaren Activity Java Basics - Anfänger-Themen 8
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2
G Wie rufe ich eine Methode außerhalb eines Projektes auf? Java Basics - Anfänger-Themen 18
U Properties außerhalb des war-Files Java Basics - Anfänger-Themen 1
P Auf Button-Klick außerhalb der GUI-Klasse reagieren Java Basics - Anfänger-Themen 10
S Methode außerhalb der Klasse definieren Java Basics - Anfänger-Themen 5
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
N Files außerhalb eines des jar-files einlesen mac Java Basics - Anfänger-Themen 10
H Enum außerhalb einer Klasse? Java Basics - Anfänger-Themen 2
P Methode außerhalb der Klasse aufrufen Java Basics - Anfänger-Themen 10
F APP außerhalb von Netbeans starten Java Basics - Anfänger-Themen 2
R Switch Werte außerhalb verwenden Java Basics - Anfänger-Themen 2
W Außerhalb auf Variable zugreifen Java Basics - Anfänger-Themen 36
S Zugriff auf Klasse/Methoden außerhalb eines Projektordners einschränken Java Basics - Anfänger-Themen 5
P Unterschied JRE innerhalb/ außerhalb des JDK Verzeichnisses? Java Basics - Anfänger-Themen 5
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
J Java-Klassen außerhalb von Eclipse debuggen Java Basics - Anfänger-Themen 7
G mousemove außerhalb des fensters Java Basics - Anfänger-Themen 9
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
R Eclipse Run Configuration von außerhalb starten Java Basics - Anfänger-Themen 2
C Eigenschaften außerhalb einer Klasse nicht sichtbar Java Basics - Anfänger-Themen 13
M Effizienter Variablen außerhalb einer Schleife zu deklarieren? Java Basics - Anfänger-Themen 1
R Mausposition außerhalb des SWING Fensters Java Basics - Anfänger-Themen 2
G Protected Variablen außerhalb der eigenen Klassenhierarchie sichtbar Java Basics - Anfänger-Themen 5
G Wieso enum Declaration nur außerhalb einer Methode möglich? Java Basics - Anfänger-Themen 9
I double-Variable außerhalb des Try-Catch-Blocks nicht gültig Java Basics - Anfänger-Themen 2
T Jar: Zugriff auf Dateien inner- unter außerhalb d. jar-Files Java Basics - Anfänger-Themen 3
A dateireferenzierung innerhalb/außerhalb des archivs Java Basics - Anfänger-Themen 2
X Malen außerhalb der paint() Methode Java Basics - Anfänger-Themen 4
R Klasse aus Packet kann nicht außerhalb zugreifen Java Basics - Anfänger-Themen 8
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
L Rekursive Methoden Java Basics - Anfänger-Themen 14
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Kotelettklopfer Methoden nicht aufrufbar Java Basics - Anfänger-Themen 34
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
S Methoden - Warum int wenn auch void? Java Basics - Anfänger-Themen 3
H Kann man Methoden öfter aufrufen? Java Basics - Anfänger-Themen 2
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
Zeppi OOP Methoden mit einander Verknüpfen Java Basics - Anfänger-Themen 6
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
A Parametar übergabe zwischen Methoden Java Basics - Anfänger-Themen 26
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
Junger_Basileus Celsius -> Fahrenheit / Strukturierung in statischen Methoden Java Basics - Anfänger-Themen 7
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 6
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Generics Methoden Java Basics - Anfänger-Themen 7
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
S throws bei Methoden Java Basics - Anfänger-Themen 4
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
I Greedy Methode Methoden nutzen Java Basics - Anfänger-Themen 3
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben