Jetzt kommt in anzahlZugriffe() selbst ne Fehlermeldung.
Nein, das steht da nicht - achte auf Groß- und Kleinschreibung.bei Int kommt: cannot find symbol - class int
Erstmal den ersten, dann die anderenbei ++ kommt: bad operand type int[] for unary operator'++'
bei gesamt kommt: cannot find symbol - variable gesamt
Und gibt es Int?cannot find symbol - class Int
Und ????cannot find symbol - class Int
Und selbst wenn sollst du nichts zu dem Array addieren.Nein hat es nicht,
Und selbst wenn sollst du nichts zu dem Array addieren.
public int anzahlZugriffe() {
for (int aktuellerZugriff : zugriffeInStunde) {
int gesamt = zugriffeInStunde[stunde]++;
}
return gesamt;
}
Auf Code-Ebene kommst du offensichtlich noch nicht weiter, also beschreib erstmal was du da machen musst.Lösch den gesamten Methodeninhalt, und beschreib einfach mal mit Worten ganz unabhängig vom Code, was die Methode machen muss.
/**
* Eine Klasse, die das Protokoll eines Webservers
* in Hinsicht auf Zugriffe pro Stunde auswertet.
*
* @author David J. Barnes und Michael Kölling.
* @version 31.07.2011
*/
public class ProtokollAuswerter
{
// Hier werden die Zugriffe für die Stunden gehalten
private int[] zugriffeInStunde;
// Verwendung eines LogdateiLesers
private LogdateiLeser leser;
private int stunde;
private int gesamt;
/**
* Erzeuge ein Exemplar, das die Zugriffe in den
* Stunden eines Tages zählt.
*/
public ProtokollAuswerter(String Sebastian)
{
// das Array-Objekt erzeugen, das die Zugriffe
// in den einzelnen Stunden eines Tages zählt.
zugriffeInStunde = new int[24];
// Den Leser für die Logdatei erzeugen.
leser = new LogdateiLeser(Sebastian);
}
/**
* Analysiere die in der Logdatei erfassten Zugriffsdaten.
*/
public void analysiereStundendaten()
{
while(leser.hasNext()) {
Logeintrag eintrag = leser.next();
int stunde = eintrag.gibStunde();
zugriffeInStunde[stunde]++;
}
}
public int anzahlZugriffe() {
for (int aktuellerZugriff : zugriffeInStunde) {
int gesamt = zugriffeInStunde[stunde]++;
}
return gesamt;
}
/**
* Gib die Anzahl der Zugriffe in den Stunden eines
* Tages nach Stunden sortiert auf der Konsole aus.
* Diese Werte sollten zuerst mit einem Aufruf von
* 'analysiereStundendaten' berechnet werden.
*/
public void stundendatenAusgeben()
{
System.out.println("Stunde: Zugriffe");
for(int stunde = 0; stunde < zugriffeInStunde.length; stunde++) {
System.out.println(stunde + ": " + zugriffeInStunde[stunde]);
}
}
/**
* Gib die Zeilen der Logdatei auf der Konsole aus.
*/
public void logdateiAusgeben()
{
leser.datenAusgeben();
}
}
Nein.Kann mich nicht jemand erlösen?
Lösch den gesamten Methodeninhalt, und beschreib einfach mal mit Worten ganz unabhängig vom Code, was die Methode machen muss.
... obwohl eigentlich eine kommen müsste. Dass sie nicht kommt, kommt daher, weil ProtokollAuswerter seit neuestem die Instanzvariablen stunde und gesamt hat, die ausserhalb der anzahlZugriffe-Methode gar nicht verwendet werden, wohl aber gleichnamige lokale Variablen.Es kommt gar keine Fehlermeldung mehr.
Die hatte er ja da hingeschrieben damit keine Fehlermeldung mehr kommt ..weil ProtokollAuswerter seit neuestem die Instanzvariablen stunde und gesamt hat
Dann fang dabei mal von hinten an - du brauchst offensichtlichAlso zugriffeInStunde ist ein Array mit einer Länge von 24. Und da stehen die Anzahl der Zugriffe drin.
Über dieses Array (zugriffeInStunde) muss man mit der Methode anzahlZugriffe iterieren.
Und den Wert von allen Elementen in ZugriffeInStunde muss man zu gesamt hinzuaddieren!
gesamt
- was ist das denn?gesamt soll eine Variable sein, die das Array zugriffeInStunde speichert?gesamt ist eine Variable die die ZugriffeInStunde speichert.
Lies noch mal den letzten Teil.Dann schrieb doch genau das mal in die Methode (und die Schleife lässt du Weg!)
public int anzahlZugriffe() {
{
int gesamt = 0;
}
return gesamt;
}
Oder lass es einfach sein mit Java...
Sorry, musste mal sein.