Variable einer Methode in anderer Methode aufrufen

Status
Nicht offen für weitere Antworten.

Dragsteal

Mitglied
Hi,
bin neu hier im Forum und habe mich nach schier endloser Suche
dazu durchgerungen hier nachzufragen.

Mein Problem:
Ich habe in einer Methode eine String Variable text deklariert und ihr
natürlich auch einen "Wert" zugewiesen.
Nun möchte ich genau diese Variable in einer anderen Methode derselben
Klasse wieder aufrufen.
Es soll aber keine extra Klasse dafür angelegt werden, das sei schon einmal vorweg gesagt.

Meine Frage:
Ist das so bei Java überhaupt möglich und wenn ja wie genau funktioniert das?


MfG

Dragsteal
 

AmunRa

Gesperrter Benutzer
Du könntest den String als Klassenvriable abspeichern

dann ist er in jeder Methode sichtbar
 

Dragsteal

Mitglied
Ich poste hier am besten doch nochmal meinen code damit das ganze besser zu sehen ist.

Code:
import java.io.*;
import java.net.*;

public class HTTPServer implements Runnable{

	ServerSocket server = new ServerSocket(1100);

	public HTTPServer() throws IOException{
		while (true){
			Socket client = server.accept();
			DataInputStream input = new DataInputStream(client.getInputStream());
			DataOutputStream output = new DataOutputStream(client.getOutputStream());
			output.writeUTF(text);    //hierhin soll die Variable text übergeben werden
			output.flush();
			input.close();
			output.close();
		}
	}

	public static void main(String[] args){
		try{
			HTTPServer server = new HTTPServer();
		}
		catch(IOException e){
			System.out.println(e);
		}
	}

	public void run() {
		for(int i=10; i<=60; i+=10){
			try{
				Thread.sleep(10000);
			}
			catch(InterruptedException e){
			}
			String text="Zeit in Warteschleife: "+i+ " Sekunden";     //die Variable text wird erst hier definiert
		}
	}
}


Das Problem bei deiner möglichkeit ist, dass ich nicht wirklich weiß wie ich dann
die Klassenvariable verändern kann, damit diese Veränderung auch in der anderen Methode
sichtbar wird.
 

AmunRa

Gesperrter Benutzer
Code:
import java.io.*; 
import java.net.*; 

public class HTTPServer implements Runnable{ 

   ServerSocket server = new ServerSocket(1100); 

  private String text="";  // <==== nun kannst du in allen Methoden darauf zugreifen

   public HTTPServer() throws IOException{ 
      while (true){ 
         Socket client = server.accept(); 
         DataInputStream input = new DataInputStream(client.getInputStream()); 
         DataOutputStream output = new DataOutputStream(client.getOutputStream()); 
         output.writeUTF(text);    //hierhin soll die Variable text übergeben werden 
         output.flush(); 
         input.close(); 
         output.close(); 
      } 
   } 

   public static void main(String[] args){ 
      try{ 
         HTTPServer server = new HTTPServer(); 
      } 
      catch(IOException e){ 
         System.out.println(e); 
      } 
   } 

   public void run() { 
      for(int i=10; i<=60; i+=10){ 
         try{ 
            Thread.sleep(10000); 
         } 
         catch(InterruptedException e){ 
         } 
          text="Zeit in Warteschleife: "+i+ " Sekunden";     //hier wird der Text dann zugewiesen
      } 
   } 
}
 

Landei

Top Contributor
OMG!

In deinem Code ist so ziemlich alles daneben:
1)Die Methode run() zu definieren reicht nicht, es muss auch irgendwo einem Thread übergeben werden. Probiere einfach mal ein System.our.println() in run(), dann wirst du sehen, dass das gar nicht läuft. Also brauchst du irgendwo ein new Thread(this).start(); Allerdings solltest du dir mal java.util.TimerTask anschauen, der ist wahrscheinlich geeigneter.

2) Woher soll denn dein Konstruktor wissen, wann da noch etwas kommt oder wann er sich (und die Streams) schließen soll? Die ganze Logik ist verquer. Eine Möglichkeit wäre, alles (bis auf den Thread-Start) in deine run()-Methode zu packen, nach dem Schema (mal als Pseudocode):

Code:
public HTTPServer()  {
  new Thread(this).start();
}

public void run() {
  //Streams und so inititalisieren
  //Schleife ausführen und Text in den Stream schreiben
  //Streams schließen
}

