CopaMVVM unter WPF. Simon Kranzer Roland Graf

Größe: px
Ab Seite anzeigen:

Download "CopaMVVM unter WPF. Simon Kranzer Roland Graf"

Transkript

1 CopaMVVM unter WPF Simon Kranzer Roland Graf

2 Model-View-ViewModel-Pattern (MVVM) unter WPF View die Benutzeroberfläche WPF: XAML + Codebehind Datei ViewModel Klasse zur Kapselung des Model WPF: View bindet sich an dessen Properties Model Datenmodell WPF: Klassen enthalten die Nutzdaten

3 Model-View-ViewModel-Pattern (MVVM) unter WPF View kennt das ViewModel ViewModel kennt das Model, aber nicht das View Model kennt weder die View noch das ViewModel

4 Model-View-ViewModel-Pattern (MVVM) unter WPF Events Definition deklarativ in XAML Erstellung durch Designer Nimmt Benutzereingaben entgegen Einfache Eingabeüberprüfung durch Controls Weiterleitung der Eingaben an ViewModel durch Data Binding Enthält keinerlei UI Elemente Logik zur Behandlung der Benutzereingaben Erstellung durch Entwickler Rückmeldung an View durch Events oder mittels Delegatenaufruf Enthält nur die Daten Erstellung durch Entwickler

5 Commands implementieren Vier Schritte zur Implementierung eigener Commands 1. Command implementieren Klasse erstellen, die das Interface ICommand implementiert 2. ICommand Klasse instanzieren Instanz in statischen Variablen speichern 3. Command im View (XAML) verwenden 4. Command von Funktionalität entkoppeln

6 Das Interface ICommand für Klassen die Commands implementieren namespace System.Windows.Input public interface ICommand // Defines the method that determines whether the // command can execute in ist current state // Returns true if this command can be executed; // otherwise, false. bool CanExecute(object parameter); // Defines the method to be called when the command // is invoked. void Execute(object parameter); // Occurs when changes occur that affect whether // or not the command should execute. event EventHandler CanExecuteChanged;

7 Das Interface ICommandSource für Klassen die Commands auslösen namespace System.Windows.Input // Defines an object that knows how to invoke a command. public interface ICommandSource // Gets the command that will be executed when the // command source is invoked. ICommand Command get; // Represents a user defined data value that can be passed // to the command when it is executed. // Returns the command specific data. object CommandParameter get; // The object that the command is being executed on. IInputElement CommandTarget get;

8 1. Command implementieren mit Klasse die ICommands implementiert public class Exit : ICommand public bool CanExecute(object parameter) return true; public void Execute(object parameter) Application.Current.Shutdown(); public event EventHandler CanExecuteChanged;

9 2. Command instanzieren mit statischer Klasse die ICommands speichert public static class AppCommands private static ICommand _exit = new ExitCommand(); public static ICommand Exit get return _exit; private static ICommand _sort = new SortCommand(); public static ICommand Sort...

10 3. Command verwenden mit XAML im Property Command <Window x:class="demo.mainwindow" xmlns=" xmlns:x=" xmlns:local="clr-namespace:demo.mainwindow" <MenuItem Command="x:Static local:appcommands.exit" Header="Exit" /> <Button Command="x:Static local:appcommands.sort" Content="Sort" />

11 4. Command & Programmlogik entkoppeln Forderung: Command ist derzeit noch abhängig vom Target, sollte aber unabhängig vom aktuellen Eingabefokus sein Lösung: Wir feuern beim Execute einen RoutedEvent und jenes Control das sich angesprochen fühlt (z.b. aktuelles Window oder Control mit Eingabefokus) reagiert darauf.

12 Entkoppelung mit Routed Events Routing Strategien Tunnel - Event wird vom Wurzelelement durch den Element Tree nach unten bis zum auslösenden Element weitergeleitet. Events habe meist Präfix Preview Bubble Event blubbert von auslösendem Element durch den Element Tree in Richtung Wurzelelement Direct Event zeigt seine Wirkung nur auf dem Element, das den Event auslöst (auch Nor-Routing Strategie genannt).

