XML Schema und Objektorientierung

Größe: px
Ab Seite anzeigen:

Download "XML Schema und Objektorientierung"

Transkript

1

2 XML Schema und Objektorientierung

3 XML Schema und Objektorientierung Einführung.NET Java

4 Einführung: Einsatzbereiche In folgenden Situationen kann eine sehr enge und ähnliche Abbildung von Daten Sinn machen: Die gleichen Daten sollen in mehreren Anwendungen genutzt werden und werden über XML-/Text-Nachrichten (typischerweise Web Services) ausgetauscht und nicht durch Zugriff auf die gleiche Datenbank. Eine Software soll fähig sein, offline und online arbeiten zu können, sodass online zu speichernde Daten möglichst leicht zu serialisieren sein sollen, um sie dann wieder in Objekte einzulesen und dann oder direkt aus der serialisierten Darstellung an die zentrale Datenbank zu senden. Eine Software soll ein eigenes Dateiformat besitzen, welches man möglichst einfach aus Objektzuständen erstellen möchte.

5 Einführung: Prinzip Klasse Collection Klasse Klasse Klasse Collection / Array Collection-Element Eigenschaften einer Klasse

6 Einführung: Prinzip In der Abbildung hat man über eine XML Schema-Darstellung eine weitere Ebene eingefügt, welche eine Hierarchie in XML in Klassen mit Eigenschaften zerlegt. Das Vorgehen ist hierbei recht simpel: Jede Hierarchie-Ebene bzw. jeder Teilbaum steht für eine Klasse. Ein Element, das einen Textknoten enthält, und ein Attribut betrachtet man als Eigenschaften einer Klasse. Es ist lediglich bei der Übertragung von Daten festzuhalten, welche Eigenschaften nun Elemente und welche Attribute sind. Ein Element, das selbst wieder Kind-Elemente hat, stellt eine Eigenschaft einer Klasse dar, die ein Objekt enthält. Eine Gruppe von Geschwister-Elementen stellt die Eigenschaften einer Klasse dar. Dabei unterscheidet man zwischen primitiv typisierten und über eine Klasse typisierte Eigenschaften. Kann ein Element mehrfach im Instanzdokument erscheinen, ist es als Collection oder Array zu betrachten.

7 Einführung: Gemeinsamkeiten Als Zusammenfassung dieses Abschnitts kann man nun noch beide Welten die objektorientierte und die XML Schema-Welt zusammen in eine Abbildung bringen. Sie zeigt die folgenden Aspekte: Das Datenmodell und damit die Strukturdefinitionen sind in XML Schema und in der Klassendefinition hinterlegt. Es ist nicht immer notwendig, eine 1:1-Zuordnung herzustellen, denn oft wird nur ein Teil der Daten in XML oder der Software benötigt. Die Instanzen sind dann entweder die XML-Instanzdokumente, da sie gültige Entsprechungen des XML Schema sind, oder die Objekte, da sie auf Basis der Klassen instanziiert wurden. Die Erzeugung von XML Schema-Dateien aus den Klassendefinitionen oder umgekehrt, lässt sich durch schon vorhandene Generator-Software durchführen. Ebenfalls vorhandene weitere Software nutzt Anmerkungen in den Klassen oder auch der XML Schema-Datei, um die Instanzen ebenfalls bei Bedarf zu überführen.

