Klausurfragen allgemein zu Java II

ThommyTom

Aktives Mitglied
Hallo,
damit der Thread "Klausurfragen allgemein zu Java" nicht zu lang und unübersichtlich wird, hier ein neuer.
Es beschäftigen mich drei Fragen aus einer Altklausur. Kann mir jemand weiterhelfen?

1) "In einer generischen Klasse dürfen keine Arrays mit dem formalen Typparameter als Elementtyp definiert werden."

Mein man hier, dass man z.B. in ArrayList<Element> kein Element[] definieren darf? Das ist doch falsch.

2) Gibt es Generizität auch in nicht-objektorientieren Sprachen? Ja.

3) Was ist richtig? (mehrere Antworten können richtig sein, müssen es aber nicht):
"Generizität ist in Java nur für Referenztypen definiert."
"In Java verliert ein Objekt, das in eine generische Sammlung eingefügt wird, aufgrund der type ensure seine Typzugehörigkeit."
"Bei der heterogenen Übersetzung von generischen Klassen teilen sich alle generischen Instanziierungen einer generischen Klasse eine Implementierung."

Das 2. müsste stimmen.

4) "Solange keine Eigenschaften einer Klasse als final deklariert sind, können alle Methoden und Felder redefiniert werden."

Ich denke ich falsch, denn Felder kann man nicht redefinieren.

Was meint ihr dazu?
Liebe Grüße und einen schönen Nachmittag/Abend noch,
ThommyTom
 
1) "In einer generischen Klasse dürfen keine Arrays mit dem formalen Typparameter als Elementtyp definiert werden."
Mein man hier, dass man z.B. in ArrayList<Element> kein Element[] definieren darf? Das ist doch falsch./QUOTE]

du kannst in einer genrischen Klasse keine Arrays mit dem gen-Typ erstellen:
Java:
public class Test<T> {

  public void example(){
    T[] doesntWork = new T[10]; // Wird nicht gehen
  }
}

2) Gibt es Generizität auch in nicht-objektorientieren Sprachen? Ja.
Mir fällt spontan Python ein.


3) Was ist richtig? (mehrere Antworten können richtig sein, müssen es aber nicht):
"Generizität ist in Java nur für Referenztypen definiert."
"In Java verliert ein Objekt, das in eine generische Sammlung eingefügt wird, aufgrund der type ensure seine Typzugehörigkeit."
"Bei der heterogenen Übersetzung von generischen Klassen teilen sich alle generischen Instanziierungen einer generischen Klasse eine Implementierung."
"Solange keine Eigenschaften einer Klasse als final deklariert sind, können alle Methoden und Felder redefiniert werden."

Das 2. müsste stimmen.

[ JA] "Generizität ist in Java nur für Referenztypen definiert."
[ JA] "In Java verliert ein Objekt, das in eine generische Sammlung eingefügt wird, aufgrund der type ensure seine Typzugehörigkeit."
[NEIN] "Bei der heterogenen Übersetzung von generischen Klassen teilen sich alle generischen Instanziierungen einer generischen Klasse eine Implementierung."
[JEIN] "Solange keine Eigenschaften einer Klasse als final deklariert sind, können alle Methoden und Felder redefiniert werden."

Das letzte hängt davon ab, was man als "redefinieren versteht. In Java ist es eigentlich Deklaration + Initialisierung. Wenn man Definieren als initialisieren betrachtet, dann kann man das tun, ja. Ist fraglich, ob das eine Trickfrage ist, oder einfach nur salopper Umgang mit der Terminologie.
 
Zuletzt bearbeitet:

Zurück
Oben