13 Entkoppelung mit Routed Events Tunnel und Bubble

14 Command mit Routed Events mit Klasse die ICommands implementiert - Sender // Command Klasse als Event Sender public class Exit : ICommand public static readonly RoutedEvent ExecuteEvent = EventManager.RegisterRoutedEvent( Execute, Routingstrategie.Bubble, typeof(routedeventhandler), typeof(exit));... public void Execute(object parameter) RoutedEventArgs e = new RoutedEventArgs(ExecuteEvent, Keyboard.FocusedElement); Keyboard.FocusedElement.RaiseEvent(e);...

15 Command mit Routed Events mit Klasse die ICommands implementiert - Empfänger // MainWindow als Empfänger der Events public MainWindow() InitializeComponent(); this.addhandler( Exit.ExecuteEvent, new RoutedEventHandler(OnExitExecute)); private void OnExitExecute(object sender, RoutedEventArgs e) this.close();

16 Ablauf eines Command mit Routed Events am Beispiel des Buttons Exit Sender: Exit Klasse registriert RoutedEvent mit dem Namen Execute beim EventManager View (XAML): Button Exit wird Referenz auf Exit Objekt mit ICommand Interface zugewiesen Empfänger: Window Objekt registriert RoutedEventHandler 1. Benutzer klickt Button Exit an 2. Button Exit ruft Methode Execute über die Referenz der Schnittstelle ICommand aus Klasse Exit auf 3. Execute feuert ExecuteEvent 4. RoutedEvent blubbert von vom Tastatur-Fokus nach oben 5. Window Objekt empfängt Event und bearbeitet OnExitExecute

17 Command & Logik mit.net entkoppeln mit RoutedCommands RoutedCommands/RoutedUICommands RoutedEvent basierte Klassen mit konkreter Implementierung des Interfaces ICommand CommandManager Klasse kümmert sich um die Verwaltung der Commands und Referenzen CommandBinding Verbindet eine RoutedUICommand-Instanz mit einem/mehreren Event Handlern also mit Logik.

18 .NET-eigene Command Entkopplung Klassen RoutedCommand / RoutedUICommand RoutedCommand/RoutedUICommand Konkrete explizite Implementierung des Interfaces ICommand public class RoutedCommand: ICommand public bool CanExecute(object param, IInputElement target); public void Execute(object param, IInputElement target); public ICommand.CanExecute(object param); public ICommand.Execute(object param); public event EventHandler CanExecuteChanged;

19 .NET-eigene Command Entkopplung Der CommandManager Der CommandManager definiert vier RoutedEvents zur Nutzung durch die Klasse RoutedCommands und einen Eventhandler namespace System.Windows.Input public sealed class CommandManager public static readonly RoutedEvent CanExecuteEvent; public static readonly RoutedEvent PreviewCanExecuteEvent; public static readonly RoutedEvent ExecuteEvent; public static readonly RoutedEvent PreviewExecuteEvent; public static event Eventhandler RequerySuggested;...

20 .NET-eigene Command Entkopplung CommandManager & RoutedCommand / RoutedUICommand Was passiert nun im RoutedCommand bei Execute und CanExecute? CanExecute lösen das Tunneling Event PreviewCanExecute und dann das Bubbling Event CanExecute aus. Execute lösen das Tunneling Event PreviewExecute und dann das Bubbling Event Execute aus. Wozu ein RequerySuggested? Der CommandManager löst einen RequerySuggested Event immer dann aus, wenn ein Input-Event (Tastatur, Mausklick) stattfindet.

21 .NET-eigene Command Entkopplung CommandBinding CommandBinding Verbindet eine RoutedUICommand-Instanz mit einem oder mehreren Event Handlern - also mit Logik Definiert vier gleichnamige Events wie CommandManager Beispielbindung: CommandBinding cmdbind = new CommandBinding(); cbnd.command = ApplicationCommands.Paste; cbnd.executed += new ExecuteRoutedEventHandler(CmdExecuted); cbnd.canexecute += new ExecuteRoutedEventHandler(CmdCanExecute); Und wo wird diese Bindung vorgenommen?

22 .NET-eigene Command Entkopplung CommandBinding CommandBinding Bindung findet in Klassen UIElement, UIElement3D und ContentElement statt Klassen besitzen Property CommandBindings vom Typ CommandBindingCollection Klassen definieren intern vier statische EventHandler für die vier Events der CommandManager Klasse.

23 .NET-eigene Command Entkopplung CommandBinding CommandBinding??????????????

24 Wir erstellen eine MVVM Applikation Projekt anlegen WPF Projekt MVVMDemo anlegen Im Projekt Verzeichnisse erstellen für Model ViewModel View Command Common

25 MVVM Pattern unter WPF/Silverlight MVVM Pattern für WPF basiert auf Data Bindings Commands anstatt eine auf RoutedCommands basierende hat sich auf Delegates basierende Implementierung durchgesetzt Begründung: Logik und Command sollte in der ViewModel Klasse sein und RoutedCommands gibt es nur bei UIElements und nicht in der ViewModel-Instanz

26 Wir erstellen eine MVVM Applikation Model und ViewModel Klassen anlegen Im Verzeichnis Model erstellen wir die Klassen public class Person mit den Properties FirstName, LastName, public class PersonCollection : Collection<Person> Im Verzeichnis ViewModel erstellen wir die Klassen public class ViewModelBase public class MainViewModel : ViewModelBase

27 Wir erstellen eine MVVM Applikation View deklarativ in XAML definieren MainWindow XAML Datei entsprechend anpassen

28 Wir erstellen eine MVVM Applikation Klasse MainViewModel Klasse MainViewModel kapselt das Model mit den Daten 1. Property PersonCollection einfügen public PersonCollection Persons get; private set; 2. und mit Daten befüllen bietet Interfaces ICommand für das View 3. Property PersonCollection einfügen ICommand PreviousCommand get; private set; ICommand NextCommand get; private set;

29 Wir erstellen eine MVVM Applikation Klasse ActionCommand Klasse ActionCommand kapselt für ein Command-Objekt notwendigen Informationen stellt die Verbindung zwischen der Command- Eigenschaft eines Steuerelements und einer auszuführenden Methode im ViewModel her Allgemeine Forderung an die Klasse Implementiert Icommand Verwaltet Referenz auf Execute- und CanExecuteHandler

30 Wir erstellen eine MVVM Applikation Klasse ActionCommand Klasse ActionCommand Allgemeine Forderung an die Klasse Verwaltet Delegaten für Execute- und CanExecuteHandler Einfache Angabe der beiden Delegaten über Konstruktor Implementiert ICommand Ruft in den beiden Methoden jeweils die Delegaten auf Fügt den CanExecuteChanged EventHandler dem RequerySuggested des CommandManagers hinzu

31 Wir erstellen eine MVVM Applikation Klasse ActionCommand - Source - 1- Klasse mit Felder und Konstruktor: public class ActionCommand : ICommand private readonly Action<object> _executehandler; private readonly Func<object, bool> _canexecutehandler; public ActionCommand( Action<object> execute, Func<object, bool> canexecute) if (execute == null) throw new ArgumentNullException("Execute cannot be null"); _executehandler = execute; _canexecutehandler = canexecute;

32 Wir erstellen eine MVVM Applikation Klasse ActionCommand Source -2- Hinzufügen der beiden Methoden Execute und CanExecute: public class ActionCommand : ICommand... public void Execute(object parameter) _executehandler(parameter); public bool CanExecute(object parameter) if (_canexecutehandler == null) return true; return _canexecutehandler(parameter);

33 Wir erstellen eine MVVM Applikation Klasse ActionCommand Source -3- Hinzufügen zweier benutzerderfinierter Event Accessoren: public class ActionCommand : ICommand... public event EventHandler CanExecuteChanged add CommandManager.RequerySuggested += value; remove CommandManager.RequerySuggested -= value;

