60

Bachelor in Wirtschaftsinformatik (IUBH) (Fach) / IOBP01 - Grundlagen der objektorientierten Programmierung mit Java (Lektion)

IOBP01 - Grundlagen der objektorientierten Programmierung mit Java

Diese Lektion wurde von JochenSacher erstellt.

Lektion lernen

Diese Lektion ist leider nicht zum lernen freigegeben.

Anzeige
  • Erläutern Sie den Begriff „Objektorientierung“. Objektorientierung (kurz: OO) ist ein Ansatz der Softwaretechnik, der insbesondere die Erstellung,Weiterentwicklung und Wartung von komplexen betrieblichen IT-Systemen unterstützt.Dabei werden komplexe Systeme durch das Zusammenspiel kooperierender Objekte beschrieben.
  • Manche Personen denken, „Objektorientierung“ ist eine Programmiersprache. Haben sie damit recht? Begründen Sie Ihre Entscheidung. Nein, die „Objektorientierung“ ist keine Programmiersprache sondern eine Sichtweise aufkomplexe Systeme. Jedoch gibt es Programmiersprachen, welche die objektorientierte Sichtweisegezielt unterstützen.
  • Welche Programmierkonzepte außer der Objektorientierung kennen Sie noch? Maschinencode, Assemblercode, Imperative Programmierung, Strukturierte Programmierung,Komponenten-basierte Entwicklung, Modell-getriebene Entwicklung
  • Welche Elemente kann ein Objekt enthalten? Attribute und Methoden
  • Worin unterscheiden sich Attribute von Methoden? Attribute speichern Werte, Methoden dagegen ermöglichen es auf Attribute zuzugreifen, sieauszulesen, zu verändern, zu aktualisieren oder Berechnungen durchzuführen.
  • Sie sollen eine Eieruhr aus der „realen Welt“ in der digitalen Welt nachbilden. Überlegen Sie, welche Attribute (Eigenschaften) und Methoden (Funktionen) Sie in der digitalen Welt benötigen, um dort eine Eieruhr nachzubilden. Attribute (Eigenschaften):- Eingestellte Zeit- Verbleibende Zeit- Maximal einstellbare Zeit Methoden (Funktionen):- Zeit einstellen- Uhr starten- Uhr stoppen- Klingeln bei abgelaufender Zeit
  • Gibt es Eigenschaften einer Eieruhr aus der realen Welt, die nicht in die digitale Welt übertragen werden müssen? Notieren Sie Ihre Überlegungen stichpunktartig. Größe, Form, Material, GewichtDiese Eigenschaften sind für die digitale Nachbildung der Uhr nicht relevant, weil sie keinenEinfluss auf die Funktionen haben und somit bei einer digitalen Uhr nicht benötigt werden.
  • Nennen und erläutern Sie die Phasen eines objektorientierten Entwicklungsprozesses. Objektorientierte Analyse (OOA): Während der objektorientierten Analyse wird bestimmt, wasein System tun soll. Ziel der Analyse ist ein umfassendes Verständnis der fachlichen Zusammenhängedes zu bauenden Systems. Hierzu werden Objekte der realen Welt in einem fachlichenModell nachgebildet. Dabei werden nur die für das System relevanten Eigenschaften (Attribute)berücksichtigt. Objektorientiertes Design (OOD): Hierzu wird auf Basis des Analysemodells das Design desSystems festgelegt. Das bedeutet, dass das fachliche Analysemodell dahin gehend um technischeInformationen erweitert wird, sodass ein Programmierer in der Lage ist, auf Basis des Designsden Programmcode zu implementieren. Dabei wird festgelegt, welche Arten von Objekten esgeben soll, welche Attribute und Methoden sie haben und auf welche Art welche Objekte miteinanderkooperieren. Objektorientierte Programmierung (OOP): Bei den Aktivitäten der objektorientierten Programmierungwird ein Systemdesign in funktionierenden Programmcode übersetzt. Dazuprogrammiert der Entwickler unter Einhaltung der im Design getroffenen Vorgaben den Programmcode.Analyse und Design sind notwendige Vorarbeiten, das eigentliche IT-System jedochergibt sich ausschließlich durch den implementierten Programmcode.
  • Was sind die Ergebnisse der Phasen eines objektorientierten Entwicklungsprozesses und wofür werden die Ergebnisse verwendet? Objektorientierte Analyse: AnalysemodellDas Analysemodell ist zum einen ein Mittel zur Kommunikation zwischen den Entwicklernund dem Auftraggeber bzw. den Anwendern des Systems. Zum Anderen bildet es den Ausgangspunktfür die nächste Phase: das objektorientierte Design. Objektorientiertes Design: Design des SystemsVorgabe für Programmierer, die darauf aufbauend in der Lage sind Programmcode zu implementieren.Dabei wird festgelegt, welche Arten von Objekten es geben soll, welche Attributeund Methoden sie haben und auf welche Art welche Objekte miteinander kooperieren. Fürkomplexe Systeme kann diese Aufgabe nur von erfahrenen Systemarchitekten durchgeführtwerden. Die Qualität des Designs hat dabei in der Regel maßgeblichen Einfluss auf die Qualitätdes programmierten Systems sowie auf alle zukünftigen Aktivitäten zur Erweiterung undAnpassung des Systems. Objektorientierte Programmierung: Programmcode, IT-SystemErgebnis des Entwicklungsprozesses; wird von Kunden zur Lösung von Problemen eingesetzt.
  • Welche Vorteile bringt die gezielte Kapselung von Zuständigkeiten in Form von Objekten? Objekte können durch die klare Kapselung von Zuständigkeiten und die klare Definition vonSchnittstellen später ausgetauscht oder erweitert werden, ohne die Stabilität und Funktionalitätdes gesamten Systems zu beeinflussen. Das erleichtert wiederum die Maßnahmen zur Qualitätssicherung,da nicht das ganze System komplett neu getestet werden muss, sondern nur diebetroffenen Teile des Systems.
  • Anzeige
  • Erläutern Sie den Begriff „Objekt“ im Kontext der Objektorientierung. Ein Objekt ist eine abgeschlossene, für sich handlungsfähige Einheit, zum Beispiel: das Auto „E-CL 2343“, die Lampe „Kyist“, der Kunde „Hans Meier“, der Vertrag „P-DFD-23“. Bei der objektorientierten Entwicklung werden Objekte aus der physischen (realen) Welt in Objekte der Programmiersprache nachgebildet. So gibt es dann zum „echten“ Kunden „Hans Meier“ ein digitales Gegenstück in Form eines digitalen Objektes „Hans Meier“. Der real existierende Kunde (Herr Hans Meier) wird in Form eines „digitalen Objektes“ der jeweiligen Programmiersprache des IT-Systems nachgebildet. Bei dieser digitalen Nachbildung werden aber nur die wichtigsten Eigenschaften wie Name, Vorname, Geburtsdatum oder Geschlecht berücksichtigt.Eigenschaften wie Haarfarbe, Augenfarbe oder Farbe der Kleidung interessieren in denmeisten Fällen nicht, da sie für die Aufgaben des Systems nicht benötigt werden.
  • Erläutern Sie den Begriff „Klasse“ im Kontext der Objektorientierung. Eine Klasse liefert in der Objektorientierung die Struktur, die zur Bildung eines „digitalenObjektes“ erforderlich ist. Auf Basis einer Klasse können beliebig viele Objekte erzeugt werden.Alle aus einer Klasse erzeugten Objekte haben die gleiche Struktur, also dieselben Attribute undMethoden. Eine Klasse ist so etwa vergleichbar mit einer Word-Dokumentvorlage, und einObjekt ist ein aus dieser Vorlage erzeugtes Word-Dokument. Aus welchen Klassen ein objektorientiertesSystem besteht und wie die Struktur der benötigten Klassen aussieht, wird in derPhase „objektorientiertes Design“ festgelegt. Ausgangspunkt für das Design sind die ermitteltenund spezifizierten Anforderungen.
  • Wie stehen Objekte und Klassen in Beziehung zueinander? Bei der objektorientierten Programmierung von IT-Systemen werden (fast) nur Klassen implementiert.Das heißt, der Entwickler legt die Struktur von Klassen fest. Also aus welchen Elementen(Attributen und Methoden) die aus den Klassen erzeugten Objekte bestehen. Ein objektorientiertesSystem erzeugt dann bei Bedarf die entsprechenden Objekte, zum Beispiel ausDatenbankeinträgen oder Benutzereingaben. Durch die Beschreibung der Klassen wird gewährleistet,dass sich alle Objekte, die auf Basis dieser Klasse erzeugt werden, gleich verhalten. AlleObjekte einer Klasse haben dieselben Attribute und verfügen über die gleichen Funktionen undRoutinen (die sogenannten Methoden). Damit können alle aus einer Klasse erzeugten Objektevon den Funktionen des Systems in gleicher Weise verarbeitet werden.
  • Beschreiben Sie die Vorgehensweise zur Identifikation von Klassen bei der objektorientierten Analyse. 1. Alle Hauptwörter (Substantive) der Aufgabenstellung werden als Kandidaten für Klassenmarkiert.2. Dann wird geprüft, ob die markierten Hauptwörtera. durch weitere Hauptwörter beschrieben werden können.b. Beziehungen oder Abhängigkeiten zu anderen Hauptwörtern haben.Trifft eine der beiden Aussagen zu, wird das Hauptwort als Klasse modelliert.3. Wird das Hauptwort verwendet um ein anderes Hauptwort zu detaillieren, wird es alsAttribut einer Klasse modelliert.4. Alle verbleibenden Wörter, die weder Klasse noch Attribut sind werden auf Relevanzüberprüft und gegebenenfalls von der Liste der Kandidaten für Klassen gestrichen.
  • Beschreiben Sie die den Unterschied zwischen Klassen und Attributen. Klassen enthalten Attribute. Die Attribute (auch: Eigenschaft von Klassen, engl. property) sindstatische Elemente von Klassen. In einem Attribut können konkrete Werte zu dem Objektgespeichert werden. Attribute dienen ausschließlich zum Speichern von Werten, man kann sieals freie Speicherplätze innerhalb eines Objektes verstehen.
  • Woraus ergibt sich der Zustand von Objekten? Die Werte aller Attribute eines Objektes beschreiben den Zustand eines Objektes. Objekte, dieaus einer Klasse erzeugt wurden und deren Attribute exakt die gleichen Werte haben, sindidentisch.
  • Beschreiben Sie die den Unterschied zwischen Methoden und Attributen. Die Attribute (auch: Eigenschaft von Klassen, engl. property) sind statische Elemente von Klassen.In einem Attribut können konkrete Werte zu dem Objekt gespeichert werden. Attributedienen ausschließlich zum Speichern von Werten, man kann sie als freie Speicherplätze innerhalbeines Objektes verstehen.Methoden (auch: Funktionen, Operationen) sind dynamische Elemente von Klassen. Sie enthaltenAlgorithmen, Anweisungen und Abarbeitungsvorschriften, mit denen Werte erstellt,berechnet, verändert und gelöscht werden können. Die Ergebnisse der Methoden können inAttributen der Klasse oder in neu erzeugten Objekten gespeichert werden. Mit Methoden wirddas Verhalten von Objekten beschrieben, also was ein Objekt macht. So können mit MethodenBerechnungen von Werten, Anwenden von Geschäftsregeln oder Vorschriften zum Erzeugenund Löschen von Objekten programmiert werden.
  • Erläutern Sie, aus welchen Elementen Methoden bestehen. Name:Name der Methodez. B. getName() Parameter: Benötigte Objekte und Werte, die zur Abarbeitung der Methode erforderlich sindz. B. (String name, String vorname) Rückgabewert:Angabe des Datentyps des Objektes, in dem das Ergebnis der Methode gespeichert wirdz. B. String
  • Nennen Sie je 2 Beispiele für Strukturdiagramme und Verhaltensdiagramme der UML. Strukturdiagramme: z. B. Klassendiagramm, KomponentendiagrammVerhaltensdiagramme: z. B. Use Case Diagramm, Sequenzdiagramm
  • Erläutern Sie, worin sich Strukturdiagramme und Verhaltensdiagramme der UML unterscheiden. Mit Strukturdiagrammen werden Aufbau, Elemente und Zusammensetzung und Schnittstellenvon Systemen darstellt. Vereinfacht gesagt werden Strukturdiagramme eingesetzt, um zumodellieren, woraus ein System besteht. Verhaltensdiagramme hingegen kommen zum Einsatz,wenn dargestellt werden soll, was in einem System abläuft.
  • Nennen Sie die Aktivitäten während der Programmierung und grenzen Sie diese voneinander ab. Programmieren, d. h. Produzieren von Programmcode (auch: Quellcode, Sourcecode, Quelltext,Programmtext),Kompilieren, d. h. automatisches Übersetzen von der Programmiersprache in eine Form, dievon einem Rechner ausgeführt werden kann, sowieAusführen des Programms, d. h. dem Starten und Ausführen des erzeugten und kompiliertenProgrammcodes, um zu sehen, ob sich das System wie erwartet verhält.
  • Was unterscheidet Java von anderen Programmiersprachen wie z. B. der Sprache C? Bei der Programmiersprache Java handelt es sich um eine Plattform-unabhängige Programmiersprache.Das bedeutet, dass ein in Java geschriebenes Programm nicht für jedes Betriebssystemneu angepasst werden muss. Gegenüber anderen Programmiersprachen unterscheidetsich Java dadurch, dass auf den Geräten, auf denen ein Java-Programm ausgeführt werdensoll, vorher eine „Java-Laufzeitumgebung“ (auch: Java Runtime Environment, kurz JRE)installiert werden muss. Der Java-Compiler übersetzt den programmierten Quelltext dann insogenannten „Bytecode“. Dieser Bytecode wird dann von der Java-Laufzeitumgebung geladen,gestartet und ausgeführt. Weil für nahezu jedes Betriebssystem eine entsprechende Java-Laufzeitumgebungverfügbar ist, kann ein Java-Programm sowohl auf einem Linux, Windows oderMac Rechner ausgeführt werden.
  • Woraus besteht das Java SDK und für welche Zwecke wird es benötigt? Um als Software-Entwickler in der Programmiersprache Java Software zu entwickeln, wirddas Java Software Development Kit (kurz: Java SDK) benötigt. Das Java SDK besteht auseinem Java-Compiler, einer Java Virtual Machine, der Java-Klassenbibliothek sowie weiterenHilfsprogrammen.
  • Erstellen Sie das Grundgerüst einer Klasse "Buch". public class Buch {}
  • Geben Sie jeweils 3 Beispiele für gültige und ungültige Klassennamen an. Gültige Namen: „Kunde“, „Vertrag“, „Firma“Ungültige Namen: „public“, „Öffnung“, „Online Shop“
  • Geben Sie je 3 Beispiele für gültige und ungültige Attributnamen an. Gültige Namen: „name“, „ort“, „hersteller“Ungültige Namen: „class“, „größe“, „name der firma“
  • Implementieren Sie eine Klasse "Buch" mit ihren Attributen "verlag", "titel", "autor". public class Buch {    private String verlag;    private String titel;    private String autor;}
  • Nennen und erläutern Sie die Elemente einer Methode, die für die Implementierung in Java benötigt werden. Sichtbarkeitsmodifikator:Legt die Sichtbarkeit der Methode für andere Klassen festz. B. public Rückgabe-Datentyp der Methode:Angabe des Datentyps des Objektes, in dem das Ergebnis der Methode nach Abarbeitung des Methodenrumpfes ausgegeben wird.Dabei muss ein primitiver Datentyp oder eine Klasse (z. B. String oder Kunde) angegeben werden. Für den Fall, dass die Methode kein Ergebnis ausgibt, wird void als Rückgabe-Datentyp festgelegt.z. B. void Methodenname:Legt den Namen für die Methode fest. Ein Methodenname darf innerhalb einer Klasse nur dann mehrfach vergeben werden, wenn sich Anzahl bzw. Datentyp der Parameter unterscheiden.z. B. getName()Parameterliste:Liste benötigter Objekte und deren Datentypen, die zur Abarbeitung der Methode erforderlich sind. Werden keine Parameter angegeben, bleibt die Liste leer.z. B. (String name, String vorname) Methodenrumpf:Enthält die konkreten Anweisungen, was beim Aufruf der Methode in welcher Reihenfolge getan wird. Jede Anweisung wird mit einem Semikolon „;“ beendet, daher  ist in Methodenrümpfen das „;“ oft das letzte Zeichen einer Programmzeile. Die Anweisungen innerhalb eines Methodenrumpfes werden der Reihe nachvon oben nach unten abgearbeitet. Wird für die Methode ein Rückgabe-Datentyp angegeben, beginnt die letzte Anweisung des Methodenrumpfes mit dem Schlüsselwort return.z. B. return name;Geschweifte Klammern:Begrenzen den Methodenrumpf, alle Anweisungen und Abarbeitungsvorschriften einer Methode stehen innerhalb der Klammern. Nach der schließenden Klammer ist die Methode beendet.{ ... }
  • Aus welchen Elementen einer Methode besteht eine Signatur? Die Signatur einer Methode besteht aus dem Namen der Methode und der Parameterliste. Der Rückgabe-Datentyp ist nicht Teil der Signatur.
  • Wodurch wird die Reihenfolge der Abarbeitung von Anweisungen innerhalb eines Methodenrumpfes bestimmt? Die Anweisungen innerhalb eines Methodenrumpfes werden der Reihe nach von oben nach unten abgearbeitet.
  • Anzeige
  • Geben Sie jeweils 2 Beispiele für identische und unterschiedliche Signaturen an. Identische Signaturen:    public void anmelden ()    public int anmelden () Unterschiedliche Signaturen:    public int zumWarenkorbHinzufuegen (Artikel artikel)    public int zumWarenkorbHinzufuegen (Artikel artikel, int anzahl)
  • Wofür werden Getter- und Setter-Methoden eingesetzt? Für das Schreiben und Auslesen von Attributen werden sogenannte Getter- und Setter-Methodeneingesetzt. Eine Getter-Methode („get“ ist englisch und bedeutet „holen“) liefert den Werteines Attributs zurück. Eine Setter-Methode („set“ ist englisch und bedeutet „setzen“) ändertden Wert eines Attributes auf den Wert, der als Parameter der Setter-Methode übergeben wird.
  • Erläutern Sie, wie man als Entwickler dafür sorgen kann, dass die im Methodenrumpf implementierten Anweisungen ausgeführt werden können. Um die in einem Methodenrumpf implementierten Anweisungen auszuführen, muss die entsprechendeMethode aufgerufen werden. Methoden können aus anderen Methodenrümpfen derselben Klasse heraus aufgerufen werden oder aus Methodenrümpfen einer anderen Klasse.
  • Erläutern Sie den Begriff „Überladen von Methoden“ unter der Verwendung eines selbst gewählten Beispiels. Gibt es in einer Klasse Methoden mit dem selben Namen, so spricht man vom Überladen von Methoden. Mit dem Überladen, also dem mehrfachen zur Verfügung stellen einer Methode mit identischem Namen, erhält man als Entwickler die Möglichkeit unterschiedliches Methodenverhalten in Abhängigkeit von den gegebenen Parametern zu definieren:public void zumWarenkorbHinzufuegen (Artikel artikel) {...}public void zumWarenkorbHinzufuegen (Artikel artikel, int anzahl) {...}
  • Wofür wird eine main-Methode in Java benötigt? Für jedes Java-Programm gibt es einen festgelegten Startpunkt, d. h. eine ganz bestimmteMethode wird immer als erstes aufgerufen, wenn das Programm startet: die sogenannte main-Methode. Die Erzeugung aller von dem Programm benötigten Objekte startet  innerhalb dieser Methode.
  • Wie lautet die Deklaration der main-Methode? public static void main(String[] args)
  • Mit welchem primitiven Datentyp können Wahrheitswerte gespeichert werden? boolean
  • Welcher primitive Datentyp wird in der Regel für einfache ganze Zahlen verwendet? int
  • Mit welchem primitiven Datentyp können Sie einfache Ziffern und Buchstaben darstellen? char
  • Mit welchem Datentyp können beliebig lange Zeichenketten dargestellt werden? String
  • Worin unterscheiden sich Variablen von Attributen? Anders als Attribute können Variablen nur innerhalb des Methodenrumpfes verwendet werden.Daher benötigen sie keinen Sichtbarkeitsmodifikator.
  • Geben Sie den Javacode zur Deklaration einer Variablen mit dem Namen „jahr“ zur Speicherung von Jahreszahlen an. int jahr;
  • Geben Sie den Javacode zur Deklaration einer Variablen mit dem Namen „aktienkurs“ zur Speicherung des Aktienkurses einer beliebigen Aktie an. float aktienkurs;
  • Geben Sie den Javacode zur Deklaration einer Variablen mit dem Namen „istGeprueft“ zur Speicherung der Information, ob ein Antrag bereits geprüft wurde oder nicht, an. boolean istGeprueft;
  • Geben Sie den Javacode zur Deklaration einer Variablen mit dem Namen „name“ an, die zur Speicherung von Nachnamen von Kunden verwendet wird. String name;
  • Weisen Sie einer Variablen "jahr" den Wert „1989“ zu. jahr = 1989;oderint jahr = 1989;
  • Weisen Sie der Variablen aus Frage 3 den Wert „465,23“ zu. aktienkurs = 465.23f;
  • Weisen Sie der Variablen aus Frage 4 den Wert „true“ zu. istGeprueft = true;
  • Weisen Sie der Variablen aus Frage 5 den Wert „Schulz“ zu. String name = "Schulz";oder name = "Schulz";
  • Nennen Sie ein Beispiel für eine arithmetische Operation und geben Sie ein Beispiel an, in dem diese Operation eingesetzt wird. Addition: 2 + 3 = 5