8 Generator - Software Instanz(daten) Modell Einführung: Gemeinsamkeiten <> schema { class XM- Daten Objekte XML Schema -> Klasse Automatisch oder benutzerdefinierte Anmerkungen in Schema Klasse -> XML Schema Automatisch oder benutzerdefinierte Anmerkungen in Klasse

9 Einführung: Generierung und (Un)Marshalling <> schema + Erweiterungen für Anpassung der Bindung XML Schema- Generator Klassen-Generator { class + Annotationen für Anpassung der Bindung <> XML data Marshaller Unmarshaller

10 Einführung: <> XML Schema- Generator Generierung schema und (Un)Marshalling Klassen-Generator { class + Erweiterungen für Anpassung der Bindung + Annotationen für Anpassung der Bindung Marshaller <> XML data Unmarshaller

11 Einführung: Generierung und (Un)Marshalling <> schema + Erweiterungen für Anpassung der Bindung XML Schema- Generator Klassen-Generator { class + Annotationen für Anpassung der Bindung <> XML data Marshaller Unmarshaller

12 Einführung: Zusammenfassung Die nächste Abbildung fasst die verschiedenen Konzepte noch einmal zusammen. Die Klassen werden an das XML Schema gebunden und umgekehrt. Dafür gibt es Kommandozeilentools zur Generierung der fehlenden Dateien. Die XML-Instanzdaten folgen ihrem XML Schema. Die Objekte folgenden ihren Klassendefinitionen. Zwischen den Instanzdaten in Objekten und XML findet eine Umwandlung statt Marshalling und Unmarshalling genannt. Dafür gibt es Framework-Klassen zur Umwandlung der Instanzdaten unter Rückgriff auf die Bindungsinformationen.

13 Einführung: Zusammenfassung XML Schema <> schema definiert folgt Bindung { class definiert folgt <> XML data xml Unmarshalling (Deserialisierung) Marshalling (Serialisierung) Objekte

14 Einführung: Ausblick Datenbanken Datenbank (De)Serialisierung XML data <> Sicht XML- Schnittstelle (Un)Marshalling Tabelle 1 Tabelle 2 SQL- Schnittstelle Ergebnismenge (Objekte) Umwandlung SQL-Befehle und Daten Objekte Relationale Modellierung XML- Modellierung Objektorientierte Modellierung Gemeinsame Daten-Elemente

15 Einführung: Ausblick Datenbanken Die Abbildung stellt zwei verschiedene Vorgehensweisen dar: Setzt man den traditionellen Weg über SQL und Ergebnismengen ein, so ruft man Daten in einem nicht weiter typisierten Format ab und formt aus diesen dann die benötigten Objektstrukturen. Sollen Daten wieder zur Datenbank geschickt werden, muss man sie in einzelne SQL-Anweisungen umwandeln, die dann die relationalen Strukturen referenzieren und die entsprechenden Daten einhalten. Setzt man auf die XML Schema-Bindung, dann erhält man direkt von der Datenbank das benötigte XML, welches dann in die benötigten Objekte umgewandelt wird. Der umgekehrte Weg ist genauso einfach, denn hier wandelt man die Objektstruktur in XML um und übergibt dieses an die Datenbank, die dann die XML- Daten relational zerlegen muss.

16 Fragen...

17 XML Schema und Objektorientierung Einführung.NET Java

18 .NET: Prinzip der Klassengenerierung { class ErfolguebersichtErfolg ErfolguebersichtErfolgGesamt Erfolguebersicht <> schema ErfolguebersichtErfolgProKopf Generierte Klassen aus Matrjoschka-Design

19 .NET: Prinzip der Klassengenerierung public partial class Erfolguebersicht { private ErfolguebersichtErfolg[] erfolgfield; public ErfolguebersichtErfolg[] Erfolg { get { return this.erfolgfield; set { this.erfolgfield = value; public partial class ErfolguebersichtErfolg { private ErfolguebersichtErfolgGesamt gesamtfield; private ErfolguebersichtErfolgProKopf prokopffield; private string stadtfield; private string monatfield; public ErfolguebersichtErfolgGesamt Gesamt { get { return this.gesamtfield; set { this.gesamtfield = value; public ErfolguebersichtErfolgProKopf ProKopf { get { return this.prokopffield; set { this.prokopffield = value; public string Stadt { get { return this.stadtfield; set { this.stadtfield = value; public string Monat { get { return this.monatfield; set { this.monatfield = value; public partial class ErfolguebersichtErfolgGesamt { public partial class ErfolguebersichtErfolgProKopf { private decimal umsatzfield; private decimal anrufefield; private short kundenfield; public decimal Umsatz { get { return this.umsatzfield; set { this.umsatzfield = value; public decimal Anrufe { get { return this.anrufefield; set { this.anrufefield = value; public short Kunden { get { return this.kundenfield; set { this.kundenfield = value; private decimal umsatzfield; private decimal anrufefield; public decimal Umsatz { get { return this.umsatzfield; set { this.umsatzfield = value; public decimal Anrufe { get { return this.anrufefield; set { this.anrufefield = value;

20 .NET: Schema-Bindung { class { { { <> schema Generierte Klassen aus globalen komplexen Typen {

21 .NET: Schema-Bindung public partial class Erfolguebersicht { private ErfolgTyp[] erfolgfield; public ErfolgTyp[] Erfolg { get { return this.erfolgfield; set { this.erfolgfield = value; public partial class ErfolgTyp { private GesamtType gesamtfield; private UmsatzTyp prokopffield; private string stadtfield; private string monatfield; public GesamtType Gesamt { get { return this.gesamtfield; set { this.gesamtfield = value; public UmsatzTyp ProKopf { get { return this.prokopffield; set { this.prokopffield = value; public string Stadt { get { return this.stadtfield; set { this.stadtfield = value; public string Monat { get { return this.monatfield; set { this.monatfield = value; public partial class GesamtType : UmsatzTyp { public partial class UmsatzTyp { private int kundenfield; public int Kunden { get { return this.kundenfield; set { this.kundenfield = value; private decimal umsatzfield; private decimal anrufefield; public decimal Umsatz { get { return this.umsatzfield; set { this.umsatzfield = value; public decimal Anrufe { get { return this.anrufefield; set { this.anrufefield = value;

22 .NET: Generierung und Mapping beeinflussen using System.Xml.Serialization; [XmlRoot(Namespace = " ElementName = "Uebersicht")] // Alternative: anonymer Typ //[XmlType(AnonymousType=true)] [XmlType("UebersichtTyp")] public partial class Erfolguebersicht { private ErfolgTyp[] erfolg; [XmlElement(ElementName = "Erfolg", IsNullable = false)] public ErfolgTyp[] Erfolg { get; set;

23 .NET: Generierung und Mapping beeinflussen public partial class ErfolgTyp { private GesamtTyp gesamt; private UmsatzTyp prokopf; private string stadt; private string monat; private string region; // Berücksichtigung als Element mit Umbenennung [XmlElement(ElementName = "Total", IsNullable = true)] public GesamtTyp Gesamt { get; set; // Berücksichtigung als Element gleichen Namens [XmlElement(IsNullable = true)] public UmsatzTyp ProKopf { get; set; // Unberücksichtigt lassen [XmlIgnore] public string Region { get; set; // Berücksichtigung als Attribut und Namensänderung //[XmlAttribute("Ort")] [XmlAttribute(AttributeName = "Ort", DataType="string")] public string Stadt { get; set; // Berücksichtigung als Attribut gleichen Namens [XmlAttribute()] public string Monat { get; set;

24 .NET: Generierung und Mapping beeinflussen

25 .NET: Marshalling und Unmarshalling // Erstellung einer Erfolgsübersicht Erfolguebersicht uebersicht = new Erfolguebersicht(); ErfolgTyp erfolg = new ErfolgTyp(); erfolg.monat = "10.04"; erfolg.stadt = "Essen, Ruhr"; // Serialisierung XmlSerializer serializer = new XmlSerializer(typeof(Erfolguebersicht)); TextWriter writer = new StreamWriter(filename); serializer.serialize(writer, uebersicht); writer.close();

26 .NET: Marshalling und Unmarshalling // Deserialisierung XmlSerializer serializer = new XmlSerializer(typeof(Erfolguebersicht)); FileStream fs = new FileStream(filename, FileMode.Open); Erfolguebersicht uebersicht; uebersicht = (Erfolguebersicht)serializer.Deserialize(fs); // Ausgabe und Weiterverwendung Console.WriteLine("Anrufe gesamt: " + uebersicht.erfolg[0].gesamt.anrufe); Console.WriteLine("Anrufe pro Kopf: " + uebersicht.erfolg[0].prokopf.anrufe);

27 Fragen...

28 XML Schema und Objektorientierung Einführung.NET Java

29 Java : Prinzip der Klassengenerierung { class ErfolguebersichtErfolg ErfolguebersichtErfolgGesamt Erfolguebersicht <> schema ErfolguebersichtErfolgProKopf Generierte Klassen aus Matrjoschka-Design

30 Java : Prinzip der Klassengenerierung public class Erfolguebersicht { protected List<Erfolguebersicht.Erfolg> erfolg; public List<Erfolguebersicht.Erfolg> geterfolg() { if (erfolg == null) { erfolg = new ArrayList<Erfolguebersicht.Erfolg>(); return this.erfolg; public static class Erfolg { protected Erfolguebersicht.Erfolg.Gesamt gesamt; protected Erfolguebersicht.Erfolg.ProKopf prokopf; protected String stadt; protected String monat; public Erfolguebersicht.Erfolg.Gesamt getgesamt() { return gesamt; public void setgesamt(erfolguebersicht.erfolg.gesamt value) { this.gesamt = value; public Erfolguebersicht.Erfolg.ProKopf getprokopf() { return prokopf; public void setprokopf(erfolguebersicht.erfolg.prokopf value) { this.prokopf = value; public String getstadt() { return stadt; public void setstadt(string value) { this.stadt = value; public String getmonat() { return monat; public void setmonat(string value) { this.monat = value; public static class Gesamt { protected BigDecimal umsatz; protected BigDecimal anrufe; protected short kunden; public BigDecimal getumsatz() { return umsatz; public void setumsatz(bigdecimal value) { this.umsatz = value; public BigDecimal getanrufe() { return anrufe; public void setanrufe(bigdecimal value) { this.anrufe = value; public short getkunden() { return kunden; public void setkunden(short value) { this.kunden = value; public static class ProKopf { protected BigDecimal umsatz; protected BigDecimal anrufe; public BigDecimal getumsatz() { return umsatz; public void setumsatz(bigdecimal value) { this.umsatz = value; public BigDecimal getanrufe() { return anrufe; public void setanrufe(bigdecimal value) { this.anrufe = value;

31 Java: Schema-Bindung { class { { { <> schema { Generierte Klassen aus globalen komplexen Typen

32 Java: Schema-Bindung public class Erfolguebersicht { protected List<Erfolg> erfolg; public List<Erfolg> geterfolg() { if (erfolg == null) { erfolg = new ArrayList<Erfolg>(); return this.erfolg; public class Erfolg { protected Gesamt gesamt; protected UmsatzTyp prokopf; protected String stadt; protected String monat; public Gesamt getgesamt() { return gesamt; public void setgesamt(gesamt value) { this.gesamt = value; public UmsatzTyp getprokopf() { return prokopf; public void setprokopf(umsatztyp value) { this.prokopf = value; public String getstadt() { return stadt; public void setstadt(string value) { this.stadt = value; public String getmonat() { return monat; public void setmonat(string value) { this.monat = value; public class GesamtTyp extends UmsatzTyp { public class UmsatzTyp { protected int kunden; public int getkunden() { return kunden; public void setkunden(int value) { this.kunden = value; protected BigDecimal umsatz; protected BigDecimal anrufe; public BigDecimal getumsatz() { return umsatz; public void setumsatz(bigdecimal value) { this.umsatz = value; public BigDecimal getanrufe() { return anrufe; public void setanrufe(bigdecimal value) { this.anrufe = value;

33 Java: Generierung und Mapping beeinflussen name = "", proporder = {"erfolg", namespace = " = "Erfolguebersicht") public class Erfolguebersicht = "Erfolg", required = true) protected List<ErfolgTyp> erfolg;...

34 Java: Generierung und name = "ErfolgTyp", proporder = { "gesamt", "prokopf" ) public class ErfolgTyp = "Gesamt", required = true) protected GesamtTyp = "ProKopf", required = true) protected UmsatzTyp prokopf; // Berücksichtigung mit anderem = "Ort", required = true) protected String = "Monat", required = true) protected String monat; // Nicht private String region;...

35 Java: Generierung und Mapping beeinflussen <xs:element name="kunden" type="xs:int"> <xs:annotation> <xs:appinfo> <jaxb:property name="klienten"/> </xs:appinfo> </xs:annotation> </xs:element>... <xs:element name="erfolg" type="erfolgtyp" maxoccurs="unbounded"> <xs:annotation> <xs:appinfo> <jaxb:property name="erfolgliste" collectiontype="java.util.list"/> </xs:appinfo> </xs:annotation> </xs:element> <xs:complextype name="umsatztyp"> <xs:annotation> <xs:appinfo> <jaxb:javadoc><![cdata[<h2>klasse <i>umsatz</i></h2>]]></jaxb:javadoc> <jaxb:class name="umsatz"/> </xs:appinfo> </xs:annotation> <xs:sequence> <xs:element ref="umsatz"/>...

36 Java: Marshalling und Unmarshalling // Erstellung einer Erfolgsübersicht ObjectFactory of = new ObjectFactory(); Erfolguebersicht uebersicht = of.createerfolguebersicht(); GesamtTyp gesamt = of.creategesamttyp(); gesamt.setanrufe(bigdecimal.valueof(18869));... // Serialisierung try { JAXBContext jc = JAXBContext.newInstance("generated"); Marshaller m = jc.createmarshaller(); m.setproperty(marshaller.jaxb_formatted_output, Boolean.TRUE); m.marshal(uebersicht, new File("erfolguebersicht.xml")); catch (JAXBException e){ e.printstacktrace();

37 Java: Marshalling und Unmarshalling try { // Deserialisierung JAXBContext jc = JAXBContext.newInstance("generated"); Unmarshaller u = jc.createunmarshaller(); Erfolguebersicht uebersicht = (Erfolguebersicht)u. unmarshal( new FileInputStream("erfolguebersicht.xml")); // Ausgabe und Weiterverwendung Iterator<ErfolgTyp> iter = uebersicht.geterfolg().iterator(); while (iter.hasnext()){ ErfolgTyp erfolg = iter.next(); System.out.println("Anrufe gesamt: " + erfolg.getgesamt().getanrufe()); System.out.println("Anrufe pro Kopf: " + erfolg.getprokopf().getanrufe());

38 Fragen...

JAXB. Java Architecture for XML Binding.

JAXB. Java Architecture for XML Binding. JAXB Java Architecture for XML Binding http://jaxb.java.net Warum JAXB? JAXB ist eine schnelle und einfache Methode, um ein XML Schema mit einer Java Repräsentation zu verbinden. Damit ist es sehr einfach,

Mehr

<< Java Architecture for XML Binding >>

<< Java Architecture for XML Binding >> JAXB > 1 Lernziele JAXB Übersicht JAXB Prinzip von Data Binding verstehen Java Klassen aus XSD erzeugen Java Objekte aus XML marschallen bzw. unmarschallen Customized

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Angewandte Softwareentwicklung Serialisierung

Angewandte Softwareentwicklung Serialisierung Angewandte Softwareentwicklung Serialisierung WS 2014/2015 Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik markus.berg@hs-wismar.de http://mmberg.net

Mehr

XSD - XML Schema Definition

XSD - XML Schema Definition XSD - XML Schema Definition Definieren von XML-Dokumenten Michael Dienert 15. September 2016 Inhaltsverzeichnis 1 Was sind XSD Dateien und warum soll man das lernen? 1 1.1 XSD Dateien und Anwendungen....................

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Attribute Überblick - Attribute ermöglichen das Hinzufügen von benutzerdefinerbaren Informationen zur Klasse - analog der Sprache, Bsp.: ein schönes Auto - können zur Laufzeit abgefragt und ausgewertet

Mehr

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2 Problemstellung Objekt mit aggregierten Objekten: att1: att2: 17 Object1:Klasse1 Object2:Klasse2 att1: Klasse1 att2: 9 serialisiert als Datei: Klasse1 att1 att2 Klasse2 att1 att2 -Speicherung von Objekten

Mehr

Java API for XML Binding

Java API for XML Binding Java API for XML Binding Eine Einführung Tim Speier Fachbereich MNI Fachhochschule Gießen-Friedberg 24. Juni 2010 1 / 27 XM und Java Teil 1: Aufgabenstellung Aufgabenstellung: In einem XML-Dokument werden

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

JAXB 2.0. Samuel Michaelis, Wolfgang Schmiesing. Ein Programmiertutorial für die Java Architecture for XML Binding ISBN

JAXB 2.0. Samuel Michaelis, Wolfgang Schmiesing. Ein Programmiertutorial für die Java Architecture for XML Binding ISBN JAXB 2.0 Samuel Michaelis, Wolfgang Schmiesing Ein Programmiertutorial für die Java Architecture for XML Binding ISBN 3-446-40753-7 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40753-7

Mehr

WPF Steuerelemente. Dr. Beatrice Amrhein

WPF Steuerelemente. Dr. Beatrice Amrhein WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einf führung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone

XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone www.comelio-medien.com XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone XML Schema Marco Skulschus Marcus Wiederstein Sarah

Mehr

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze Vorlesung 14 Serialisierung, Autoboxing 1 Serialisierung von Objekten Die Objekte innerhalb eines Java-Programmes sollen manchmal auch nach Beendigung der JVM verfügbar bleiben Objekte müssen ab und an

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

Mehr

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuß, Henning Timm Übungsblatt 11

Mehr

3 Serialisierung und XML

3 Serialisierung und XML .NET Essentials 3 Serialisierung und XML Einführung Serialisierung bedeutet, vereinfacht ausgedrückt, das»überleben«der Objekte nach einem Programmende oder die Verpackung der Objekte für den Transport

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

Ich liebe Java && Ich liebe C# Rolf Borst

Ich liebe Java && Ich liebe C# Rolf Borst Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String

Mehr

Sommersemester Implementierung I: Struktur

Sommersemester Implementierung I: Struktur Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Einführung in C# Teil 1. Matthias Nübling

Einführung in C# Teil 1. Matthias Nübling Einführung in C# Teil 1 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Java I Vorlesung Generics und Packages

Java I Vorlesung Generics und Packages Java I Vorlesung 9 Generics und Packages 21.6.2004 Generics Packages Qualifizierte Namen Mehr zu Zugriffsklassen Generics (Java 1.5) Die Klassen im Java Collections Framework sind mit dem Typ ihrer Elemente

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

CLICK TO EDIT MASTER TITLE STYLE

CLICK TO EDIT MASTER TITLE STYLE CLICK TO EDIT MASTER TITLE STYLE AUTOMATISCHE ERZEUGUNG VON BENUTZEROBERFLÄCHEN UND DATENHALTUNG FÜR DIE KONFIGURATION VON FELDGERÄTEN Diplomverteidigung Betreuer (Firma ubigrate): Dipl.-Inform. Falk Hartmann

Mehr

Mensch ärgere dich nicht

Mensch ärgere dich nicht Mensch ärgere dich nicht Quelle: https://upload.wikimedia.org/wikipedia/commons/thumb/9/91/menschenaergern.svg/ 2000px-Menschenaergern.svg.png Sachverhalt In dem Spiel Mensch ärgere dich nicht, geht es

Mehr

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 4: Kombination OOP/.NET 1/27/2012 1 Do Events Delegates Operatoren Exceptions Namespaces Bibliotheken.NET Klassen Serialisierung

Mehr

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Soll ich Modellieren oder Programmieren? sowohl als auch!!! Produktivitäts-Steigerung

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite!

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite! JUnit a Cook s Tour Ziel des Frameworks Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren Design des Frameworks Beginne bei Nichts Schritt für Schritt aus passenden Mustern

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 3 2 Übersicht der heutigen Inhalte Pakete Beispiel zur Verdeckung Polymorphie Modifikatoren bei Klassenelementen 3 Zusammenhang

Mehr

Musterlösung Stand: 5. Februar 2009

Musterlösung Stand: 5. Februar 2009 Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008 Programmieren II SAX Dr. Klaus Höppner DOM Hochschule Darmstadt SS 2008 JAXB 1 / 21 2 / 21 SAX SAX (Simple API for XML) ist eine ereignisorientierte Methode zum Parsen von XML-Dateien. Dies bedeutet, das

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

10. Programmierungs-Phase: Objektorientierung Software Engineering

10. Programmierungs-Phase: Objektorientierung Software Engineering 10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Einführung in die Programmierung für NF MI. Übung 07

Einführung in die Programmierung für NF MI. Übung 07 Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

Datasets als DTO im Web Service-Umfeld

Datasets als DTO im Web Service-Umfeld Datasets als DTO im Web Service-Umfeld Ein Erfahrungsbericht Markus Legner Senior Consultant Tricept Informationssysteme AG Benzstr. 37 70736 Fellbach 0711 / 52 08 92 60 www.tricept.de 1 Einleitung Wie

Mehr

Klassen und Objekte (1)

Klassen und Objekte (1) Klassen und Objekte (1) Begriffe Objekt Objekte definieren sich über Eigenschaften und auf sie anwendbare Methoden. Für grafische Elemente einer Anwendung, stehen Objekte bereit. Das ermöglicht z.b. das

Mehr

Ein Design Tool für objektorientierte portable Programmierschnittstellen

Ein Design Tool für objektorientierte portable Programmierschnittstellen Diplomarbeit Ein Design Tool für objektorientierte portable Programmierschnittstellen Vortragender: Elias Volanakis Inhalt 1. Entwurfsmuster 2. Wrapper Facade (WF) Aufgaben & Struktur Implementierung Nutzen

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1 Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7 Inhaltsverzeichnis RMI Projekt gettime 1 Schritt 1: Interface Klasse definieren 1 Schritt 2: Implementation Class definieren 2 Schritt 3: RMI Compiler erstellen

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1 Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

Kapitel 9 Schnittstellen

Kapitel 9 Schnittstellen Kapitel 9 Schnittstellen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Was ist eine Schnittstelle?

Mehr

Pakete Software Entwicklung 1

Pakete Software Entwicklung 1 Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Organisation von Klassen- und Interface-Deklaration Java-Programme bestehen aus Typdeklarationen, d.h. Klassen- und Interface-Deklarationen.

Mehr

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle OR-Mapping Zwei Paradigmen treffen aufeinander Gegensätze OO vs. Relational: Stichwort: O/R Impedance Mismatch Person Tabellen mit Schlüssel und Fremdschlusselbeziehungen. Abt-Nr. beschäftigt Pk-Nr Name

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

Mehr

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Aufgabe: Hinweise zu der Farbwahl der Texte/Wörter: Orange ist angegeben, wo etwas ergänzt werden soll.

Aufgabe: Hinweise zu der Farbwahl der Texte/Wörter: Orange ist angegeben, wo etwas ergänzt werden soll. Aufgabe: Im Folgenden ist der Code des selbstlernenden Spiels Tiere Raten abgedruckt. Der Code ist noch nicht lauffähig. Damit das Spiel gespielt werden kann, müssen in der Klasse Tiere Raten einige Dinge

Mehr

Ersetzbarkeit und Verhalten

Ersetzbarkeit und Verhalten Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Grundlagen der Informatik 0

Grundlagen der Informatik 0 Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Analyse der Datenkommunikation zur drahtlosen Steuerung eines NAO Roboters durch ein Android Gerät

Analyse der Datenkommunikation zur drahtlosen Steuerung eines NAO Roboters durch ein Android Gerät Analyse der Datenkommunikation zur drahtlosen Steuerung eines NAO Roboters durch ein Android Gerät Seminarvortrag am 17. Januar 2014 Gerrit Kieffer Rechen- und Kommunikationszentrum (RZ) Gliederung Motivation

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August

Mehr

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste

Mehr