public class Doppeltor { private Tor t1, t2; public Doppeltor() {t1 = new Tor(); t2 = new Tor(); try { t1.oeffnen(); } catch (GeoeffnetAusn a) {} try { t2.oeffnen(); } catch (GeoeffnetAusn a) {} } public void schliessen() throws GeschlossenAusn { t1.schliessen(); t2.schliessen(); } public void oeffnen() throws GeoeffnetAusn { t1.oeffnen(); t2.oeffnen(); } public boolean geoeffnet() { return t1.geoeffnet() && t2.geoeffnet(); } }
public class Programm { private static Doppeltor d1 = new Doppeltor(), d2 = new Doppeltor(), d3 = new Doppeltor(); private static void prozedur(Doppeltor d) throws GeoffnetAusn, GeschlossenAusn { d.schliessen(); d.oeffnen(); } public static void main(String[] args) { try { prozedur(d1); prozedur(d2); prozedur(d3); } catch (GeoeffnetAusn ausnahme) { System.err.println ("Tor geöffnet"); } catch (GeschlossenAusn ausnahme) { System.err.println ("Tor geschlossen"); } } }
· Die Ausführung der start-Methode eines Applets erfolgt über einen polymorphen Aufruf. richtig
Grund: Der Interpreter ruft start für eine Referenz vom Typ java.applet.Applet auf
· Ein Konstruktor kann alle Methoden der aktuellen Klasse und ihrer Oberklasse aufrufen. richtig
Grund: Mit this oder super (wie jede andere Methode)
· static-Methoden können nur aus static-Methoden aufgerufen werden. falsch
Grund: umgekehrt: Aus static-Methoden können nur static-Methoden aufgerufen werden.
· Wenn actionPerformed nicht überschrieben wird, geschieht beim Auftreten des Ereignisses nichts. falsch
Grund: die Methode einer Schnittstelle muß immer überschrieben (implementiert) werden, sonst kann man kein Objekt erzeugen
· Wer Zugriff auf alle private-Komponenten hat, hat Zugriff auf alle protected-Komponenten. richtig
Grund: protected-Zugriff ist aus der Klasse (wie private) und aus den Unterklassen möglich
· Eine Referenz kann sowohl durch eine Zuweisung wie auch durch Aufruf verändert werden. falsch
Grund: Der Aufruf eines Mutators verändert die Referenz nicht, nur das von ihr referierte Objekt.
· Der Benutzer (Auspräger) einer Klasse kann jede public-Methode der Oberklasse aufrufen. falsch
Grund: nicht die überschriebenen
· Die Gleichheit von Referenzen garantiert die Gleichheit der Objekte, nicht aber umgekehrt. richtig
Grund: Es gibt unterschiedliche Objekte (!=) mit gleichem Inhalt (equals)
public class Wetter extends WetterMenue { private String stadt = "Berlin"; protected void berlin() { stadt = "Berlin"; } protected void muenchen() { stadt = "München"; } protected void sonnig() { meldung(stadt + " sonnig"); } protected void bewoelkt() { meldung(stadt + " bewölkt"); } public void start() { menue(); } // nicht unbedingt nötig, da start ist in WetterMenue enthalten }