public static void main(String[] args) throws Exception{ 
  new HTTPServer();
}
 

Dragsteal

Mitglied
@:Amun RA

Leider funktioniert das so nur nicht.
text ist nun zwar für alle Methoden verfügbar, jedoch
wird der in Zeile 39 übergebene Wert nicht für alle
anderen Methoden übernommen.
Und genau das ist ja mein Problem.
 
S

SlaterB

Gast
doch, oder poste ein Quellcode mit Bedienungsanleitung zur Ausführungen
und Erklärung, was darin nicht funktioniert
 

Landei

Top Contributor
ABER ES IST DOCH NICHTS IM KONSTRUKTOR, DAS SAGT: "WARTE DOCH BITTE MAL, BIS DER THREAD EIN ERGEBNIS LIEFERT!"

Ob die Text-Variable gefüllt ist oder nicht, bevor sie gelesen wird, ist Glückssache. Und dann liest du sie genau EINMAL aus, und überträgst EINMAL Daten in deinem Stream.
 

Dragsteal

Mitglied
Im großen und ganzen soll das Programm so funktionieren,
dass mehrere Clients eine Anfrage an den Server stellen und
der sie dann für 60 Sekunden in eine Warteschleife packt.
Zusätzlich soll er jedem Client alle 10 Sekunden sagen, wie
lange dieser Client schon wartet.
Die Clients sollen aber natürlich alle zu einer unterschiedlichen
Zeit die Anfrage stellen können und sollen dann auch natürlich
die richtige Wartezeit zurückbekommen.

Ich hatte es bisher nur hinbekommen, dass die Clients nacheinander
abgearbeitet werden.
Mir wurde gesagt das Problem könnte ich mit Threads lösen.
Der Ursprungscode sieht folgendermaßen aus:

Code:
import java.io.*;
import java.net.*;

public class HTTPServer{

	ServerSocket server = new ServerSocket(1100);

	public HTTPServer() throws IOException{
		while (true){
			Socket client = server.accept();
			DataInputStream input = new DataInputStream(client.getInputStream());
			DataOutputStream output = new DataOutputStream(client.getOutputStream());
			for(int i=10; i<=60; i+=10){
				try{
					Thread.sleep(10000);
				}
				catch(InterruptedException e){
				}
				output.writeUTF("Zeit in Warteschleife: "+i+ " Sekunden");
			}
			output.flush();
			input.close();
			output.close();
		}
	}

	public static void main(String[] args){
		try{
			HTTPServer server = new HTTPServer();
		}
		catch(IOException e){
			System.out.println(e);
		}
	}
}
 

Schandro

Top Contributor
text ist nun zwar für alle Methoden verfügbar, jedoch
wird der in Zeile 39 übergebene Wert nicht für alle
anderen Methoden übernommen.

Warum baust du nicht ein paar Sytem.out.println() ein und guckst, ob:
text="Zeit in Warteschleife: "+i+ " Sekunden";
überhaupt aufgerufen wird?

Is nur en Tipp für die Zukunft, die anderen ham schließlich schon die Lösung gesagt...
 

Dragsteal

Mitglied
wenn ich nun die Streams in dir run-Methode packe meckert er rum, dass
die IOException nicht erkannt wird. Wenn ich dies dann mit
Code:
public void run()throws IOException
hinzufüge meckert er weiter oben rum, das dies nicht ginge
weil ich oben Runnable implementiere.

Was mache ich falsch?
Oder brauch ich Runnable nicht?
 

Landei

Top Contributor
Wenn du ein Interface implementierst, musst du dich an die vorgegebenen Definitionen der Methoden halten, d.h. du kannst nicht einfach Exceptions hinzufügen.

In diesem Beispiel ist das throws sowieso ziemlich zweckfrei: Wer soll deiner Meinung nach die Exception abfangen? Schließlich wird der Code in einem anderen Thread ausgeführt, und dieser Thread weiß bestimmt nicht, wie du auf eine IOException reagieren willst. Kurz gesagt: run() muss sich selber um das Problem kümmern (natürlich kann run() es auch irgendwie "weitermelden", aber eben nicht über den normalen Exception-Mechanismus).

Die Kern-Frage ist also: Was soll passieren, wenn eine IOException auftritt, und das kannst nur du selber wissen...
 

Dragsteal

Mitglied
Ok das mit der Exception hab ich nun hinbekommen.

Nun ist aber das Problem, dass nur ein Client abgearbeitet wird und ein
weiterer nicht.

Was müsste ich denn genau verändern, damit beliebig viele Clients, genau zu
deren Anfragezeitpunkt bearbeitet werden? (basierend auf den letzten "großen"
Code den ich gepostet habe)
 

Dragsteal

Mitglied
Hi,
ich bins mal wieder. Meine Frage wurde ja nicht ganz so zu meiner Zufriedenheit geklärt. (Wir sind da nämlich ein wenig
vom Thema abgekommen, was aber nicht schlimm ist, da ich das Problem dann doch noch erfolgreich lösen konnte^^)

Allerdings würde ich trotzdem nochmal gerne auf die Ursprungsfrage zurückkehren.

genaue Frage:
Wie kann ich eine Variable in Methode A definieren und dann in Methode B aufrufen? (allgemein)
(Die Antwort ist zwar sicherlich einfach, aber ich hab noch keine Lösung gefunden. :bahnhof: )

Falls das mit getter und setter gehn soll, kann mir das denn genau erklären (oder nen guten Link dazu geben?),
denn irgendwie versteh ich das nicht richtig.^^

MfG
Dragsteal
 

Dragsteal

Mitglied
nagut, wenn ihr das Thema schon für euch geschlossen habt, dannn werd ich mich wohl weiter
umschaun müssen :###, da ich dafür nicht extra ein neues thema erstellen möchte. :?

mfg
Dragsteal
 
S

SlaterB

Gast
da gibts nicht viel zu sagen,
du brauchst ein Klassenattribut so wie

> ServerSocket server

in deinem Posting von "Verfasst am: 17. 10. 2008, 9:58 "

und dann kannst du in allen Methoden darauf zugreifen, entweder direkt oder per setter/ getter,
fertig

definiert wird das dann nicht in Methode A sondern direkt in der Klasse,
in A wird der Variablen vielleicht etwas zugewiesen
 

Dragsteal

Mitglied
Ich poste hier am besten nochmal den Code, ich denke dann wird vielleicht besser ersichtlich was ich
genau vorhabe.^^

Code:
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Chatclient extends JFrame {

//-----------------------------------------------
  
  Socket client = new Socket();
  Socket server;
  private String ip;     //hier wird die Variable ip deklariert
  
  JFrame      window      = new JFrame("Login");
  JTextField  nickField   = new JTextField();
  JTextField  ipField     = new JTextField();
  JLabel      nickLabel   = new JLabel("Nickname:");
  JLabel      ipLabel     = new JLabel("Server-IP:");
  JButton     loginButton = new JButton("Login");    
  JTextField  inputfield  = new JTextField();
  JTextArea   outputarea  = new JTextArea();
  
//-----------------------------------------------
  
  public Chatclient(){
      init();
      System.out.println(ip);      //hier sollte ip testweise mal ausgegeben werden um zu schauen, ob alles klappt
      try{
        server = new Socket(ip,80);      //und hier soll ip letzten endes rein!
      }
      catch(IOException e){        
      }
  }
    
//-----------------------------------------------
  
  public void init(){    
    window.setSize(200, 125);
    window.setResizable(false);
    window.setLocationRelativeTo(null);
    window.getContentPane().setLayout(new BoxLayout(window.getContentPane(), BoxLayout.Y_AXIS));
    window.getContentPane().add(nickLabel);
    window.getContentPane().add(nickField);
    window.getContentPane().add(ipLabel);
    window.getContentPane().add(ipField);
    window.getContentPane().add(loginButton);
    window.setVisible(true);
    loginButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        loginEvent(e);
      }
    });    
  }
  
//-----------------------------------------------
  
   void loginEvent(ActionEvent e){
    window.remove(loginButton);
    window.remove(nickLabel);
    window.remove(ipLabel);
    window.remove(nickField);
    window.remove(ipField);
    
    window.setTitle("LAN-Chat");
    window.setSize(600, 400);
    window.setLocationRelativeTo(null);
    window.getContentPane().setLayout(new BorderLayout());
    window.getContentPane().add("South", inputfield);
    window.getContentPane().add("Center", outputarea);
    outputarea.setEditable(false);
    window.setVisible(true);
    
    ip = ipField.getText();      //hier wird der Variable erst der Wert zugewiesen
  }
   
//-----------------------------------------------  
  
  public boolean handleEvent(Event evt){
    if(evt.id==Event.WINDOW_DESTROY)
      System.exit(0);
    return false;
  }
  
//-----------------------------------------------
  
  public static void main(String[] args){
    try{
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e){      
    }
    new Chatclient();
  }
}

Wie du vielleicht sehen dürftest, wird der Variable (hier ip) in einer Methode (Beispiel war A) der Wert zugewiesen,
aber in einer anderen Methode (Beispiel war B) wird dieser Wert erst gebraucht.

EDIT:
Bitte nicht über das eventuelle Chaos bzw. die umständlichen Methoden im Code wundern, ist erstma nur
übergangsweise. Wichtig ist erstma, dass alles klappt, aufgeräumt wird später! :wink:
 
S

SlaterB

Gast
das Programm kompiliert doch, was ist deine Frage? immer genau alles erklären,

aber so wie es da steht macht das keinen Sinn:
der Konstruktor ChatClient wird direkt beim Erzeugen des Objektes ausgeführt, wann sonst?
also wird nach 5 Nanosekunden bereits auf ip zugegriffen,

ip wird aber erst durch einen Login-Button gesetzt, also potentiell erst 10 Sekunden später,
dann nützt es doch nicht mehr, dass sich der Wert von ip ändert..

du solltest den Code von Zeile 29-34 vielleicht nach Zeile 76 verschieben,
 

Dragsteal

Mitglied
ok...darauf hät ich auch kommen können xD
Danke auf jeden Fall, das hat mir erstma sehr weitergeholfen^^
aber ich denke, ich sollte mir die sache mit den gettern und settern trotzdem mal anschauen,
schadet ja nie sowas zu wissen. ;)

mfg
Dragsteal
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
S Wie erstelle ich eine Vorbedingung für eine Variable einer Methode ? Java Basics - Anfänger-Themen 5
H Innerhalb einer Methode eine Variable der aufrufenden Methode ändern? Java Basics - Anfänger-Themen 2
J Methode ".charAt()" einer "int" variable zuschreiben Java Basics - Anfänger-Themen 3
D Wert einer Variable in paint-Methode verwenden Java Basics - Anfänger-Themen 2
E Methoden Variable aus einer anderen Methode in einer Methode aufrufen Java Basics - Anfänger-Themen 7
D Von einer Methode auf eine lokale Variable in der Main zugreifen? Java Basics - Anfänger-Themen 15
E Variable aus einer Methode heraus in eine andere Klasse übergeben Java Basics - Anfänger-Themen 13
F Variable in einer Methode Java Basics - Anfänger-Themen 2
A Wert einer Variable an eine Methode in einer anderen Klasse. Java Basics - Anfänger-Themen 4
L Auf aktualisierte Variable einer anderen Methode zugreifen Java Basics - Anfänger-Themen 15
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
V Variablen statische Variable einer Objektvariable zuordnen Java Basics - Anfänger-Themen 3
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
J Ungewollte Wertveränderung einer Variable Java Basics - Anfänger-Themen 9
L Variable aus einer Klasse in einer anderen Klasse nutzen Java Basics - Anfänger-Themen 6
S Warum kann ich nicht mehr als eine Variable in einer for Schleife deklarieren ? Java Basics - Anfänger-Themen 1
J Wert eines Arrays einer Variable zuweisen, sobald der Wert eines anderen Arrays eintritt Java Basics - Anfänger-Themen 2
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
D Aufruf einer statischen Variable Java Basics - Anfänger-Themen 1
D Einer Variable automatisch Zahlen hinzuaadieren Java Basics - Anfänger-Themen 3
J Erste Schritte Problem mit einer bool-Variable in einem Bot-Programm Java Basics - Anfänger-Themen 1
H Variable einer anderen Klasse importieren Java Basics - Anfänger-Themen 2
OlafHD Variable aus einer anderen Klasse Verwenden Java Basics - Anfänger-Themen 11
J Wert einer Variable erhöhen Java Basics - Anfänger-Themen 5
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
K Veränderung einer Variable von einer anderen Klasse aus Java Basics - Anfänger-Themen 12
S Umgebungsvariable Wert einer Variable global nutzen Java Basics - Anfänger-Themen 3
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
Shams Synchronized-Schlüsselwort bei Inkrementierung einer statischen Variable Java Basics - Anfänger-Themen 13
W Klassen Variable einer anderen Klasse ändern (Threads) Java Basics - Anfänger-Themen 3
fLooojava Probleme bei der Übergabe einer Variable Java Basics - Anfänger-Themen 14
A Variablen Übergeben des Inhalts einer Variable in einen String Java Basics - Anfänger-Themen 17
M Auf die Variable einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 9
M Variable aus einer anderen Klasse aktualisieren Java Basics - Anfänger-Themen 2
D Name einer Variable als String nutzen Java Basics - Anfänger-Themen 13
D JTextField verwenden ohne Eingabe einer Variable Java Basics - Anfänger-Themen 4
MiMa Mehrere Daten in einer Variable? Java Basics - Anfänger-Themen 25
I Variablen Wie initialisiert man in Java eine Variable ohne das Setzen von 0 oder einer anderen Zahl? Java Basics - Anfänger-Themen 8
P Kapselung Variable innerhalb einer inneren Klasse ansprechen ohne ein Objekt erzeugen zu müssen? Java Basics - Anfänger-Themen 6
D Wert einer Variable aus Klasse A mit Klasse B ändern Java Basics - Anfänger-Themen 11
W Klassen Kann eine Variable nicht aus einer Klasse bekommen Java Basics - Anfänger-Themen 9
L Variable einer ListenerKlasse nutzen Java Basics - Anfänger-Themen 3
C Sichbarkeit einer Variable Java Basics - Anfänger-Themen 31
S Variable aus einer anderen Klasse verwenden Java Basics - Anfänger-Themen 3
B Werte der Variable aus Klasse JTextArea in einer Datei der Klasse RandomAcessFile speichern Java Basics - Anfänger-Themen 10
T Referenz einer Variable übergeben Java Basics - Anfänger-Themen 3
S Wert einer Variable printen Java Basics - Anfänger-Themen 2
B Wert einer Variable mit Listener ueberwachen Java Basics - Anfänger-Themen 3
B Wert einer String Variable an andere String Variable in anderer Klasse uebergeben Java Basics - Anfänger-Themen 5
B Datentypen Sichbarkeit einer Variable? Java Basics - Anfänger-Themen 3
C FileWriter mit einer Variable Java Basics - Anfänger-Themen 8
B Variable einer Klasse in einer anderen Klasse nutzen Java Basics - Anfänger-Themen 14
R Stellen einer Variable auslesen Java Basics - Anfänger-Themen 4
S Wie überprüfe ich eine Zahl (in einer Char-Variable) auf einstelligkeit? Java Basics - Anfänger-Themen 8
D Funktionenübergreifender Transport einer Variable Java Basics - Anfänger-Themen 2
E Ein Objekt von zwei möglichen Klassen in einer Variable Java Basics - Anfänger-Themen 5
F Inhalt einer Variable per Code herausfinden? Java Basics - Anfänger-Themen 9
B einlesen einer variable im laufenden programm Java Basics - Anfänger-Themen 5
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
F Verändern einer Variable im ActionListener Java Basics - Anfänger-Themen 14
N Wert einer Variable aus einem Javaproramm auslesen. Java Basics - Anfänger-Themen 2
C Variable dem Konstruktor einer Klasse übergeben Java Basics - Anfänger-Themen 8
G Überschreiben einer Variable umgehen Java Basics - Anfänger-Themen 6
R JSP: Ausgabe einer entfernten Webseite in Variable einlesen Java Basics - Anfänger-Themen 2
N private variable vom typ einer klasse Java Basics - Anfänger-Themen 20
F Einer char-Variable "leeren" Inhalt zuweisen Java Basics - Anfänger-Themen 4
I VisualClass: Ausgabe einer Variable Java Basics - Anfänger-Themen 2
F Kann man den Namen einer Variable in ein String Konvertieren Java Basics - Anfänger-Themen 2
S einer Variable KEINEN Wert zuweisen? Java Basics - Anfänger-Themen 7
L Speicherort einer Variable Java Basics - Anfänger-Themen 8
M Übergeben einer Variable an actionPerformed(ActionEvent e)? Java Basics - Anfänger-Themen 5
P Instanz in einer Variable speichern ? Java Basics - Anfänger-Themen 4
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
T Datum als Variable wert Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
U Wie mache ich die Variable xyz eindeutig/unique? Java Basics - Anfänger-Themen 20
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Variable Felderanzahl Java Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben