Klassen richtig einsetzen

derdoofie

Mitglied
Hallo zusammen,

ich habe ein kleines Problem, und zwar mussten wir bei der Programmier Hausaufgabe einen Text Analyzer programmieren.

Dieser soll eine Datei einlesen (String), dieses untersuchen und die Anzahl an Buchstaben in einen Array speichern. Das war noch nicht das Problem, aber der Sinn dieser Hausaufgabe ist es, zwei Programme zu schreiben.

Das erste Programm soll TextAnalyzer. java sein (das eben solch einen String kontrolliert) und eine zweite Klasse mit Bsp08, wo ich mit der main Methode das erste Programm testen soll.

Leider haben wir immer nur ein Programm geschrieben(mit main Methode und anderen) und in dieser Klasse sofort das Ergebnis kontrolliert.

Jetzt hab ich keine Ahnung wie ich diese zwei verknüpfen soll oder kann.
Hoffe um Hilfe
 

derdoofie

Mitglied
Die Angabe:
Implementieren Sie die Klasse TextAnalyzer zur Analyse von Texten, wobei die Texte aus Dateien eingelesen werden. Die main-Methode von Bsp08 dient dem Einlesen einer oder mehrerer Textdateien und dem Testen der Methoden von TextAnalyzer.

Teil 1
Erstellen Sie die Klasse TextAnalyzer und implementieren Sie dazu folgende Methoden:

// analyze a string: count characters and add the data to the global statistic
public void analyzeChar(String s)

// returns the absolute frequency of character c1
public int getFrequencyChar(char c1)

// reset statistic
public void resetStatistic() {...}

Die Methode public void analyzeChar(String s) soll im String s (s ist zB eine Zeile der eingelesenen Datei) zählen, wie oft jeder Buchstabe vorkommt und dies in einer globalen Statistik (z.B. einem Array) speichern. Es sollen nur die Buchstaben a-z gezählt werden (keine Umlaute). Groß- und Kleinschreibung soll NICHT unterschieden werden. D.h. a und A sind als selber Buchstabe zu betrachten. Ungültige Zeichen, z.B. Umlaute, Sonderzeichen oder Leerzeichen, sollen ignoriert werden.

Die Methode public int getFrequencyOfChar(char c1) soll die absolute Häufigkeit des Buchstabens c1 zurückgeben, d.h. wie oft kam c1 in den bisher untersuchten Strings vor.

Die Methode public void resetStatistic() löscht alle bisher gesammelten Daten aus der Statistik.
 

Joose

Top Contributor
Wenn beide Dateien im gleichen package liegen dann kannst du wie folgt vorgehen:

Java:
public static void main(String[] args) {
   NameDeinerKlasse objekt = new NameDeinerKlasse();
   objekt.MethodenName();
   // ...
}
 

VfL_Freak

Top Contributor
Moin,

hmm, ich hoffe, ich habe Dich richtig verstanden .... :rolleyes:

Die Klasse "Bsp08" soll die Hauptklasse mit der 'main'-Methode werden. Somit soll sie später auch aufgerufen werden:
Die Klasse "TextAnalyzer" ist dann eine zeite Klasse im Package (OHNE 'main'-Methode)!
Dann erzeugst Du in der 'main'-Methode eine neues Objekt von Typ "TextAnalyzer" und rufst darüber die gewünschten Methoden auf.

Gruß Klaus

EDIT: too later :(
 

derdoofie

Mitglied
joose´s beispiel :

publicstaticvoid main(String[] args){
NameDeinerKlasse objekt =new NameDeinerKlasse();
objekt.MethodenName();
// ...
}

aber was meint er mit objekt und darunter mit objekt.MehtodenName(); ?
 

truesoul

Top Contributor
Hallo
Java:
public class Test {

public static void main(String[] args){
    TextAnalyzer textAnalyszer = new TextAnalyzer();
    textAnalyszer.analyzeChar("Ein Text");
    int count = textAnalyszer.getFrequencyChar('e');
}

}

und das hier?
 

truesoul

Top Contributor
Na um ein Programm überhaupt zum laufen zu bekommen muss es die public static void main(String[] args) existieren. Die packt man in eine Klasse hinein wie ich mit Test.

Um deine Klasse TextAnalyzer zu testen erzeugst du ein Object TextAnalyzer und greifst auf die Methoden wie im Beispiel zu.
 

truesoul

Top Contributor
Jein.

Es ist ein neu erzeugtes Objekt vom Typ TextAnalyzer.
Aber für dich sicher einfacher zu verstehen wenn du das als Kopie siehst.
 

Neue Themen


Oben