Auf lokale Variablen zugreifen

Status
Nicht offen für weitere Antworten.

Griffin

Bekanntes Mitglied
Hi Leute!

Als eigentlich totaler Anfänger in Sachen Java hab/wollte ich mir ein kleines Programm geschrieben/schreiben. Es sollte zwei Textfelder haben und den geschriebenen Text verbinden. Eigentlich auch kein Problem, jetzt hab ich aber die Textfelder im Konstruktor generiert und komme von einer anderen Methode nicht mehr an meine zwei Variablen "txtErstens" und "txtZweitens". Ich weiss ich könnte die Textfelder auch in der Klasse definieren, aber ich wollte das mal so probieren :roll:
Gibt es jetzt eine Möglichkeit auf die Variablen zuzugreifen trotz der Tatsache das sie lokal sind? Oder sind sie deshalb lokal, damit man eben nicht darauf zugreifen kann!?

Hier noch der Code, damit man sich das besser vorstellen kann:
Code:
import java.awt.*;
import java.awt.event.*;

public class Verbinder {

	public Verbinder() {
		Frame frm = new Frame("--- Der Verbinder ---");
		TextField txtErstens = new TextField(20);
		TextField txtZweitens = new TextField(20);
		Button btnVerbinden = new Button("Verbinden");
		Button btnEnde = new Button("ENDE");
		btnVerbinden.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				verbinden();
				}
			});
		btnEnde.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
				}
			});
		frm.setLayout(new FlowLayout());
		frm.add(txtErstens);
		frm.add(txtZweitens);
		frm.add(btnVerbinden);
		frm.add(btnEnde);
		frm.setSize(200,150);
		frm.setVisible(true);
	}
	
	public static void main(String[] args) {
		Verbinder o = new Verbinder();
	}

	void verbinden() {
		txtZweitens = txtErstens + txtZweitens //Ergibt ein Fehler "cannont resolve Symbol"
	}
}

P.S. Wenn jemand Ideen hat um den Code zu "optimieren/verbessern" kann er mir das auch posten :)
 
B

Beni

Gast
Du kannst mit dem Wörtchen "final" die TextFelder "haltbarer" machen, so dass sie noch in den anonymen ActionListener-Implementation vorhanden sind, und dort mit ihnen herumrechnen:
Code:
import java.awt.*;
import java.awt.event.*;

public class Verbinder {

   public Verbinder() {
      Frame frm = new Frame("--- Der Verbinder ---");
      final TextField txtErstens = new TextField(20); // nicht mehr ganz so lokal
      final TextField txtZweitens = new TextField(20);
      Button btnVerbinden = new Button("Verbinden");
      Button btnEnde = new Button("ENDE");
      btnVerbinden.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
               txtZweitens.setText( txtErstens.getText() + txtZweitens.getText()  );
            }
         });
      btnEnde.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            System.exit(0);
            }
         });
      frm.setLayout(new FlowLayout());
      frm.add(txtErstens);
      frm.add(txtZweitens);
      frm.add(btnVerbinden);
      frm.add(btnEnde);
      frm.setSize(200,150);
      frm.setVisible(true);
   }
   
   public static void main(String[] args) {
      Verbinder o = new Verbinder();
   }

/*   void verbinden() {
      txtZweitens = txtErstens + txtZweitens //Ergibt ein Fehler "cannont resolve Symbol"
   }*/
}

Der Code in "verbinden" würde sowieso nicht funktionieren, da du hier Textfelder, und keine Strings verwendest (der Unterschied ist unendlich im Quadrat...)

P.S. dann ist aber immer die Frage, macht es überhaupt Sinn lokale Variablen zu verwenden? Zumindest in diesem Beispiel wären Instanzvariablen wohl besser :wink:
 

Griffin

Bekanntes Mitglied
Jepp so funktioniert es!

Als Anfänger hast du mir neue Fragen aufgebracht, die ich warscheinlich nach lesen kann aber es einfacher ist die nachzufragen ;P.
Warum musst da das final hin? Und wie sehe das Beispiel mit Insanzvariablen aus?
Und gut, dass du mir den .getText() Fehler gefunden hast...ich hätte mich da sicherlich gewundert.

Danke!!
 
B

Beni

Gast
Zu den Variablen, die werden oft (nicht immer) so benammselt:
Code:
public class Blupp{
  private int lala = 12; // <-- Instanzvariable
  public static String judihui = "Text"; // <-- Klassenvariable
  private final long HALLO = 123456; // <-- Instanzkonstante

  public void doSomething(){
    int ciao = 2; // <-- Methodenvariable
  }
}
Jetzt kannst Du dir selbst überlegen wie es wohl anders aussehen würde :wink:

Und wieso final? Ich vermute das verhindert das automatische löschen von Methodenvariablen, wenn die Methode verlassen wird.
Bin mir da nicht so sicher, aber es würde doch noch Sinn machen?
 

Illuvatar

Top Contributor
<offtopic>Impliziert ein "final" in Java eigentlich auch "static final"? In C# impliziert "const" nämlich "static const".</offtopic>
 
B

Beni

Gast
<offtopic>ausprobieren! Aber nein, tut es nicht (oder mein Weltbild ist falsch)</offtopic>
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
J Instanzvariablen - Lokale Variablen - warum der Unterschied? Java Basics - Anfänger-Themen 5
T zugriff auf lokale variablen? Java Basics - Anfänger-Themen 6
L Lokale Variablen automatisch durch Schleife erzeugen Java Basics - Anfänger-Themen 2
E Lokale variablen in methode Java Basics - Anfänger-Themen 6
7 Lokale Variablen, Klassenvariablen, Instanzvariablen Java Basics - Anfänger-Themen 15
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
M Anonyme Klasse und lokale Variable Java Basics - Anfänger-Themen 2
B Lokale Datenbank Java Java Basics - Anfänger-Themen 2
A Variablen lokale Variable als private? Java Basics - Anfänger-Themen 3
C lokale Variable verwenden statt globale Java Basics - Anfänger-Themen 7
O Lokale Klassen Java Basics - Anfänger-Themen 15
D Von einer Methode auf eine lokale Variable in der Main zugreifen? Java Basics - Anfänger-Themen 15
A lokale Variable innerhalb "actionPerformed()" Java Basics - Anfänger-Themen 10
N Mit Kontrukor der Oberklasse lokale Variable initialisieren Java Basics - Anfänger-Themen 2
L Lokale Variable und Instanzvariable innerhalb Iterator Java Basics - Anfänger-Themen 8
M anonyme nicht-lokale Klassen Java Basics - Anfänger-Themen 13
M lokale exe-Datei über Java-Applet starten Java Basics - Anfänger-Themen 4
M lokale IP auslesen und auf URL weiterleiten Java Basics - Anfänger-Themen 8
Developer_X Batch Datei soll auf lokale JLibrary zugreifen Java Basics - Anfänger-Themen 11
hdi kleine Verständnisfrage lokale + Member Variable Java Basics - Anfänger-Themen 10
H Lokale Klassen und Zugriff. Java Basics - Anfänger-Themen 10
C Nochmal zu lokale Einstellungen Java Basics - Anfänger-Themen 2
E Lokale Dateien ausführen, IE,FF Java Basics - Anfänger-Themen 3
P Unterschied lokale Variable und Instanzvariable Java Basics - Anfänger-Themen 2
roflomfg Text in eine lokale "*.txt-Datei" speichern Java Basics - Anfänger-Themen 9
K Lokale Variable in for Schleife Java Basics - Anfänger-Themen 5
S lokale Programme per Button starten Java Basics - Anfänger-Themen 4
P Lokale Dateien in Java-Applets einlesen Java Basics - Anfänger-Themen 2
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
Arif Vererbung Methodenvererbung mit finalen Variablen Java Basics - Anfänger-Themen 1
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Variablen umbenennen Java Basics - Anfänger-Themen 1
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
A Übergreifende Variablen Java Basics - Anfänger-Themen 17
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
P Variablen Variablen voneinander abhängig Java Basics - Anfänger-Themen 54
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
L Variablen in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
J Klassen Variablen in andere Klassen oder Methoden übernehmen Java Basics - Anfänger-Themen 1
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
temi Redundante Variablen Java Basics - Anfänger-Themen 29
Aprendiendo Zweifel mit versteckter Variablen Java Basics - Anfänger-Themen 16
L Variablen einmal nur zu weisen Java Basics - Anfänger-Themen 62
D Statische Variablen/Methoden Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S Vererbung Variablen klassenübergreifend nutzen Java Basics - Anfänger-Themen 42
R Auf Variablen einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 1
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
L Variablen dekleration + reset Java Basics - Anfänger-Themen 16
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2
S Variablen Flexible Variablen Namen Java Basics - Anfänger-Themen 3
R Erste Schritte 3 Variablen hochzählen lassen Java Basics - Anfänger-Themen 1
RowdyN Variablen Variablen beliebig benennen? Java Basics - Anfänger-Themen 6
S OOP Variablen zwischen mehreren Klassen Java Basics - Anfänger-Themen 11
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
H Variablen einer Schleife zwischenspeichern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben