Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

C# cz.3 Obiektowość w C# Krzysztof Fediuk krzysiek.fediuk@gmail.com.

Podobne prezentacje


Prezentacja na temat: "C# cz.3 Obiektowość w C# Krzysztof Fediuk krzysiek.fediuk@gmail.com."— Zapis prezentacji:

1 C# cz.3 Obiektowość w C# Krzysztof Fediuk

2 Agenda Szybkie przypomnienie Co to jest dziedziczenie?
Dlaczego dziedziczenie jest fajne Przykłady Polimorfizm RTTI

3 Szybkie przypomnienie
Jakie mamy encje? Co to znaczy, że metoda jest statyczna? Jak zadeklarować property? Czy metoda Console.Write() przechodzi do nowej linii? Z ilu interfejsów możemy dziedziczyć?

4 Co jest lepsze? hPrinter = GetPrinter(); hPrinter.PrintText(hPrinter,”Hello World!”); Który kod jest lepszy? Co widać? Drukowanie czy drukarkę? hPrinter = GetPrinter(); PrintText(hPrinter, "Hello world!");

5 Obiektowość Samochód Koło Drzwi Silnik Motocykl class Motocykl
{ Kolo kola [2]; Silnik silnik; } Motocykl[10] listaStartowaM; Samochod[10] listaStartowa; Kolo[40] listaStartowa_kola; Silnik[10] listaStartowa_silnik; Drzwi[20] listaStartowa_drzwi; Kolo[20] listaStartowaM_kola; Silnik[10] listaStartowaM_silnik; class Samochod { Kolo kola [4]; Silnik silnik; Drzwi drzwi[2]; } Samochod[10] listaStartowa; Kolo[40] listaStartowa_kola; Silnik[10] listaStartowa_silnik; Drzwi[20] listaStartowa_drzwi; Samochód Koło Drzwi Silnik Motocykl Enkapsulacja Więcej elementów do kontroli Drobne różnice nie wychwycalne

6 Co to jest dziedziczenie?
Źródło: „Od zera do gier kodera”,

7 Dziedziczenie w C# Dziedziczenie (ang. inheritance) to tworzenie nowej klasy na podstawie jednej lub kilku istniejących wcześniej klas bazowych  Źródło: „Od zera do gier kodera”,

8 Abstrakcja (3rok TOiK) Umiejętność pomijania niepotrzebnych elementów i ustalania odpowiedniego poziomu szczegółowości

9 Dlaczego dziedziczenie jest fajne?
Enkapsulacja danych i zachowania Ponowne użycie kodu Ułatwia abstrahowanie 7 ± 2

10 ZOO class Animal // Zwierzę { float m_fMasa; int m_uWiek; public Animal() { m_uWiek = 0; } void Patrz(); void Oddychaj(); float Masa{ get { return m_fMasa; } set { m_fMasa = value; } } int Wiek{ get { return m_uWiek; } } };

11 ZOO class Fish : Animal // Ryba { void Plyn(); }; class Mammal : Animal // Ssak void Biegnij(); class Bird : Animal // Ptak void Lec();

12 ZOO class HomeDog : Mammal // Pies domowy { RACE m_Rasa; COLOR m_KolorSiersci; // metody void Aportuj(); void Szczekaj(); // propertisy RACE Rasa { get {return m_Rasa; } } COLOR KolorSiersci { get {return m_KolorSiersci; } } };

13 Szachy // klasa bazowa class ChessPiece { /* definicja */ }; // Figura szachowa // klasy pochodne class Pawn : ChessPiece { /* ... */ }; // Pionek class Knight : ChessPiece { /* ... */ }; // Skoczek class Bishop : ChessPiece { /* ... */ }; // Goniec class Rook : ChessPiece { /* ... */ }; // Wieża class Queen : ChessPiece { /* ... */ }; // Hetman class King : ChessPiece { /* ... */ }; // Król

14 Polimorfizm Kwintesencja dziedziczenia Operowanie na typie bazowym
A de facto na typie rzeczywistym

15 Polimorfizm class Fish : Animal { void Oddychaj() // redefinicja metody wirtualnej { Console.WriteLine("Oddycham skrzelami...„); } void Plyn(); }; class Mammal : Animal void Oddychaj() // redefinicja metody wirtualnej { Console.WriteLine("Oddycham płucami...„); } void Biegnij();

16 Polimorfizm public class Document { public String Author { get; set; } public String Title { get; set; } public DateTime Date{ get; set; } } public class Program public static void ShowDocument(Document doc) Console.WriteLine("Author:" + doc.Author); Console.WriteLine("Title:" + doc.Title); Console.WriteLine("Date:" + doc.Date); Dodać klasy Online document i Book Wypisać zawartośc

17 RTTI RunTime Type Info Podstawa refleksji i meta-programowania
Klasa Type


Pobierz ppt "C# cz.3 Obiektowość w C# Krzysztof Fediuk krzysiek.fediuk@gmail.com."

Podobne prezentacje


Reklamy Google