Rückgabe eines eingelesenen 2D Arrays aus Klasse heraus

Status
Nicht offen für weitere Antworten.

Silver

Mitglied
Hallo,

zuerst möchte ich mich kurz vorstellen: Ich studiere Elektrotechnik und habe vor mir einen einfachen Schaltungssimulator zu programmieren (ohne grafische Ausgabe). Zu Schulzeiten hab ich erste Erfahrungen mit TP gesammelt, später dann selber ein wenig in VB und C eingearbeitet. Nun probiere ich mich in Java, zusammen mit Eclipse.

Zu meinem Problem: Ich habe zunächst das Einlesen und die Ausgabe der eingelesenen Daten komplett in das main Programm geschrieben, versuche nun aber das Einlesen und die Ausgabe in eigene Klassen zu packen und dann aus der Main Klasse nur aufzurufen. Hierbei habe ich Probleme mit der Übergabe der Daten.

Hier meine Klasse Einlesen:

Code:
import java.io.*;

class einlesen {
	
	public einlesen (int zeilen, int spalten){
	
		int i = 0;
		int[][] matrix;
		matrix = new int [zeilen][spalten];
			
		
		try {
			FileReader fr = new FileReader ("input.txt");
			BufferedReader br = new BufferedReader (fr);	
			String line;	
			
			
			while ((line = br.readLine())!= null) {
				String[] items = line.split(" ");
				for (int j = 0; j < items.length; j++) {
					try {
						matrix[i][j] = Integer.parseInt(items[j]);
					} 
					catch (NumberFormatException e) {
							System.out.println('?');
							System.exit(-1);
					}
				}
				if (++i == zeilen)
					break;	
			}
		}
		catch (IOException e){
			System.out.println ("Datei kann nicht geöffnet werden! " +e);
		}
	
	/*	for (i = 0; i < matrix.length; i++){
			for (int j = 0; j < matrix [i].length; j++){
				System.out.print(i);
				System.out.print(j);
				System.out.print(": ");
				System.out.print((matrix[i][j]));
				System.out.print("  ");
				}
		}
	*/	 
	}
}

Das Einlesen funktioniert, dies habe ich durch die momentan als Kommentar eingebettete Ausgabe überprüft.

Nun meine Klasse Ausgabe:

Code:
public class showmatrix {
	
	void doIt(int [][] matrix){
				
		for (int i = 0; i < matrix.length; i++){
				System.out.println ();
			for (int j = 0; j < matrix [i].length; j++){
				System.out.print(i);
				System.out.print(j);
				System.out.print(": ");
				System.out.print((matrix[i][j]));
				System.out.print("  ");
			}
		}
	}
}

Nun möchte ich in main zunächst aus Klasse Einlesen heraus die Datei input.txt einlesen, dann an main übergeben und testweise über showmatrix anzeigen: Mail sollte dabei ungefähr so aussehen:

Code:
public class simulator {
	
	public static void main(String[] args) {
		System.out.println ("Programm gestartet");
		new einlesen(3,3);
		??
                System.out.print("eingelesen");
		showmatrix matrix = new showmatrix();
		matrix.doIt( ?? );
		}
}

Nur wie kann ich jetzt auf die Eingelesenen Daten aus dem Main zugreifen und dann an showmatrix zuweisen? Wenn ich mir return in der Klasse Einlesen arbeiten möchte, sagt er mir, dass ich mir Void Methode kein return einer value machen kann.

Für eure Hilfe wäre ich sehr! dankbar

MFG Silver
 

ARadauer

Top Contributor
also 1. Klassennamen groß, variablen klein. sonst is es irrsinnig schwer den code zu lesen.

dein problem ist, dass ein konstruktor keinen rückgabe wert hat, mach das


Code:
class Einlesen { 

    priavte int[][] matrix; 

