Programowanie Obiektowe – Wykład 2

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

C++ wykład 4 ( ) Przeciążanie operatorów.
Język C/C++ Funkcje.
Programowanie obiektowe
Klasy abstrakcyjne i interfejsy
Deklaracje i definicje klas w C++ Składowe, pola, metody Konstruktory
Programowanie obiektowe
Programowanie obiektowe
Klasy i obiekty.
Wzorce.
Prowadzący: mgr inż. Elżbieta Majka
Static, const, volatile.
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Programowanie w środowisku sieciowym
formatowanie kodu źródłowego
Programowanie Obiektowe w Javie (c.d.)
Programowanie obiektowe w Javie
OOP - programowanie zorientowane obiektowo w VB.NET
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Struktury.
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Dziedziczenie i jego rodzaje
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Języki programowania obiektowego
Wstęp do programowania obiektowego
Podstawy programowania II
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Programowanie strukturalne i obiektowe
Programowanie obiektowe w C++
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Programowanie obiektowe III rok EiT
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
WPROWADZENIE W ŚWIAT OBIEKTÓW
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Warsztaty C# Część 6 Grzegorz Piotrowski Grupa .NET PO
Programowanie obiektowe 2013/2014
Prasek Aneta, Skiba Katarzyna. Funkcje stałe const to takie funkcje, które nie mogą modyfikować stanu obiektu. Oznacza to, że funkcja stała nie może zmieniać.
Kurs języka C++ – wykład 3 ( )
Programowanie w języku C++
Kurs języka C++ – wykład 5 ( )
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Kurs języka C++ – wykład 4 ( )
K URS JĘZYKA C++ – WYKŁAD 2 ( ) Klasy i obiekty.
Klasy ( uzupełnienie ). Definicja klasy Klasa jest zbiorem logicznie powiązanych danych i funkcji, przeznaczonych do realizacji konkretnego zadania; Zamknięcie.
Programowanie obiektowe Wykład 9 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/15 Dariusz Wardowski.
Paweł Starzyk Obiektowe metody projektowania systemów
Programowanie Zaawansowane
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Programowanie Obiektowe – Wykład 6
Kurs języka C++ – wykład 3 ( )
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Programowanie obiektowe
PGO Dziedziczenie Michail Mokkas.
Zapis prezentacji:

Programowanie Obiektowe – Wykład 2 dr Piotr Jastrzębski Wydział Matematyki i Informatyki http://wmii.uwm.edu.pl/~piojas/ piojas@matman.umw.edu.pl

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

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

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

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

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.

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.

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; } }

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

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).

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

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

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.

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.

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

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

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

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

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.

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";

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

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;

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.

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

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

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

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; }

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