Verständnisaufgaben

oSnake

Mitglied
Servus Leute,

folgender Code

Java:
package org.bonn.se.uebung1;
class Client {
public Client( ){
// Muss vorhanden sein, da Client von keiner Klasse
// abgeleitet ist (à richtig..?)
}
public void execute( int aNumber ){
// In dieser Methode soll die Methode translateNumber
// mit dem übergegebenen Wert der Variable aNumber
// aufgerufen werden
System.out.println("Das Ergebnis der Berechnung: " + "[das Ergebnis]" );
}


package org.bonn.se.uebung1;
public class GermanTranslator implements Translator {
public String translateNumber( int number ) {
    String[] x = { "Übersetzung der Zahl " + number + " nicht möglich" + " " + version, "eins", "zwei", "drei",
                "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn" };

        try {

            return x[number];

        } catch (Exception IndexOutOfBounds) {

            return "Übersetzung der Zahl " + number + " nicht möglich" + " " + version;
        }

}


@Override
public void printAuthorInfo() {
System.out.println("GermanTranslator c/o 2017 by HBRS");
}


package org.bonn.se.uebung1;
interface Translator {
public double version = 1.0;
public String translateNumber( int number );
}



Die Aufgaben lauten

2.Warum ist die Klasse GermanTranslator, wie oben angegeben, nicht kompilierbar?
Wie können die aufgetretenen Fehler schnell behoben werden? Wie beurteilen sie den
Kommentar im Konstruktor der Klasse Client?


Meine Lösung wäre, dass der German Translator nicht kompilierbar ist, weil er kein Return Statement hat und das der Kommentar in der Klasse Client, keinen Wert hat, da ich diese Klasse auch komplett ohne den Konstruktor nutzen könnte.

Ist der Ansatz richtig?


4. Testen sie ihre Implementierung der Klasse Client hinreichend mit einem Black Box
Test. Diese Testart sollten sie in der Literatur recherchieren. Die Tests müssen in einer
separaten (Test-)Klasse platziert werden, die für Testzwecke auf die Verbindung der
obigen Klassen vornimmt. Was ist der Vorteil einer separaten Test-Klasse?? Ist ein
Blackbox-Test auf der Klasse Client ohne weiteres durchführbar? Wenn nein, wie
müsste man die Klasse Client ggf. refaktorisieren (ändern)? Auch für diese
Teilaufgabe sollten sie den Source Code hoch laden.

Hier stehe ich ein wenig auf dem Schlauch. Das Programm soll generell nur die Zahlen 1-10 in Wörter ausgeben, bei anderen Eingaben soll eine Exception geworfen werden. Wie würde denn hier ein BlackBox TestCase aussehen?


Vielen Dank im Vorraus.
 
Zuletzt bearbeitet:

JStein52

Top Contributor
Meine Lösung wäre, dass der German Translator nicht kompilierbar ist, weil er kein Return Statement hat und das der Kommentar in der Klasse Client, keinen Wert hat, da ich diese Klasse auch komplett ohne den Konstruktor nutzen könnte.
Falsch

Edit: Oder was soll uns diese Zeile da sagen ?
Code:
public String translateNumber( int number ) { [ihr Source Code aus Übung 1-3] }
 

oSnake

Mitglied
Hey JStein52,

und zwar wieso? Wäre echt super, wenn du ein Ansatz hättest, damit ich es nachvollziehen kann!

Edit: Sorry. Hab den Code aktualisiert.
 

JStein52

Top Contributor
Ok, und jetzt sieht man doch dass ein return da ist. Was aber falsch ist das ist die override-Annotation !

Edit: mal von fehlenden } abgesehen, die sind aber sicher nicht gemeint
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Oben