Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie Obiektowe – Wykład 2

Podobne prezentacje


Prezentacja na temat: "Programowanie Obiektowe – Wykład 2"— Zapis prezentacji:

1 Programowanie Obiektowe – Wykład 2
dr Piotr Jastrzębski Wydział Matematyki i Informatyki

2 Powtórka: klasa vs obiekt
„szablon”/ „foremka” abstrakcyjny twór przechowuje cechy, a nie wartości Obiekt konkretny egzemplarz danej klasy przechowuje konkretne wartości

3 Założenia/filary programowania obiektowego:
Abstrakcja Hermetyzacja Dziedziczenie Polimorfizm

4 Abstrakcja - polega na ukrywaniu lub pomijaniu mało istotnych informacji a skupieniu się na wydobyciu informacji, które są niezmienne i wspólne dla pewnej grupy obiektów. Klasa

5 Hermetyzacja lub inaczej mówiąc enkapsulacja polega na ukrywaniu nieistotnych informacji na temat obiektu w celu zminimalizowania efektów jego modyfikacji oraz na oddzieleniu tego co zawiera i co może zrobić obiekt od tego jak jest zbudowany i jak to robi. Modyfikatory dostępu

6 Dziedziczenie pozwala rozszerzać możliwości klas poprzez implementacje osobnych klas rozszerzających. Dzięki dziedziczeniu możemy tworzyć nowe klasy w oparciu o już istniejące, bez potrzeby implementowania tych funkcjonalności, które zostały już zaimplementowane w klasach bazowych.

7 Polimorfizm pozwala traktować różnorodne dane w ten sam sposób, w zależności od kontekstu. W trakcie wykonywania programu automatycznie są znajdowane i interpretowane odpowiednie metody w zależności od tego jak chcemy traktować nasze dane.

8 Pierwsza klasa - Dom public class Dom { public int powierzchnia;
public bool garaz; public int iloscPokoi; public bool ogrod; public int iloscPieter; public int PodajCene() { return powierzchnia*3000; } }

9 Definicja klasy: modyfikator_dostępu class NazwaKlasy { deklaracje pól i metod }

10 Modyfikatory dostępu Umożliwiają określenie dostępu do danego elementu z zewnątrz klasy. Rodzaje: publiczne (public), chronione (protected), wewnętrzne (internal), wewnętrzne chronione (protected internal), prywatne (private).

11 Modyfikatory dostępu:
public - elementy publiczne, dostępnymi na zewnętrz klasy, private – elementy prywatne, a dostęp do nich z poza klasy, będzie niemożliwy, internal - nie będą udostępniane na zewnątrz podzespołu, protected – elementy traktowane jako chronione, będą dostępne dla danej klasy oraz na potrzeby klas dziedziczonych, nie będą natomiast widoczne na zewnątrz klasy

12 Pola Zmienne przechowywane w danej klasie. Deklaracja:
modyfikator typ_danych nazwaPola; np. public int powierzchnia;

13 Pole a zmienna W przeciwieństwie do zmiennych pole, jeżeli nie zostanie zainicjowane, po utworzeniu obiektu danej klasy automatycznie przyjmie swoją wartość domyślną, odpowiednio: dla typów liczbowych będzie to 0, dla łańcucha pusty ciąg oznaczany jako "" dla typu boolean wartość false; a dla typów referencyjnych null.

14 Możliwe modyfikatory public private internal protected
readonly – tylko do odczytu, wartość do pola oznaczonego jako readonly możemy przypisać w chwili deklaracji takiego pola lub w konstruktorze klasy. static - takie pole jest częścią stanu klasy.

15 Metody definiują zachowanie, umożliwiając im wykonywanie konkretnych zadań, nie można ich definiować poza ciałem klasy. Deklaracja: modyfikator typ zwracany przez metodę nazwa metody (NazwaMetody()) lista typów i nazw parametrów metody

16 Modyfikatory metod (poza standardowymi):
virtual override new sealed abstract static - może być wywoływana bez konieczności tworzenia obiektu extern – implementacja zewn.

17 Przykłady public int PodajCene() { return powierzchnia*3000; }
public int PoliczSume(int liczba1, int liczba2) { return liczba1 + liczba2; }

18 Przykłady public void WyswietlImie() { Console.WriteLine(imie); } void – metoda nie zwraca żadnej wartości, typ pusty

19 Przeciążanie metod Przeciążone metody to takie, które:
mają taki sam typ zwracany, mają identyczną nazwę, różnią się tylko ilością lub typami przekazywanych parametrów.

20 Przykład static string OpiszTyp() { return "Metoda bez argumentów"; } static string OpiszTyp(int x) return "Liczba całkowita"; static string OpiszTyp(string x) return "Łańcuch znaków"; static string OpiszTyp(double x, int y) return "Liczba double i liczba całkowita";

21 Tworzenie obiektów - operator new
Deklaracja typ nazwaObiektu = new NazwaKlasy() Przykład: Dom domBasi = new Dom();

22 Odwołanie się do pól klasy
nazwaObiektu.nazwaPola Przykład: domBasi.powierzchnia = 200; domBasi.garaz = true; domBasi.iloscPokoi = 7; domBasi.ogrod = false; domBasi.iloscPieter = 1;

23 Operator new/Konstruktor
Operator new automatycznie wywołuje konstruktor. Konstruktor metoda wykonywana zaraz przy tworzeniu instancji obiektu, zawiera modyfikatory dostępu i parametry, nazwa pokrywa się z nazwą klasy.

24 Przykłady Konstruktor domyślny public Dom() { }
Konstruktor domyślny z wartościami public dom() powierzchnia = 150;

25 Przykłady Konstruktor z parametrami public Dom(int powierzchnia) { this.powierzchnia = powierzchnia; } Deklaracja obiektu z parametrem Dom domBasi = new Dom(250);

26 Po co przydają się konstruktory?
Nie trzeba wywoływać dodatkowych metodą, inicjują stan klasy na początku. Lepsza czytelność i zwięzłość kodu.

27 Niszczenie obiektów Język C# automatycznie odzyskuje pamięć (nie trzeba jawnie usuwać obiektów). Czasem jednak chcemy samodzielnie zarządzać zasobami pamięci – w tym celu mamy destruktor. Deklaracja: ~NazwaKlasy { instrukcja do wykonania przy niszczeniu; }

28 Przykład ~Car() { Console.WriteLine(„Jestem niszczony”); }


Pobierz ppt "Programowanie Obiektowe – Wykład 2"

Podobne prezentacje


Reklamy Google