    public int[][] getMatrix(){
        return matrix;
    }

    
   public einlesen (int zeilen, int spalten){ 
    
      int i = 0; 
        matrix = new int [zeilen][spalten]; 
          
       
      try { 
         FileReader fr = new FileReader ("input.txt"); 
         BufferedReader br = new BufferedReader (fr);    
         String line;    
          
          
         while ((line = br.readLine())!= null) { 
            String[] items = line.split(" "); 
            for (int j = 0; j < items.length; j++) { 
               try { 
                  matrix[i][j] = Integer.parseInt(items[j]); 
               } 
               catch (NumberFormatException e) { 
                     System.out.println('?'); 
                     System.exit(-1); 
               } 
            } 
            if (++i == zeilen) 
               break;    
         } 
      } 
      catch (IOException e){ 
         System.out.println ("Datei kann nicht geöffnet werden! " +e); 
      } 
    
   /*   for (i = 0; i < matrix.length; i++){ 
         for (int j = 0; j < matrix [i].length; j++){ 
            System.out.print(i); 
            System.out.print(j); 
            System.out.print(": "); 
            System.out.print((matrix[i][j])); 
            System.out.print("  "); 
            } 
      } 
   */    
   } 
}


und dann so ungefähr:

Code:
System.out.println ("Programm gestartet"); 
      Einlesen einlesen = new einlesen(3,3); 
      System.out.print("eingelesen"); 
      showmatrix matrix = new showmatrix(); 
      matrix.doIt(einlesen.getMatrix()); 
      }

so ungefähr
 

Leroy42

Top Contributor
Du mußt die eingelesene Matrix auch außerhalb der Klasse zugänglich machen

Code:
class Einlesen {
  private int[][] matrix;

  public einlesen (int zeilen, int spalten){ 
      int i = 0; 
      matrix = new int [zeilen][spalten];
      ...
  }

  public int[][] getMatrix() {return matrix;}
}

und in der Klasse mit main

public class simulator { 
    
   public static void main(String[] args) { 
      System.out.println ("Programm gestartet"); 
      Einlesen einlesen = new Einlesen(3,3);
      new showmatrix().doit(einlesen.getMatrix());
  }
}

Aber Ein- und Ausgabe in separaten Klassen zu halten hat
nix mit objekt-orientiertem Design zu tun.
 

Silver

Mitglied
Perfekt, funktioniert, Danke!!

Danke auch für den Tipp mit der Groß- und Kleinschreibung, muss ich mir direkt angewöhnen.

MFG Silver
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
J Funktionen auf der Rückgabe eines Stacks (pop) Java Basics - Anfänger-Themen 6
karlmasutra Klassen Rückgabe eines Wertes aus einer anderen Klasse Java Basics - Anfänger-Themen 3
L Probleme bei Rückgabe eines Arrays in einer Methode Java Basics - Anfänger-Themen 47
F Rückgabe eines Array´s aus einer Methode Java Basics - Anfänger-Themen 3
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
R Methode Rückgabe Java Basics - Anfänger-Themen 10
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
J Rückgabe-Problem Java Basics - Anfänger-Themen 10
B Rückgabe von zwei Werten: String und double Java Basics - Anfänger-Themen 14
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
S Rekursion Rückgabe - Türme von Hanoi Java Basics - Anfänger-Themen 16
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
F Get/Post als eigener Thread mit Rückgabe Java Basics - Anfänger-Themen 5
L Frage zur Rückgabe von Werten bei Methoden Java Basics - Anfänger-Themen 4
P Rückgabe erflogt nicht als Double Java Basics - Anfänger-Themen 2
D Methoden ArrayList Rückgabe bringt komische Werte Java Basics - Anfänger-Themen 12
M Übergabe / Rückgabe Java Basics - Anfänger-Themen 6
A Rückgabe in for-Schleife Java Basics - Anfänger-Themen 2
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
G Methoden mehrdimonsionale Arrays als Rückgabe Java Basics - Anfänger-Themen 2
S Methode rückgabe wiederverwenden Java Basics - Anfänger-Themen 4
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
llabusch Methoden Rückgabe einer Methode verwerden Java Basics - Anfänger-Themen 1
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
R public static void Rückgabe Java Basics - Anfänger-Themen 5
H Array wird verändert ohne Rückgabe? Java Basics - Anfänger-Themen 7
S Rückgabe von einem Array Java Basics - Anfänger-Themen 7
S Problem mit Rückgabe Wert von Methoden Java Basics - Anfänger-Themen 5
M Serialize - Fehler bei Rückgabe von Objekt Java Basics - Anfänger-Themen 5
R CMD Rückgabe durchlesen Java Basics - Anfänger-Themen 14
W Rückgabe Methode mit Feld Java Basics - Anfänger-Themen 4
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
N Rückgabe der Werte funktioniert nicht Java Basics - Anfänger-Themen 9
F Problem bei Rückgabe von StringBuffer aus Methode Java Basics - Anfänger-Themen 6
N HashMap fehlerhafte Rückgabe Java Basics - Anfänger-Themen 7
K Problem mit der Rückgabe Java Basics - Anfänger-Themen 3
R Rückgabe Array Java Basics - Anfänger-Themen 22
G Klasse überschreiben wenn Rückgabe über Methode Java Basics - Anfänger-Themen 6
M Methode mit Rückgabe Java Basics - Anfänger-Themen 2
D Maximum Subarray Problem; Problem mit der Rückgabe Java Basics - Anfänger-Themen 10
N Methoden und deren Rückgabe Java Basics - Anfänger-Themen 4
D Rückgabe einer Klasse Java Basics - Anfänger-Themen 20
H TreeMap Rückgabe - Compiler-Warnings Java Basics - Anfänger-Themen 9
M Rückgabe bei Exception Java Basics - Anfänger-Themen 4
H Rekursion und Rückgabe Java Basics - Anfänger-Themen 11
K Rückgabe aus Formular Java Basics - Anfänger-Themen 3
S HashMap: Rückgabe des key zu bestimmten value Java Basics - Anfänger-Themen 3
B "vollständige" Resultat Rückgabe Java Basics - Anfänger-Themen 8
G Problem mit der Rückgabe von einem Array Java Basics - Anfänger-Themen 3
A Beschreibung von Code und Rückgabe von Anzahl in ArrayList Java Basics - Anfänger-Themen 5
C Parameter rückgabe nach Prüfung an Klasse/Methode Java Basics - Anfänger-Themen 2
R Rückgabe vom ActionListener Java Basics - Anfänger-Themen 12
B JavaFilter true rückgabe Java Basics - Anfänger-Themen 23
J datentyp -objectTyp Rückgabe Java Basics - Anfänger-Themen 2
zilti PHP-Script aufrufen und Rückgabe lesen Java Basics - Anfänger-Themen 2
G Array Rückgabe aus Programm Java Basics - Anfänger-Themen 6
0 Probleme bei Threads mit Rückgabe. Java Basics - Anfänger-Themen 6
C Rückgabe bei methoden Java Basics - Anfänger-Themen 2
S Probleme mit InputStream- Rückgabe Java Basics - Anfänger-Themen 4
G Warum ist die Rückgabe kein Integer? Java Basics - Anfänger-Themen 5
G Rückgabe Java Basics - Anfänger-Themen 6
G Rückgabe mehrdimensionales Array Java Basics - Anfänger-Themen 3
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
G Rückgabe einer Methoden bei Schließen des Fensters Java Basics - Anfänger-Themen 3
M Rückgabe funktioniert nicht! Java Basics - Anfänger-Themen 4
M Rückgabe oder Parameter? Java Basics - Anfänger-Themen 5
H Konstruktor mit Rückgabe Java Basics - Anfänger-Themen 13
L Rückgabe Java Basics - Anfänger-Themen 4
D Rückgabe von Arrays Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben