Programowanie obiektowe

Transkrypt

Programowanie obiektowe
Michał Włodarczyk
Programowanie obiektowe
ITA - 105
Wersja 2
Data wydania: wrzesień 2009
Michał Włodarczyk
ITA-105 Programowanie obiektowe
Opis kursu
Kurs przeznaczony jest do prowadzenia przedmiotu programowanie
obiektowe na uczelniach wyższych. Skupia się na nauce programowania
obiektowego w języku C# w środowisku programistycznym Visual Studio
2008. Kurs prowadzi przez możliwości programowania zorientowanego
obiektowo spotykane w wielu językach.
Kurs składa się z 13 modułów. Każdy moduł zawiera wprowadzenie w
tematykę wraz z odpowiednimi przykładami, ułatwiającymi zrozumienie
omawianych zagadnieo, podsumowanie i pytania sprawdzające zdobytą
wiedzę. Moduły zawierają również zadania laboratoryjne przeznaczone do
wykonania przez studentów w pozostałym czasie zajęd lub w wolnym czasie
w celu utrwalenia zdobytych umiejętności.
Cel kursu
Po zrealizowaniu kursu – przyswojeniu prezentowanej wiedzy oraz
utrwaleniu umiejętności przez wykonanie dwiczeo laboratoryjnych, student
będzie potrafił tworzyd programy według paradygmatu programowania
zorientowanego obiektowo. Słuchacze będą znali pojęcia związane z
programowaniem obiektowym, nauczą się tworzyd kod w języku C#
realizujący mechanizmy programowania obiektowego, będą też w stanie
rozwiązywad problemy za pomocą tych mechanizmów.
Uczestnicy kursu zostaną również przygotowani do kursów z metodologii,
projektowania i inżynierii oprogramowania, dzięki wprowadzeniu
elementów notacji UML oraz wzorców projektowych.
Wymagania wstępne
Wymagania wstępne, które muszą spełniad słuchacze tego kursu, obejmują:
 wskazana znajomośd języka programowania o składni podobnej do
C#, jak na przykład C/C++, Pascal, Java, Perl,
 umiejętnośd programowania strukturalnego w dowolnym języku,
 umiejętnośd pracy w środowisku programistycznym Visual Studio