34 Wir erstellen eine MVVM Applikation Bindung an einfache.net Properties Dependency Properties können auf andere Elemente verweisen Verfügen über einen Benachrichtigungsmechanismus, der eine Änderung des Properties anzeigt besitzen eine Defaultwert bieten eine Vererbung über den Visual Tree Verfügen über eine integrierte Validierung und sind die Grundlage für Data Binding

35 Wir erstellen eine MVVM Applikation Bindung an einfache.net Properties Data Binding ermöglicht es, eine Dependency Property an den Wert einer anderen Property zu binden Bei der Bindung an.net Properties muss dieses über einen Benachrichtigungsmechanismus verfügen, der Data Binding Änderungen anzeigt und die Daten entsprechend synchronisiert werden. erreicht man dies durch Implementierung des Interface public interface INotifyPropertyChanged event PropertyChangedEventHandler PropertyChanged;

36 Wir erstellen eine MVVM Applikation Implementierung des interface INotifyPropertyChanged Erstellen der Basisklasse ViewModelBase public class ViewModelBase : INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertChanged(string propertyname) if (PropertyChanged!= null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));

37 Wir erstellen eine MVVM Applikation Benachrichtigung mittels NotifyPropertyChanged Änderungsbenachrichtigung einer Property mittels NotifyPropertyChanged public string MyProperty get return this.mypropertyvalue; set if (value!= this.mypropertyvalue) this.mypropertyvalue = value; OnPropertyChanged( MyProperty );

38 Wir erstellen eine MVVM Applikation Implementierung des interface INotifyPropertyChanged WPF enthält generische Collection-Klasse mit dem Namen ObservableCollection<T>, die die beiden Interfaces INotifyPropertyChanged und INotifyCollectionChanged implementiert. Änderung des Models PersonCollection using System.Collections.ObjectModel; public class PersonCollection : ObservableCollection<Person>

39 Wir erstellen eine MVVM Applikation Binden der View an ObservableCollection <Window x:class="mvvmdemo2.mainwindow"... xmlns:vm="clr-namespace:mvvmdemo.viewmodel" <Window.Resources> <vm:mainviewmodel x:key="mainviewmodel"/> </Window.Resources> <Grid DataContext="StaticResource mainviewmodel"... >... <TextBox Text="Binding Persons/FirstName"... />... </Grid> </Window>

40 Wir erstellen eine MVVM Applikation Die CollectionViews der WPF Klasse CollectionView implementiert Interface ICollectionView: public interface ICollectionView: IEnumerable, INotifyCollectionChanged bool MoveCurrentToFirst(); bool MoveCurrentToNext(); bool MoveCurrentToPrevious(); Object CurrentItem get; int CurrentPosition( get; bool MoveCurrentToPosition(int pos);... stellt auch den Zeiger und Index auf das aktuell selektierte Objekt einer Collection bereit.

41 Wir erstellen eine MVVM Applikation Verwendung der CollectionView im MainViewModel public class MainViewModel : ViewModelBase private ICollectionView _personcollview; public MainViewModel()... LoadData(); _personcollview = CollectionViewSource.GetDefaultView(Persons); _personcollview.movecurrenttofirst();...

42 Wir erstellen eine MVVM Applikation Verwendung der CollectionView im MainViewModel public MainViewModel()... NextCommand = new ActionCommand(OnNextExecuted, OnNextCanExecute); PreviousCommand = new ActionCommand(OnPreviousExecuted, OnPreviousCanExecute); void OnNextExecuted(object parameter) _personcollview.movecurrenttonext(); bool OnNextCanExecute(object parameter)... return _personcollview.currentposition < Persons.Count - 1;

43 Wir testen unsere MVVM Applikation Nun sollte unsere Applikation funktionieren Testen Sie die Applikation setzen Sie Breakpoints versuchen Sie die Funktionsweise zu erklären Erweitern Sie Ihre Applikation mit beliebigen Features!

44 Wir erweitern die MVVM Applikation

45 Wir erweitern die MVVM Applikation Bindung von DependencyProperty an.net Properties Wenn die CollectionView eine Änderung meldet Wir benutzen die OnPropertyChanged der ViewModelBase

46 MVVM Implementierungs-Beispiele Artikel + Code Smith, Josh : WPF-Anwendungen mit dem Model-View-ViewModel- Entwurfsmuster Code: Huber, T.C. : Schöne Aussichten - Das Model-View-ViewModel-Pattern für WPF-Anwendungen, DotNet-Magazin, Ausgabe 10/ odelarticle.pdf Code: _ModelViewViewModelArticle_Code.zip

Model-View-ViewModel (MVVM)

Model-View-ViewModel (MVVM) 1 Model-View-ViewModel (MVVM) Grundlagen und Einsatz des GUI-Architekturmusters W3L AG info@w3l.de 2011 2 Agenda Motivation Architekturmuster MVVM-Pattern Fazit Aufbau & Komponenten Technische Grundlagen

Mehr

GUI-Entwicklung 2: Windows Presentation Foundation

GUI-Entwicklung 2: Windows Presentation Foundation GUI-Entwicklung 2: Windows Presentation Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Sandra Müller Institut für Informatik Software & Systems Engineering Agenda 1. Die WPF 2. Einführung

Mehr

CROSS PLATFORM DEVELOPMENT MIT PORTABLE CLASS LIBRARIES

CROSS PLATFORM DEVELOPMENT MIT PORTABLE CLASS LIBRARIES Entwicklung Autor: Sebastian Kugler CROSS PLATFORM DEVELOPMENT MIT PORTABLE CLASS LIBRARIES ZUSAMMENFASSUNG TREND APPLIKATIONEN AUF MEHRERE PLATT FORMEN ZU VERFÜGUNG ZU STELLEN CODE REUSABILTY PORTABLE

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

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

MVVM in Windows 8 und Windows Phone 8

MVVM in Windows 8 und Windows Phone 8 Basel MVVM in Windows 8 und Windows Phone 8 Thomas Claudius Huber Trivadis AG Thomas Claudius Huber Principal Consultat bei Trivadis www.trivadis.com www.thomasclaudiushuber.com Trainer, Coach, Developer,

Mehr

Universal-Apps. Gordon Breuer Senior IT Consultant Software Engineer / Architect msg systems ag. activevb Workshop 2014 30.

Universal-Apps. Gordon Breuer Senior IT Consultant Software Engineer / Architect msg systems ag. activevb Workshop 2014 30. Universal-Apps activevb Workshop 2014 30. August 2014 Auszug aus dem Buch: Windows Phone 8.1 Kochbuch Erscheinungsdatum: Q4/2014 Autoren: Matthias Fischer, Gordon Breuer Gordon Breuer Senior IT Consultant

Mehr

Klausur GUI-Entwicklung WS10/11 1.Termin

Klausur GUI-Entwicklung WS10/11 1.Termin Klausur GUI-Entwicklung WS10/11 1.Termin Aufgabe 1) (8 Punkte) Sie sehen die folgenden Angaben im Projektmappen-Explorer von Visual Studio 2010: a) Erläutern Sie die Bestandteile dieses WPF-Projekts! (5

Mehr

WPF - Windows Presentation Foundation

WPF - Windows Presentation Foundation Arthur Zaczek Nov 2014 1 WPF 1.1 WPF Windows Presentation Foundation, seit.net 3.0 Introduction to WPF: http://msdn.microsoft.com/en-us/library/aa970268(v=vs.110).aspx Windows Presentation Foundation:

Mehr

Matthias Fischer dotnetautor.de. Windows 8: Tablet, Telefon & Co.

Matthias Fischer dotnetautor.de. Windows 8: Tablet, Telefon & Co. Matthias Fischer dotnetautor.de Windows 8: Tablet, Telefon & Co. Referentenvorstellung Consultant und Trainer.NET-Entwicklung seit 2001 ASP.NET, WCF, MVC4, SQL Server 2012 WPF, MVVM, Windows Phone 8, Windows

Mehr

Matthias Fischer dotnetautor.de. Windows-Phone und Windows-8-Apps: Shared Code mit C# und XAML

Matthias Fischer  dotnetautor.de. Windows-Phone und Windows-8-Apps: Shared Code mit C# und XAML Matthias Fischer www.it-visions.de dotnetautor.de Windows-Phone und Windows-8-Apps: Shared Code mit C# und XAML Referentenvorstellung Consultant und Trainer.NET-Entwicklung seit 2001 ASP.NET, WCF, MVC4,

Mehr

WPF Bindung. Dr. Beatrice Amrhein

WPF Bindung. Dr. Beatrice Amrhein WPF Bindung Element- und Daten-Bindung Dr. Beatrice Amrhein Überblick Element-Bindung via Eigenschaften-Editor Grenzen des Eigenschaften Editors Die C# Klasse Binding Bindung an C# Objekte 2 Einführung

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

XAML Extensible Application Markup Language. Manuel Naujoks (IB3)

XAML Extensible Application Markup Language. Manuel Naujoks (IB3) Extensible Application Markup Language Manuel Naujoks (IB3) Einführung Beschreibungssprachen Vorteile Nachteile Agenda technisch Aufbau Kompilierung Verarbeitung zur Laufzeit Routed Events Zusammenfassung

Mehr

Komponenten & Frameworks Seite 1

Komponenten & Frameworks Seite 1 Ausgangssituation Wir wollen eine einfache Windowsanwendung mit einem Fenster erstellen. Dieses Fenster enthält (Container!) einen Button der beim klicken das Schreiben in ein Textfeld bewirkt. Was ist

Mehr

Norbert. Eder. Windows Presentation Foundation 4. Einführung und Praxis. inklusive CD-ROM

Norbert. Eder. Windows Presentation Foundation 4. Einführung und Praxis. inklusive CD-ROM Norbert Eder Windows Presentation Foundation 4 Einführung und Praxis inklusive CD-ROM 5936.book Seite 5 Mittwoch, 10. November 2010 5:50 17 Vorwort................................................... 11

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

VON MVC ZU MODEL-VIEW-VIEWMODEL

VON MVC ZU MODEL-VIEW-VIEWMODEL VON MVC ZU MODEL-VIEW-VIEWMODEL Wissenschaftliche Vertiefung von Lukas Jaeckle Studiengang Softwaretechnik und Medieninformatik Folie 1 von 18 Agenda 1. Architekturmuster 2. Architekturmuster für interaktive

Mehr

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

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

Mehr

Prism. Martin Hey Unique Software e.k.

Prism. Martin Hey Unique Software e.k. Prism Martin Hey Unique Software e.k. Einleitung Überblick Framework zur Modularisierung von Anwendungen Trennung von Aufgaben und Zuständigkeiten für WPF, Silverlight und Windows Phone 7 verwendet dazu

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

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

Mehr

Neue Features in C# 2.0

Neue Features in C# 2.0 Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published

Mehr

Textbausteine. C# WPF-Framework Model-View-Viewmodel-Architektur Blog-Client-Applikation

Textbausteine. C# WPF-Framework Model-View-Viewmodel-Architektur Blog-Client-Applikation Entwicklung einer C-Sharp- Applikation auf Basis des WPF- Frameworks und der Model-View- Viewmodel-Architektur am Beispiel einer Blog-Client-Applikation Von Mirko Jungblut Textbausteine C# WPF-Framework

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

NotesSession.GetPropertyBroker( )

NotesSession.GetPropertyBroker( ) Bestandteile von CA Laufen im Rich Client (Notes oder Expeditor) oder via Portal Server im Browser NSF-Komponenten sind Notes-Designelemente Eclipse Komponenten sind Eclipse ViewParts lokale oder Websphere

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics

Mehr

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag Refactoring von Legacy Systemen Jochen Winzen jochen.winzen@andrena.de andrena objects ag Was ist ein Legacy System Ein Legacy System hat folgenden Eigenschaften: + Besitzt die geforderte Funktionalität

Mehr

Interface. So werden Interfaces gemacht

Interface. So werden Interfaces gemacht Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

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

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Info B VL 11: Innere Klassen/Collections

Info B VL 11: Innere Klassen/Collections Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections

Mehr

Objektorientierung. Marc Satkowski 20. November C# Kurs

Objektorientierung. Marc Satkowski 20. November C# Kurs Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Thomas Claudius Huber Trivadis AG. Silverlight 4.0 vier gewinnt?

Thomas Claudius Huber Trivadis AG. Silverlight 4.0 vier gewinnt? Thomas Claudius Huber Trivadis AG Silverlight 4.0 vier gewinnt? Über Thomas Claudius Huber.NET Senior Consultant Trivadis AG Basel Fokus:.NET, WPF, Silverlight, SqlServer, Oracle Autor der umfassenden

Mehr

Wichtige Prinzipien von C#

Wichtige Prinzipien von C# Wichtige Prinzipien von C# Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Dokumentationskommentare 2. Gültigkeit (Scope) 3. namespace & using 4. Methodenüberladung 5. Wert- & Referenztyp 6. null

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

WPF und Silverlight Architektur

WPF und Silverlight Architektur Stefan Lange empira Software GmbH WPF und Silverlight Architektur Tipps zur Struktur von Anwendungen Stefan.Lange@empira.de 25.02.2010 Agenda Schichtenmodell Silverlight und WPF Code Sharing Typische Architektur

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Control Templates. Thomas Claudius Huber

Control Templates. Thomas Claudius Huber Control Templates Thomas Claudius Huber thomas.huber@trivadis.com www.thomasclaudiushuber.com Thomas Claudius Huber.NET Senior Consultant @Trivadis Basel Spezialisiert auf Silverlight und WPF Autor der

Mehr

Multimedia im Netz Wintersemester 2012/13

Multimedia im Netz Wintersemester 2012/13 Multimedia im Netz Wintersemester 2012/13 Übung 10 Ludwig-Maximilians-Universität München Multimedia im Netz WS 2012/13 - Übung 10-1 Lösung zu Übungsblatt 08 Ludwig-Maximilians-Universität München Multimedia

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr

Cross-Platform Mobile mit.net

Cross-Platform Mobile mit.net Cross-Platform Mobile mit.net Mobile Entwicklungslandschaft Nativ Crosscompiled Hybrid Web Beste Usability? Überschaubare Kosten? Was ist Xamarin? Was ist Xamarin? 2011 Gegründet aus dem Ximian, Novell

Mehr

Skalierbare Enterprise Architekturen für Universal Windows Platform Apps

Skalierbare Enterprise Architekturen für Universal Windows Platform Apps Agenda Ziele Portable Class Libraries Projektaufbau MVVM Databinding #1 MVVM Light Inversion of Control & Dependency Injection Repository Pattern Databinding #2 Skalierbare Enterprise Architekturen für

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

Windows Presentation Foundation

Windows Presentation Foundation Folie 1 Windows Presentation Foundation Workshop Teil 2 Pawel Kazakow Bjoern Hass pawel.kazakow@studentprogram.de bjoern.hass@studentprogram.de Folie 2 Windows Presentation Foundation Besprechung der Praxisaufgabe

Mehr

Windows Presentation Foundation

Windows Presentation Foundation Windows Presentation Foundation WS 2013/14 Gliederung Literatur Einführung Inhalt Architektur von Windows Presentation Foundation und das Programmiermodell XAML Steuerelemente und Layout Ressourcen Data

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

MVVM (Model View ViewModel) in JavaFX

MVVM (Model View ViewModel) in JavaFX MVVM (Model View ViewModel) in JavaFX SEP Sommersemester 2019 Nicolas Brauner 30.04.2019 DBS Wissenschaftlicher Betreuer: Maximilian Hünemörder, Ludwig Zellner Verantwortlicher Professor: Prof. Dr. Peer

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

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

Programmiermethodik 3. Klausur Lösung

Programmiermethodik 3. Klausur Lösung Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C

Mehr

II.4.5 Generische Datentypen - 1 -

II.4.5 Generische Datentypen - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

Klasse Label. class Label { Code code; List<Integer> fixuplist; // code positions to patch int adr; // address of label in code

Klasse Label. class Label { Code code; List<Integer> fixuplist; // code positions to patch int adr; // address of label in code Klasse Label class Label { Code code; List fixuplist; // code positions to patch int adr; // address of label in code // inserts offset to label at current void put (); // defines label to be

Mehr

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im

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

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

WPF Events. Ereignisse und Ereignisbehandlung. Dr. Beatrice Amrhein

WPF Events. Ereignisse und Ereignisbehandlung. Dr. Beatrice Amrhein WPF Events Ereignisse und Ereignisbehandlung Dr. Beatrice Amrhein Überblick Einführung Die wichtigsten Ereignisse Der C# Code Behind Die Verbindung von WPF und C# Code Einige Beispiele 2 Einführung 3 Einführung

Mehr

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12. Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis

Mehr

Objekt-orientierte Programmierung

Objekt-orientierte Programmierung Objekt-orientierte Programmierung Eine (sehr) kurze Einführung Daniel Lübke Gliederung Motivation Grundlagen (Objekte, Klassen, Vererbung) Interfaces Klassenvariablen

Mehr

Programmieren für Wirtschaftswissenschaftler SS 2015

Programmieren für Wirtschaftswissenschaftler SS 2015 DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 7. Graphische Oberflächen Ein

Mehr

Polymorphismus 44. Function.hpp. #include <string>

Polymorphismus 44. Function.hpp. #include <string> Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class

Mehr

Dokumentation: Content App Framework

Dokumentation: Content App Framework Dokumentation: Content App Framework Andreas Breuninger, medialesson GmbH Januar 2013 Inhaltsverzeichnis 1. DataService... 3 1.1. Laden/Parsen der Daten... 3 1.1.1. GetDataset() -> GetDataAsync() ->

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

1 Einleitung Generizität Syntax... 2

1 Einleitung Generizität Syntax... 2 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................

Mehr

Zusammenfassung: Programmieren 2 (C#)

Zusammenfassung: Programmieren 2 (C#) Zusammenfassung: Programmieren 2 (C#) Arrays Eindimensional int[] feld; feld = new int[2]; int[] feld2 = new int[3]; int[] feld3 = new int[] 1, 2, 3 ; //oder int[] feld4 = 1, 2, 3 ; int laenge = feld3.length;

Mehr

7.0 Arbeiten mit Objekten und Klassen

7.0 Arbeiten mit Objekten und Klassen 252-0027 Einführung in die Programmierung I 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved.

Mehr

Windows Phone 7.5. Grundlagen und fortgeschrittene Programmierung. von Ralf Ehlert, Gregor Woiwode. 1. Auflage

Windows Phone 7.5. Grundlagen und fortgeschrittene Programmierung. von Ralf Ehlert, Gregor Woiwode. 1. Auflage Windows Phone 7.5 Grundlagen und fortgeschrittene Programmierung von Ralf Ehlert, Gregor Woiwode 1. Auflage Windows Phone 7.5 Ehlert / Woiwode schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Mehr

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring? oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische

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

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139 Aufgabe 139 Aufgabe 139 Aufgabenstellung Stellen Sie den folgenden in Feldbaum-Darstellung beschriebenen Binärbaum a) graphisch (welcher Knoten ist die Wurzel?), b) in halbsequentieller Darstellung, c)

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

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

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Line-of-Business-Apps mit der Universal Windows Platform entwickeln. Thomas Claudius

Line-of-Business-Apps mit der Universal Windows Platform entwickeln. Thomas Claudius Line-of-Business-Apps mit der Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Thomas Claudius Huber Principal Consultant bei Trivadis Pluralsight-Autor, Buchautor C#, XAML,

Mehr