Zugriff auf Variablen anderer Klassen

Potti

Neues Mitglied
Ich habe ein Problem welches zwar schon häufig aufgegriffen wurde, aber ich bekomme es trotzdem nicht auf die Kette. Deswegen bitte ich trotzdem um eure Hilfe, da ich schon viel versucht habe.

Ich möchte gerne aus einer anderen Klasse auf die Variable "text" zugreifen und genau das bekommen was momentan über [JAVA=18]System.out.println(text);[/code] ausgegeben wird.



Java:
import java.io.*;

public class LeseAusDatei {

  public static void main (String[] args) throws IOException{
     byte zeichen;
     char buchstabe;
     String text = "";
     String dateiName = "Test.txt";
     FileInputStream leseStrom = new FileInputStream(dateiName);
     do{
       zeichen = (byte)leseStrom.read();
       System.out.print(zeichen+" ");
       text += (char)zeichen;
     } while (zeichen !=-1);
     leseStrom.close();
     System.out.println();
     System.out.println(text);
  }
}

vielen Dank für eure vermutlich schnellen Antworten schon einmal im voraus

mit freundlichen Grüßen Rene
 
Wenn die Variable statisch ist, dann

Java:
System.out.println(Klassenname.text)

Ist sie jedoch Teil eines Objektes, dann

Java:
System.out.println(Objektname.text)

Da Text jedoch derzeit ein Teil Deiner main()-Methode ist, ist es sinnvoller, in Deiner anderen Klasse eine Methode zu schreiben, die sich den Text holt und in einer Variable abspeichert. Also ungefähr so:

Java:
//Teil der anderen Klasse
static String zuHolenderText;
static String getText(String str)
{
zuHolenderText = str;
}

In der main() machst Du das dann so:
Java:
andereKlasse.getText(text);

Und schon kannst Du mit dem text in der anderen Klasse weiterarbeiten.

P.S.: Die Variante meines Nachposters ist auch eine gute Möglichkeit, Du kannst es Dir im Prinzip aussuchen.
 
Zuletzt bearbeitet:
Du kannst dir für die Variable text eine getter methode schreiben:

Java:
public class LeseAusDatei {

   private static String text = "";
 
  public static void main (String[] args) throws IOException{
     byte zeichen;
     char buchstabe;
     String dateiName = "Test.txt";
     FileInputStream leseStrom = new FileInputStream(dateiName);
     do{
       zeichen = (byte)leseStrom.read();
       System.out.print(zeichen+" ");
       text += (char)zeichen;
     } while (zeichen !=-1);
     leseStrom.close();
  }

   public static String getText() {
      return text;
   }
}
 
Irgendwie funktioniert das bei mir auch nicht. Ich möchte in der Klasse "Name" auf die Variable "choice" der Klasse "Web" zugreifen. Wie kann ich das machen?


public class Web {

public static void main(String[] args) {

int choice=0;
}}

class Name{

int choice= Web.choice;
}
 
1.: Die Variable wird in der Main Definiert und verfällt danach
2.: Deine main tut GARNICHTS außer eben die Variable zu definieren. Danach beendet sich dein Programm
3.: Wenn die Klasse "Web" heißt, WIE zum Teufel kommst du darauf, diese mit Webshop. abzurufen?
4.: Bitte Java-Tags nutzen.
 
Bei dir existiert aktuell keine Variable choice in der Klasse Web.
choice ist bei dir nur lokal in der Methode main sichtbar. Wenn du per Web.choice (statisch!) drauf zugreifen willst, dann musst du das so machen:

Java:
public class Web {
  public int choice = 123;
}

class Web {
  public static void doIt () {
    System.out.println (Web.choice);
  }
}
 
1.: Die Variable wird in der Main Definiert und verfällt danach
2.: Deine main tut GARNICHTS außer eben die Variable zu definieren. Danach beendet sich dein Programm
3.: Wenn die Klasse "Web" heißt, WIE zum Teufel kommst du darauf, diese mit Webshop. abzurufen?
4.: Bitte Java-Tags nutzen.

Nein die Klasse heißt eh "Web". Mir geht es nur darum, auf die Variable zuzugreifen.
 
Bei dir existiert aktuell keine Variable choice in der Klasse Web.
choice ist bei dir nur lokal in der Methode main sichtbar. Wenn du per Web.choice (statisch!) drauf zugreifen willst, dann musst du das so machen:

Java:
public class Web {
  public int choice = 123;
}

class Web {
  public static void doIt () {
    System.out.println (Web.choice);
  }
}

Ja ich weiß, aber ich habe diese Variable eben in der Main-Methode und möchte auf diese zugreifen.
Ist dies nicht möglich?
 
Ja ich weiß, aber ich habe diese Variable eben in der Main-Methode und möchte auf diese zugreifen.
Ist dies nicht möglich?

Kurz und bündig: Nein! Du kannst nur auf Instanz oder Klassenvariablen zugreifen und diese MÜSSEN außerhalb von Methoden Definiert werden. Aber das Hindert dich nicht daran, diese von der main() aus zu füllen.
 
Kurz und bündig: Nein! Du kannst nur auf Instanz oder Klassenvariablen zugreifen und diese MÜSSEN außerhalb von Methoden Definiert werden. Aber das Hindert dich nicht daran, diese von der main() aus zu füllen.

Den letzten Satz verstehe ich nicht ganz. Und wenn ich diese Varibale außerhalb der Main-Methode definiere und dann von der Main-Methode aus auf diese zugreife, wie kann ich das machen?
 
Den letzten Satz verstehe ich nicht ganz. Und wenn ich diese Varibale außerhalb der Main-Methode definiere und dann von der Main-Methode aus auf diese zugreife, wie kann ich das machen?
Anscheinend hast du die Grundlagen nicht verstanden...

Java:
class X {
  static int i = 0;
  public static void main(String[] args){
    i = 1;
  }
}
 

Zurück
Oben