Opis modułów
Numer modułu
Tytuł
Moduł 1
Pojęcie klasy
Moduł 2
Konstruktor
Opis
W tym module zapoznasz się z podstawowymi pojęciami z
programowania obiektowego, takie jak klasa, obiekt,
abstrakcja czy hermetyzacja. Dowiesz się, jak w języku C#
definiujemy klasę, również jak definiuje się klasy
częściowe. Nauczysz się również sterowad dostępem do
części składowych klasy przy pomocy słów public i private.
Poznasz znaczenie słowa this.
W tym module zapoznasz się z pojęciem konstruktora oraz
nauczysz się, jak definiowad go w języku C#. Omówiona
zostanie również lista inicjalizacyjna konstruktora.
Poznasz, co to są inicjalizatory obiektów i jak ich używad.
Strona 3/6
Michał Włodarczyk
ITA-105 Programowanie obiektowe
Dowiesz się również co to jest destruktor. Zostanie
również wprowadzone pojęcie wzorców projektowych i
przedstawiony wzorzec projektowy o nazwie prototyp.
Moduł 3
Właściwości i
indeksatory
Moduł 4
Składowe
statyczne
Moduł 5
Przeciążenie
operatorów
Moduł 6
Dziedziczenie
Moduł 8
Polimorfizm i
funkcje
wirtualne
Moduł 9
Klasy
abstrakcyjne i
interfejsy
W tym module zapoznasz się z pojęciami właściwości i
indeksatora oraz nauczysz się nimi posługiwad w języku
C#. Poznasz też co to są właściwości automatyczne.
Dodatkowo nauczysz się, co to są pola tylko do odczytu i
jak je definiowad. Zostanie tu również przedstawiony
wzorzec projektowy o nazwie proxy i jak przy jego pomocy
uniezależnid definicję klasy od biblioteki wejścia-wyjścia.
W tym module zapoznasz się z pojęciem składowych
statycznych. Dowiesz się do czego służą i jak się korzysta w
języku C# z pól i metod statycznych. Nauczysz się co to jest
konstruktor statyczny oraz po co go się definiuje. Dowiesz
się również co to są klasy statyczne oraz co to są metody
rozszerzające i jak je implementujemy. Zostanie tu
również przedstawiony wzorzec projektowy o nazwie
Singleton.
W tym module zapoznasz się z pojęciami przeciążenia
operatorów. Dowiesz się, które operatory można
przeciążyd w języku C#. Nauczysz się jak definiowad
metody, które będą implementowały żądany operator.
Poznasz szczegóły dotyczące implementacji
poszczególnych operatorów. Dowiesz się jak można
zdefiniowad w języku C# metody, które będą zamieniad
obiekt jednego typu na obiekt innego typu.
W tym module zapoznasz się z jednym z podstawowych
pojęd programowania obiektowego, a mianowicie
dziedziczeniem. Nauczysz się jak dziedziczenie można
wykorzystad w języku C#. Poznasz też pozostałe
modyfikatory dostępu (protected, internal, internal
protected). Dowiesz się również, jak inicjalizowad obiekty
klas pochodnych oraz jak przesłonid metodę klasy
bazowej.
W tym module zapoznasz się z kolejnym z głównych pojęd
programowania obiektowego, a mianowicie
polimorfizmem. Nauczysz się jak definiowad metody
wirtualnych. Dowiesz się jakie metody typu object można
nadpisad i jak to zrobid. Poznasz kolejne wzorce
projektowe o nazwie metoda fabrykująca i adapter.
W tym module zapoznasz się z pojęciem klas i metod
abstrakcyjnych oraz uzyskasz informacje jak je
implementowad w języku C#. Dowiesz się również co to
jest interfejs i do czego służy. Poznasz również pojęcie klas
i metod zamkniętych. Zobaczysz również, jak można w
Strona 4/6
Michał Włodarczyk
ITA-105 Programowanie obiektowe
języku C# sprawdzid, czy zmienna klasy bazowej, zawiera
referencję do obiektu, którego typ jest żądaną klasę
pochodną. Poznasz również wzorzec projektowy fabryka
abstrakcyjna.
Moduł 10
Metody i typy
generyczne
Moduł 11
Implementacja
przykładowych
interfejsów
Moduł 12
Delegacje i
zdarzenia
Moduł 13
Refleksja i
atrybuty
Moduł 14
Serializacja
W tym module zapoznasz się z pojęciem metod i typów
generycznych. Dowiesz się do czego służą i jak można je
definiowad w języku C#. Zobaczysz jakie ograniczenia
można stosowad do typów parametryzujących metodę lub
typ ogólny jak również po co stosowad te ograniczenia.
Poznasz równie kilka typów generycznych
reprezentujących podstawowe struktury danych.
W tym module zapoznasz się z podstawowymi
interfejsami z których można skorzystad tworząc programy
na platformę .Net.: IDisposable, IEnumerable,
IEnumerator, IComparable i IComparer. Nauczysz się
również jak można je zaimplementowad we własnych
klasach. Dowiesz się również do czego służy blok instrukcji
using. Poznasz składnię iteratorów przy pomocy których w
łatwy sposób można zaimplementowad wzorzec
projektowy iterator.
W tym module zapoznasz się z pojęciami delegacji i
zdarzenia. Dowiesz się co to jest delegacja i jak je można
definiowad, zarówno w standardowy sposób jak i przy
pomocy metod anonimowych i wyrażeo lambda. Nauczysz
się również definiowad własne zdarzenia. Poznasz również
wzorzec projektowy Obserwtor.
W tym module zapoznasz się z pojęciem refleksji, czyli
mechanizmie uzyskania informacji o typie w czasie
działania programu. Poznasz jak z mechanizmu refleksji
można skorzystad w języku C#. Dowiesz się też jak dodad
dodatkowe informacje (metadane) do programu przy
pomocy atrybutów. Nauczysz się też definiowad własne
atrybuty (klasy reprezentujące atrybuty) i je stosowad.
W tym module zapoznasz się z pojęciem serializacji.
Poznasz rodzaje serializacji wspieranych przez .Net
Framework oraz nauczysz się jak tworzyd klasy
serializowalne i ich używad. Zobaczysz również jak można
dostosowad proces serializacji, aby spełniał Twoje
oczekiwania. W module opisana jest serializacja binarna
oraz serializacja XML.
Strona 5/6