1) Variablen, die eh im Methodenkopf übergeben werden, brauchst du nicht extra deklarieren. Solange sie im Kopf stehen, werden sie dort deklariert. Dementsprechend hättest du sonst zwei Variablen, wobei die lokalen, in der Methode vorhandenen, dann Vorrang haben.
[code=Java] private int qu; // Übernimmt laenge aus Vokalzähler
private String einga; //übernimmt eingabe aus Vokalzähler[/code]
Kannst du dir also sparen.
2) Klassennamen sollte man immer großschreiben.
3) Wieso rufst du die Methode zahlen zweimal auf und verwendest beim ersten Mal nicht einmal den Rückgabewert?
4) Du initialisierst alle deine Variablen außerhalb der Methode, setzt sie aber nie wieder zurück. Einmal aufgerufen gibt dir also deine Methode vielleicht das richtige Ergebnis, beim zweiten Mal aber definitiv nicht mehr.
5) Deine Zählschleife ist falsch. Es muss [code](x = 0; x < qu; x++)[/code] heißen, nicht [code](x = 0; x <= qu; x++)[/code].
6) [code]f[/code] wird nur hochgezählt, wenn du einen Vokal gefunden hast. Warum überhaupt [code]charAt(f)[/code] statt [code]charAt(x)[/code]? Die Variable kannst du dir auch schenken.
7) Versuch das mal alles umzusetzen, vor allem schritt 3+4 und schau dann, ob es das tut, was du eigentlich möchtest. 
[Spoiler=Lösung (erst selbst probieren!)][code=Java] public int zaehlen(int qu, String einga)
{
int vokal = 0;
char buchstabe;
for (int x = 0; x < qu; x++)
{
buchstabe = einga.charAt(x);
switch (buchstabe)
{
case 'a':
vokal++;
break;
case 'e':
vokal++;
break;
case 'i':
vokal++;
break;
case 'u':
vokal++;
break;
}
}
return vokal;
}[/code][/Spoiler]