# Histogram (Variable von anderer Klasse verwenden)



## curiecu (23. Okt 2012)

Also ich habe die Aufgabe ein Histogram zu Programmieren, jedoch stelle ich mir gerade die Frage wie ich am besten eine Variable von einer anderen Klasse verwenden kann.

In diesem Fall habe ich die Klasse Histogram und readFile. In readFile lese ich einen text ein und schreibe sie in den string text. Wie kann ich nun die Variable Text für Histogram zur Verfügung stellen?

Hier sind die beiden Klasse mal.

readFile:

```
import java.io.*;

public class readFile {

	

	public void main(String [] args) throws IOException{
		String file_name="Test.txt";
		
		FileReader fr = new FileReader(file_name);
		BufferedReader br= new BufferedReader(fr);
		

		String text="This is the Text:";
		while(br.ready()){
			text+=br.readLine();
			
		}
		
	
		
	}

	
}
```

Histogram:

```
import java.io.*;


public class Histogram {

	
}
```

Vielen Lieben dank euch schonmal. Ich werde dieses Forum bestimmt auch noch im Laufe der nächsten Wochen mit Fragen bombardieren.

Ich bin nun erstmal einkaufen und freue mich über jeden Tipp!

Liebe Grüße


----------



## TryToHelp (23. Okt 2012)

Hallo curiecu,

erst mal etwas klassisch zur Java formatierung, schreibweise, Klassen werden groß geschrieben ReadFile und variablen typischerweiße klein, aber nicht mit unterstrich, also fileName ;-)

Nun zu deinem Problem, eine der Beiden Klassen, oder eine Oberklasse kennt beide klassen und kann diese dann übergeben, entweder durch den Konstruktor oder über einen Setter ;-)


```
import java.io.*;
 
public class readFile {
 
    public void main(String [] args) throws IOException{
        String file_name="Test.txt";
        
        FileReader fr = new FileReader(file_name);
        BufferedReader br= new BufferedReader(fr);
 
        String text="This is the Text:";
        while(br.ready()){
            text+=br.readLine(); 
        }
        Histogram myHistogram=new Histogram(text);  
    }
}
```


```
public class Histogram {
 
private String text;

public void Histogram(String text){
   this.text=text;
}
    
}
```


----------



## curiecu (23. Okt 2012)

Dank dir ich probier es gleich aus!


----------



## curiecu (23. Okt 2012)

Dann krieg ich die Fehlermeldung: The constructor Histogram (String) is undefined


----------



## TryToHelp (24. Okt 2012)

ups, das void bei dem Konstruktor muss weg. Ohne meine IDE bin ich irgendwie ziemlich aufgeschmissen, bei solchen Sachen


```
public class Histogram {
 
private String text;
 
public Histogram(String text){
   this.text=text;
}
    
}
```

so sollte es passen ;-)


----------



## curiecu (24. Okt 2012)

Hey dank dir für den Support.

Habe das nun so implementiert und möchte den text in der histogram klasse zum test in der console ausgeben. Habe das nun so probiert:


```
public class Histogram {
 
private String text;
 
public  Histogram(String text){
   this.text=text;
   System.out.println(text);
}
    
}
```

Und wenn es ausführen will, dann kommt eine Fehlermeldung "A Java exception error has occured"

Liebe Grüße


----------



## Marcinek (24. Okt 2012)

Da müsste noch mehr stehen.


----------



## CureCU (29. Okt 2012)

Nein es steht nur da .. es wird aber im Quelltext von readFile darauf hingewiesen, dass die Lokale Variable von Histogram nicht verwendet wird.

Und bei Histogram wird darauf hingewiesen, dass das Feld Histogram.text nicht verwendet wird :S


----------



## Marcinek (29. Okt 2012)

Ja das liegt daran, dass du die IOException über die main weiter wirfst.

KA was dann passiert, aber ein Stacktrace würde ich schon erwarten.

Ansonsten fang die Exception richtig und mache dann ein e.printStacktrace und poste das hier.

Poste mal deinen Code hier und dann den vollständigen Stacktrace. Bestimmt konnte die eine Datei nicht gelesen oder gefunden werden.


----------



## CUreCU (29. Okt 2012)

Hallo,

mein Code steht ja schon weiter oben, jedoch weiß ich nicht genau wie man das mit dem STacktrace anstellt.

Liebe Grüße


----------



## TryToHelp (29. Okt 2012)

Indem du anstelle des throws IOException ein try catch machst und in dem catch block die Exception ausgibst. 

Ich nehme auch stark an, das er die test.txt datei nicht findet, wo hast du die den liegen?


----------



## curiecu (29. Okt 2012)

Die test.txt findet er. 
Könntest du mir vllt Anhand des Codes zeigen, wie ich es umschreiben muss? Ich stehe grad ein wenig auf dem Schlauch :S


```
import java.io.*;
 
public class readFile {
 
    public void main(String [] args) {

try{
        String file_name="Test.txt";
        
        FileReader fr = new FileReader(file_name);
        BufferedReader br= new BufferedReader(fr);
 
        String text="This is the Text:";
        while(br.ready()){
            text+=br.readLine(); 
        }
        Histogram myHistogram=new Histogram(text);  
} catch ( FileNotFoundException e )
    {
      System.err.println( "File not Found" );
    }
    catch ( IOException e )   
    {
      System.err.println( "Read/Write" );
    }
    }
}
```


So ?


----------



## TryToHelp (29. Okt 2012)

verwende mal in deinen catch blöcken


```
e.printStackTrace();
```

dann bekommt man meistens sinvolle hinweise


----------

