Wie kann man Variablenwerte der main-Klasse in eine Unterklasse übrgeben?

M

Migelito

Hallo, ich hab ein Problem auf das ich selber nicht komme, weil mir dazu einfach dir Erfahrung mit Java fehlt.
Hab eine Textdokument eingebunden und möchte in einer Unterklasse Namens "holeMessDat" die vorliegenden Daten weiter verarbeiten.

Aber wie kann ich das umsetzt, das ich aus der Klasse Main die Werte des Dokuments in die Unterklasse bekomme?

Java-Quelltext-Ausschnitt der beiden Klassen:


package Mess_Statistik;

public class holeMessDat
{
public test()
{
// Wie bekomme ich hier die Variable "zeile" rein?
}
}

........

String zeile = "";
FileReader cach = null;
holeMessDat mess = new holeMessDat();
.........
while(zeile != null)
{
System.out.println(zeile);
zeile = messData.readLine();
}
// An dieser Stelle würde ich gerne die Stringvariable "zeile" an das Unterprogramm "holeMessDat" übergeben
.........
 
Vorneweg: Für solche Fragen ist das Forum nicht gedacht. Das sind absolute Grundlagen.

Erweitere die Methode "test()" um einen Parameter
Java:
public test(String var)
{
    System.out.println(var);
}

und übergib den String

Java:
mess.test(zeile);

Übrigens ist beim Aufruf an der Stelle, wo du es möchtest, die Variable "zeile" immer NULL.
 
ne... also das war nix mit deinem tipp. so kann das auf keinen fall gehen, weil mir Eclipse nur noch mehr fehler anzeigt als gedacht.

Wenn das so leicht wäre unter Klassen Variablenwerte zu übergeben, dann hätte ich hier bestimmt nicht rein geschrieben!
 
Ja, weil bei der Methode der Datentyp fehlt
Java:
public void test(String str){...}

Und das sind wirklich Grundlagen....
 
Es ist so leicht wie es auch aussieht. Das Klassen bzw. Objekte miteinander auf bestimmten Kanälen(Funktionen/Parameter) kommunizieren können ist ein Elementarer Bestandteil der OOP. Ohne dich beleidigen zu wollen, empfehle ich dir wirklich dir die Grundlagen anzuschauen.

Um dir das jetzt aber zu zeigen, wie es geht, mal ein komplettes Beispiel:

Java:
public class HauptKlasse {

  public static void main(String[] args) {
    UnterKlasse objekt = new UnterKlasse();
    objekt.wasAusgeben("Dieser Text wird ausgegeben");
  }
}

public class UnterKlasse {

  public UnterKlasse() {}

  public void wasAusgeben(String einText) {
    System.out.println(einText);
  }
}

Wie du siehst, geht alles über Parameter, die Variable "einText" könntest du dir jetzt in eine lokalen Eigenschaft speichern und hättest so in der ganzen UnterKlasse Zugriff darauf.
 
Muchacho, du weisst garnicht wie sehr du mir da geholfen hast. Auch wenn das nur grundlagen für dich sind, aber für mich ist das ein sehr großer schritt
nach vorne.

Vielen dank, für deine Erleuchtung ^^ :)
 
kurze Rückfrage...

wie geht das mit einer coll by value Class?

wollte nach Übergabe in die Unterklasse zum schluss wieder an die Hauptklasse zurück geben.
das muss ich doch mit return machen. Aber das geht wohl nicht mit void zusammen.
 
Dann musst du void eben mit der Klasse oder Primit. Datentypen den du zurückgeben willst ersetzen.
 
ok, ok.. srich void durch BufferedReader ersetzen und um Rumpf unten z.B. return zeile. das hatte ich auch schon bereits herraus gefunden.

......
public class holeMessDat
{
public void test(BufferedReader messData) throws IOException
{

String zeile ="";

// Liest Werte aus Text-Datei Zeilenweise in String ein

while(zeile != null)
{
System.out.println(zeile);
zeile = messData.readLine();
//return zeile;
}
}
}

Mein Problem bezieht sich jetzt auf "return zeile". wenn ich also oben statt void -> BufferedReader verwende, kommt er mit den unterschiedlichen Datentypen nicht zurecht, da zeile ein String darstellt. geht das überhaupt, das ich der Unterklasse einen unterschiedlichen Datentyp übergebe, aber einen anderen an die main-Klasse zurück lieferen ?
 
Zurück