Variablen Verwendung von Variablen in anderer Klasse

G33K

Mitglied
Moin zusammen,

ich schreibe gerade mein erstes großes Programm und hänge an einer stelle fest. Dazu muss ich sagen das ich Anfänger im Bereich Programmierung bin.

Zu meinem Problem:

Ich habe ein Packet erstellt. In diesem Paket sind mehrere Klassen.
In einer Unterklasse habe ich folgendes gemacht:

Java:
public class Routername {
   private boolean routername_ok ;
   private String routername;
 
   static void pruefen() {
     // Hier folgt unwichtiger Code für das Problem...
     // Hier kommt ein Teil des Problems
     routername = ("gw");
     Routername routername2 = new Routername();
     routername2.setRoutername(routername);
   }
  
   public void setRoutername(String routername) {
     this.routername = routername;
   }
  
   public String getRoutername() {
     return routername;
   }

Das ist meine Unterklasse.
Jetzt geht es in die Hauptklasse wo ich den Routername aufrufen möchte:
Java:
public class index extends JFrame {
   private Routername router_name = new Routername();
  
   public index() {
     System.out.println("Ich bin der Main 2 NAme " + router_name.getRoutername());
   }
   ....
}

Der ausgebene Wert von router_name.getRoutername() ist NULL. Kann mir jemand sagen was ich falsch mache?

Vielen Dank


 
Zuletzt bearbeitet:

Joose

Top Contributor
Du initialisierst das Attribut "routername" in der Klasse "Routername" nur in der set Methode.
Diese wird aber in deiner Hauptklasse nicht aufgerufen. Daher bleibt das Attribut uninitialisiert -> null

Anmerkung zum Code:
  • Ein Klasse und ein Attribut der Klasse gleich zu nennen ist nicht gerade praktisch.
  • Klassenamen werden in Großgeschrieben -> UpperCamelCase
  • Vermeide "_" in Variablennamen und verwende stattdessen die CamelCase Schriftweise.
  • Man sollte nicht von JFrame ableiten wenn man nicht vorhat dessen Funktionalität zu erweitern (ein bestimmtes Layout setzen ist kein Funktionalität).
 

G33K

Mitglied
Vielen Dank für die schnelle Antwort Joose,

ich war der Meinung das ich das Attribut "routername" in der Klasse "Routername" einen Wert zuweise und dieser durch die get Methode in der Hauptklasse abgerufen wird.
Scheinbar ein Denkfehler von mir in meiner Unwissenheit und Neuland "Programmieren".
Also was in der Hautpklasse zusehen ist, ist nicht der ganze Code. Sehr abgekürzt...
Ich rufe eine GUI auf und einen ActionListener der dann in die Klasse "Routername" geht. Dort gebe ich Daten ein und das funktioniert auch alles.

Kannst du mir vielleicht erklären was ich falsch mache?

Sorry das ich diese wichtige Information nicht mit abgebildet habe.

Zu deinen Anmerkungen:
1. Stimme ich dir zu und merke es selbst das es nicht praktisch ist.
2 und 3: Danke für den Tipp und werde ich beherzigen

Vielen Dank nochmal für die schnelle Hilfe :)
 

VfL_Freak

Top Contributor
Moinsen,

Java:
public class Routername
{
   private boolean routername_ok ;
   private String routername;

   static void pruefen() {
     // Hier folgt unwichtiger Code für das Problem...
     // Hier kommt ein Teil des Problems
     routername = ("gw");
     Routername routername2 = new Routername();
     routername2.setRoutername(routername);
   }

   public void setRoutername(String routername) {
     this.routername = routername;
   }

   public String getRoutername() {
     return routername;
   }

Das ist meine Unterklasse.
Jetzt geht es in die Hauptklasse wo ich den Routername aufrufen möchte:
Java:
public class index extends JFrame {
   private Routername router_name = new Routername();

   public index() {
     System.out.println("Ich bin der Main 2 NAme " + router_name.getRoutername());
   }
   ....
}
in Deiner Unterklasse erzeugst Du zwar ein neues Objekt von Routername und rufst auch die Methode getRoutername auf, nur ist dieser eben null !!
Gefüllt wird er bei Dir nur beim Aufruf von pruefen und dann implizit durch setRoutername!!

Jetzt klarer ??
Gruß Klaus
 

G33K

Mitglied
Hallo Vfl_Freak,

danke für deine Antwort nur leider noch nicht klarer:
Ich lese daraus das es zurzeit Null ist da das Attribut "routername" nicht gefühlt wird. Kann auch nur gefühlt werden wenn ich die Methode aufrufe und das mache ich wie in meinem 2 Post beschrieben. Zur verdeutlichung:
Java:
public class index extends JFrame {
 
private Routername router_name = new Routername();
 
 
public index() {
 
     router_name.pruefen();
 
     System.out.println("Ich bin der Main 2 NAme " + router_name.getRoutername());
 
}
 
....
 
}
 

Joose

Top Contributor
ich war der Meinung das ich das Attribut "routername" in der Klasse "Routername" einen Wert zuweise und dieser durch die get Methode in der Hauptklasse abgerufen wird.

Ja in der Methode "setRoutername" weißt du dem Attribut auch einen Wert zu. Nur wird diese Methode "setRoutername" jemals von dir aufgerufen?
Auf jedenfall ist davon im oberen Code nichts zu sehen das diese Methode aufgerufen wird.

Ich rufe eine GUI auf und einen ActionListener der dann in die Klasse "Routername" geht. Dort gebe ich Daten ein und das funktioniert auch alles.

Kannst du mir vielleicht erklären was ich falsch mache?

Was bedeutet "der dann in die Klasse Routername geht"? Man kann nicht in eine Klasse gehen ;) man kann von einer Klasse ein Objekt erzeugen und die Methoden des Objektes aufrufen.
Bzw. man kann direkt statische Methoden der Klasse aufrufen.

Meinst du damit es wird die statische "pruefen" Methode aufgerufen (vom ActionListener)?
Wenn dem so ist dann ist das Problem klar. Du erstellst zwei Objekte deiner Klasse "Routername".
Das 1.Objekt wird in der Klasse "index" erstellt. Von diesem Objekt wird niemals die set Methode aufgerufen.
Das 2.Objekt wird in der Klasse "Routername" in der statischen Methode "pruefen" erstellt. Hier wird die set Methode aufgerufen.
Leider machst du nichts weiter mit diesem Objekt nichts weiter, daher räumt der GC das Objekt wieder weg.

Mögliche Lösung: Die Methode "pruefen" wird non-static und anstatt ein neues Objekt von Routername zu erstellen, rufst du einfach nur die entsprechende set Methode auf. (da du die Methode pruefen ja schon von einem Routername Objekt aufgerufen hast).

Schaue dir nochmals die Grundlagen der OOP an, die dürften bei dir noch nicht zu 100% sitzen :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Verwendung jna Java Basics - Anfänger-Themen 15
L Zufälligen Zahlencode, ohne mehrfacher Verwendung einer Ziffer Java Basics - Anfänger-Themen 15
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
A OOP Richtige Verwendung von ArrayList und equals Java Basics - Anfänger-Themen 24
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
b1ck Scanner schließen, erneute Verwendung Java Basics - Anfänger-Themen 12
H Datentypen Fehler bei Verwendung von enum Java Basics - Anfänger-Themen 9
A Verwendung von Interfaces Java Basics - Anfänger-Themen 7
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
M Verwendung von System.exit(0) problematisch? Java Basics - Anfänger-Themen 1
D native Methoden, Verwendung? Java Basics - Anfänger-Themen 8
fLooojava kleines Projekt - Verwendung von Youtube Java Basics - Anfänger-Themen 22
X Array Ausgabe bei Verwendung von 2 Schleifen erklären Java Basics - Anfänger-Themen 8
G verwendung von regex Java Basics - Anfänger-Themen 3
K Problem bei der Verwendung von Gregorian Calender Java Basics - Anfänger-Themen 3
T NullPointerException bei Verwendung einer Klasse einer anderen .jar datei Java Basics - Anfänger-Themen 3
B Wie wichtig ist Verwendung von StringBuffer in Schleifen? Java Basics - Anfänger-Themen 10
B Verwendung von Arrays Java Basics - Anfänger-Themen 2
U Verwendung von Interface Java Basics - Anfänger-Themen 33
A Methoden Verwendung von crypt? Java Basics - Anfänger-Themen 2
D Muss ich eigentlich immer auf die Verwendung des richtigen Datentyps achten? Java Basics - Anfänger-Themen 7
D reg Exp, verwendung des endezeichen "$" Java Basics - Anfänger-Themen 5
C Verwendung von Schleifen? Java Basics - Anfänger-Themen 18
J Datentypen Array - Verwendung im Konstruktor Java Basics - Anfänger-Themen 8
C Verwendung von primitiven Datentypen Java Basics - Anfänger-Themen 8
J Problem mit NullPointerException bei Verwendung eines Arrays Java Basics - Anfänger-Themen 6
D Frage zur Verwendung einer Schnittstelle Java Basics - Anfänger-Themen 4
A Verwendung von abstrakten Klassen Java Basics - Anfänger-Themen 17
D Verwendung der Klasse Map Java Basics - Anfänger-Themen 9
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
F Umlaute eines Strings entfernen (Verwendung von this?) Java Basics - Anfänger-Themen 2
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
I Verwendung von Constant Field Values Java Basics - Anfänger-Themen 4
J Verwendung von eigenen Klassen in JSP Java Basics - Anfänger-Themen 2
G try. catch Verwendung Java Basics - Anfänger-Themen 11
Z Beispiel Würfelspiel mit Verwendung von Feldern Java Basics - Anfänger-Themen 7
H Verwendung lokaler Einstellungen Java Basics - Anfänger-Themen 4
G getName, substring Verwendung Java Basics - Anfänger-Themen 3
I Fehler bei Verwendung von substring Java Basics - Anfänger-Themen 4
S Verwendung von Super Java Basics - Anfänger-Themen 7
M Verwendung von Robot... wie? Java Basics - Anfänger-Themen 6
M Verwendung von "this" Java Basics - Anfänger-Themen 2
U Liste importieren und für weitere Verwendung sichern Java Basics - Anfänger-Themen 4
feuervogel Integral unter Verwendung der Java-Bibliothek berechnen Java Basics - Anfänger-Themen 10
frau-u Probleme mit richtiger Verwendung von FileInputStream Java Basics - Anfänger-Themen 2
S valueOf() vs. toString() Verwendung??? Java Basics - Anfänger-Themen 13
A Kurze Frage zur Verwendung von this Java Basics - Anfänger-Themen 9
S Verwendung bitweiser Operatoren Java Basics - Anfänger-Themen 6
F Verwendung von this in statischen Kontext nicht möglich Java Basics - Anfänger-Themen 8
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
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
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

Ähnliche Java Themen

Neue Themen


Oben