Wintersemester 2003/04 Fachbereich: Betriebswirtschaft Prüfungsfach: Softwareentwicklung Hilfsmittel: alle Zahl der Blätter: 5 Blatt Nr: 1 Semester TB7 / WI7 Fachnummer: TB 7322 / 7632 WI 7324 / 7634 Zeit: 60 min Die Zeitdauern in runden Klammern sind unverbindliche Orientierungshilfen zur Bearbeitungsdauer und sind nicht bindend! Aufgabe 1 Grundbegriffe und Mechanismen der objektorientierten Programmierung in Java (20 min) 1.1a 1.1b 1.2a 1.2b 1.2c Welche Mechanismen zeichnen objektorientierte Sprachen aus? Welche dieser Mechanismen unterstützt Java? Wozu dient ein Konstruktor ? Was versteht man unter einem voreingestellten Default-Konstruktor? Was macht ein voreingestellter Default-Konstruktor ? 1.3a 1.3b Was ist eine Startklasse ? Welche Methode braucht eine Startklasse ? 1.4 Warum muss die Methode main() eine Klassenmethode sein und keine Instanzmethode? 1.5 Erläutern Sie, was ein formaler Parameter und ein aktueller Parameter einer Methode ist anhand eines Beispiels. Was passiert beim Aufruf einer Methode mit dem aktuellen Parameter ? 1.6a 1.6b Wann verwendet man Klassenvariablen ? Wann verwendet man Instanzvariablen ? 1.7 Erklären Sie, was man unter einem Stack (Stapel) versteht. Welche Methoden gehören zu einem Stack ? 1.8a 1.8b 1.9 1.10a 1.10b Mit welchem Operator werden Objekte in Java erzeugt? Welche Einzelschritte führt dieser Operator aus? In welchen Speicherbereichen wird in Java - eine lokale Variable - eine Instanzvariable - eine Klassenvariable angelegt ? Was ist eine Wrapperklasse bzw. wozu braucht man Wrapperklassen ? Was bedeutet Typname [] arrayname; ? Wintersemester 2003/04 Blatt Nr: 2 Fachbereich: Betriebswirtschaft Semester TB7 / WI7 Prüfungsfach: Softwareentwicklung Fachnummer: TB 7322 / 7632 WI 7324 / 7634 Aufgabe 2 Ein einfaches Java-Programm. Klasse Glas (10 min) Schreiben Sie eine Klasse Glas, die ein Datenfeld inhalt vom Typ int besitzt, das nicht von außen sichtbar ist. Die Klasse Glas soll die Methoden getInhalt()und setInhalt()besitzen. Die Klasse Glas soll keinen selbst geschriebenen Konstruktor besitzen. In der Methode main() soll ein Glas erzeugt werden. Mit der Methode setInhalt() ist das Datenfeld auf den Wert 125 zu setzen. Geben Sie den Inhalt des Glases am Bildschirm aus. Wintersemester 2003/04 Blatt Nr: 3 Fachbereich: Betriebswirtschaft Semester TB7 / WI7 Prüfungsfach: Softwareentwicklung Fachnummer: TB 7322 / 7632 WI 7324 / 7634 Aufgabe 3: Vererbung und Arrays Die Klassen Buch und Zeitung sollen von der Klasse Drucksache abgeleitet werden. In der Klasse Test sollen die Klassen Buch und Zeitung getestet werden. Das folgende Java-Programm enthält die Klassen Drucksache, Buch, Zeitung und Test. Fehlende Teile des Programms sind durch . . . . . gekennzeichnet. import java.io.*; class Drucksache { private float preis; private String titel; protected static BufferedReader reader = new BufferedReader (new InputStreamReader (System.in)); public Drucksache() { try { System.out.print ("\nGeben Sie den Titel ein: "); titel = reader.readLine(); System.out.print("Geben Sie den Preis ein: "); preis = Float.parseFloat (reader.readLine()); } catch (IOException e) { System.out.println (e.toString()); System.exit(1); } } public void print() { System.out.println(); System.out.println ("Titel System.out.println ("Preis } //Methode getPreis(); . . . . . : " + titel); : " + preis); Wintersemester 2003/04 Blatt Nr: 4 Fachbereich: Betriebswirtschaft Semester TB7 / WI7 Prüfungsfach: Softwareentwicklung Fachnummer: TB 7322 / 7632 WI 7324 / 7634 class Buch extends Drucksache { private String Drucksachetyp = "Buch"; private String verlag; public Buch() { . . . . . try { System.out.print ("Geben Sie den Verlag ein: "); verlag = reader.readLine(); } catch (IOException e) { System.out.println (e.toString()); System.exit(1); } } public void print() { . . . . . } } class Zeitung extends Drucksache { private String Drucksachetyp = "Zeitung"; public void print() { . . . . . } } Wintersemester 2003/04 Blatt Nr: 5 Fachbereich: Betriebswirtschaft Semester TB7 / WI7 Prüfungsfach: Softwareentwicklung Fachnummer: TB 7322 / 7632 WI 7324 / 7634 public class Test { public static void main(String args[]) { System.out.println ("Start des Programms"); //Anlegen eines Arrays aus 8 Drucksachen . . . . . //Die ersten 4 Elemente des Arrays sollen mit Buechern gefüllt werden System.out.println(); System.out.println ("4 Buecher"); . . . . . //Die 4 letzten Elemente sollen mit Zeitungen //gefuellt werden System.out.println(); System.out.println ("4 Zeitungen "); . . . . . //Geben Sie in einer Schleife fuer alle Array-Elemente die //entsprechenden Datenfelder aus . . . . . //Ermittlung des Gesamtwerts aller Drucksachen . . . . . System.out.println ("\n\nGesamtwert aller Drucksachen: " + summe); } } 3.1 3.2 3.3 3.3 Schreiben Sie die Methode getPreis() der Klasse Drucksache. Vervollständigen Sie den Konstruktor der Klasse Buch. In der Klasse Buch soll die Methode print() der Klasse Drucksache überschrieben werden. Die Methode print() der Klasse Buch soll alle Datenfelder eines Objektes der Klasse Buch ausgeben und dabei die Methode print() ihrer Basisklasse aufrufen. Ergänzen Sie die Methode print() der Klasse Buch. Ergänzen Sie in analoger Weise die Methode print() der Klasse Zeitung. Ergänzen Sie die fehlenden Teile der Klasse Test.