Fragen zu generischen Typen
Fragen zu generischen Typen javafrage Sun, 03/19/2017 - 12:15- 2702 views
1. Generics: Typprüfung
1. Generics: TypprüfungDie generische Klasse Punkt hat eine main() Methode mit einer Reihe von Fehlern.
Kommentieren im Quellcode jede Zeile aus die der Übersetzer nicht übersetzt.
- Schreiben Sie hierzu ein Kommentarzeichen („//“) direkt vor die inkorrekte Zeile im Quellcode.
- Geben Sie hinter der fehlerhaften Zeile eine kurze Erklärung warum die Zeile inkorrekt ist.
Beispiel:
// int i = null;// null ist ein Referenztyp der nicht zu int passt
Die Klasse Punkt:
public class Punkt<T extends Number> {public T x;
public T y;public Punkt(T xp, T yp) {
x = xp;
y = yp;
}public static void main(String[] args) {
Punkt<Double> k11;
Punkt<Double> k12;
Punkt<Integer> k21;
Punkt<Integer> k22;
Punkt<Number> k41;
Punkt<Number> k42;
Punkt k55;
Punkt k66;k11 = new Punkt<Double>(2.2d, 3.3d);
k21 = new Punkt<Integer>(2, 3);
k31 = new Punkt<String>("11","22");
k41 = new Punkt<Number>(2l, 3l);k41 = new Punkt<Number>(4.4d, 5.5f);
k11 = new Punkt<Double>(3.3f,9.9d);Punkt<?> k99;
k99 = k11;
k99 = k21;
k99 = k31;k12 = k11;
k12 = k21;
// ...
k55 = new Punkt<Number>(7.7f, 8.8f);
k66 = new Punkt(7.7f, 8.8f);
}
}
Die Antwort finden Sie auf der nächsten Seite (URL rechts unten klicken).
Niveau | 2 |
Schwierigkeitsgrad | mittel |
Zeit | 8 Minuten |
- 4422 views
2. Generics: Typprüfung
2. Generics: TypprüfungDie generische Klasse Flaeche hat eine main() Methode mit einer Reihe Fehlern. Kommentieren im Quellcode jede Zeile aus, die der Übersetzer nicht übersetzt.
- Schreiben Sie hierzu ein Kommentarzeichen („//“) direkt vor die inkorrekte Zeile im Quellcode.
- Geben Sie hinter der fehlerhaften Zeile eine kurze Erklärung warum die Zeile inkorrekt ist.
Beispiel:
// int i = null;// null ist ein Referenztyp der nicht zu int passt
Quellcode | Beschreibung der Fehler |
---|---|
package Kurs2.Generics; |
|
Die Antworten finden Sie hinter der nächsten Frage (URL rechts unten klicken).
Niveau | 2 |
Schwierigkeitsgrad | mittel |
Zeit | 8 Minuten |
Antwort zu Frage 1. : Generics, Typprüfung
public class Punkt<T extends Number> { public T x; public T y; public Punkt(T xp, T yp) { x = xp; y = yp; } public static void main(String[] args) { Punkt<Double> k11; Punkt<Double> k12; Punkt<Integer> k21; Punkt<Integer> k22; Punkt<Number> k41; Punkt<Number> k42; Punkt k55; Punkt k66; k11 = new Punkt<Double>(2.2d, 3.3d); k21 = new Punkt<Integer>(2, 3); //k31 = new Punkt<String>("11","22"); Variable wurde nicht deklariert k41 = new Punkt<Number>(2l, 3l); k41 = new Punkt<Number>(4.4d, 5.5f); //k11 = new Punkt<Double>(3.3f,9.9d); 3.3.f ist ein Float und kein Double wie gefordert Punkt<?> k99; k99 = k11; k99 = k21; //k99 = k31; k31 wurde nicht deklariert k12 = k11; //k12 = k21; k12 hat Parameter Double, k21 hat Parameter Integer ... k55 = new Punkt<Number>(7.7f, 8.8f); k66 = new Punkt(7.7f, 8.8f); } }
- 4893 views
3 "Upper Bound Wildcards" anwenden
3 "Upper Bound Wildcards" anwendenNutzen Sie das Konzept einer „Upper bound wildcard“ um die generische Klasse Koordinate zu deklarieren, die man nur für die Javaklassen Byte, Float, Integer, Short, Long, Double konfigurieren kann.
Anbei ein Bild der Javaklassenhierarchie:
Vervollständigen Sie den Kopf der Klasse Koordinate:
public class Koordinate { // Rumpf ist nicht relevant für diese Aufgabe }
Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).
Niveau | 2 |
Schwierigkeitsgrad | mittel |
Zeit | 2 Minuten |
Antwort zu Frage 2. : Generics, Typprüfung
Quellcode | Beschreibung der Fehler |
---|---|
package Kurs2.Generics; |
|
- 3511 views
4. Antwort zu Frage 3
4. Antwort zu Frage 3public class Koordinate <T extends Number> { // Rumpf der Klasse. Er ist unbedeutend in dieser Aufgabe }
- 1946 views