Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IV.

Podobne prezentacje


Prezentacja na temat: "Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IV."— Zapis prezentacji:

1 Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IV

2 Program wykładu Źródła podejścia obiektowego Podstawy metody PRINCE -PRojects In Controlled Environment Podstawy metody LFA -Logical Framework Approach, składanie wniosków o grant Język C++ - gadżety języka, polimorfizm, klasy, dziedziczenie –Obiektowe języki programowania –Elementy składni Przykład problemu Podstawy języka JAVA Klasówka

3 Literatura C++ for C programmers, Ira Pohl, The Benjamin/Cummings Publishing Company, Inc. Inżynieria oprogramowania w projekcie informatycznym, pod redakcją Janusza Górskiego, Wydawnictwo MIKOM, Warszawa 2000 Symfonia C++, Jerzy Grębosz, Oficyna Kallimach, Kraków 1999

4 Programowanie obiektowe - historia Idea programowania obiektowego została wprowadzona po raz pierwszy w 1966 roku w języku Simula Burzliwy rozwój programowania obiektowego od początku lat 80, po powstaniu języka Smalltalk Do dzisiaj powstało ponad 50 języków programowania obiektowego Języki w pełni obiektowe, zaprojektowane od podstaw, takie jak: Smalltalk, Flavors, Eiffel, OakLisp, Trellis –jedynym dostępnym stylem programowania jest styl obiektowy, który implementowany jest z reguły w sposób uniwersalny, przejrzysty i wygodny dla użytkownika Języki powstałe przez rozszerzenie tradycyjnych języków programowania o elementy obiektowości, takie jak C++, Objective-C, LOOPS, Pascal –możliwy jest zarówno klasyczny, jak i obiektowy styl programowania. Umożliwia to bogactwo i różnorodność mechanizmów programowania z jednej strony oraz zgodność z popularnymi klasycznymi językami programowania, z których wywodzą się odpowiednie języki obiektowe Języki homogeniczne i heterogeniczne

5 Smalltalk Smalltalk jest zintegrowanym językiem i środowiskiem programowania obiektowego Znaczenie języka Smalltalk w przeszłości polegało głównie na tym, że proponował on nowe koncepcje i mechanizmy, które następnie były wdrażane w innych systemach programowania. Traktowano go zatem bardziej jako język eksperymentalny niż stricte komercyjny. Główne cechy języka Smalltalk –Wysoka jednorodność i spójność w zastosowaniu podejścia obiektowego powodująca, że zbiór pojęć i operacji zawartych w języku nie jest liczny, –Każdy komponent środowiska programowania, który jest adresowalny przez użytkownika, może mu być przedstawiony w sposób czytelny, ułatwiający analizą i manipulowanie nim, –Smalltalk wyposażono w obiekty pełniące funkcje przypisane zwykle systemowi operacyjnemu, np. zarządzanie pamięcią operacyjną, system plików, edycję tekstów i obrazów graficznych, przydzielanie procesora. Smalltalk i C++ zajmują przeciwstawne pozycje w przestrzeni wszystkich języków obiektowych

6 C++ Język C++ jest ewolucyjnym rozszerzeniem języka C Język C++ zaprojektowano w celu uzyskania następujących jego własności: –zachowania wysokiej efektywności i przenoszalności języka C, –pełnej zgodności z językiem C, –likwidacji wad języka C, w szczególności słabej kontroli typów danych, –wyposażenia języka w nowoczesne mechanizmy ukrywania danych. C++ powstał w Bell Labs w połowie Bjarne Stroustrup C++ dodaje do C koncepcję klasy - mechanizm, który pozwala wprowadzać nowe typy danych definiowane przez użytkownika abstract data types - ADT. W konsekwencji pozwala to na object oriented programming OOP. C++ is an improved C C is a machine level, while C++ is a problem level –klasy –funkcje składowe, –dziedziczenie –przeciążanie funkcji i operatorów –mniejszy związek z preprocesorem, nowe biblioteki we-wy i nowe operatory –kontrola widzialności i dostępu (private is hidden and not accessible) –konwersja typów dla argumentów funkcji przekazywanych przez wartość

7 Przykład PIERWSZY // - nowy komentarz na jedną linię - /* */ dalej dostępne - nowa biblioteka we-wy cout - nazwa standard output stream, << dwuargumentowy operator przekazujący drugi argument do strumienia - put to operator #include // ilustracja C++ void main(void) { cout << " C++ is an improved C.\n " ; } #include // ilustracja C++ void main(void) { cout << " C++ is an improved C. " << " \n " ; } << ma nowe znaczenie, zawsze jest wykorzystywany w kontekście z cout

8 Elementy składni języka C - Nazwy Nazwy mają: dane, funkcje, etykiety, etc. Ala = ma(_kota); Nazwy tworzy się z liter, cyfr oraz znaku podkreślenia. Dopuszczalne nazwy zmiennych: –Cx_1, a_1_2, –Ala_ma_kota, Liczba_zmiennych –xyz, xYz, XyZ Język C prawie wszędzie odróżnia małe litery od dużych. Wszystkie wymienione powyżej nazwy są różne. Ograniczenia: –Pierwszy znak nie może być cyfrą –Pierwszy znak może być znakiem podkreślenia ale po początkowych znakach podkreślenia znowu nie może być wpierw cyfra –Nazwa zmiennej (identifier) może mieć dowolną długość. Język C odróżnia zmienne po określonej liczbie pierwszych znaków (w produktach Borlanda jest to standardowo 32 - identifier length) Nazwa nie może być słowem kluczowym języka

9 Składnia języka C++ – Słowa kluczowe Borland 5.x Razem 48 słów kluczowych 17 słów kluczowych charakterystycznych dla C++ Zbiór słów kluczowych języka C++ jest nadzbiorem zbioru słów kluczowych języka C asmautobreakcasecatchchar classconstcontinuedefaultdeletedo doubleelseenumexternfloatfor friendgotoifinlineintlong newoperatorprivateprotectedpublicregister returnshortsignedsizeofstaticstruct switchtemplatethisthrowtrytypedef unionunsignedvirtualvoidvolatilewhile

10 Język C++ – Typy wbudowane Podstawowe typy danych char int float double Kwalifikatory short long signed unsigned

11 Język C – Operatory Operatory wymienione w jednym wierszu mają ten sam priorytet. Wiersze tabeli ustawione są według malejącego priorytetu. Operator jest lewostronnie (prawostronnie) łączny, jeżeli w wyrażeniu zawierającym co najmniej dwa takie operatory na tym samym poziomie struktury nawiasowej najpierw jest wykonywany operator lewy (prawy). W języku C nie określa się kolejności obliczania argumentów operatora ani kolejności wyznaczania argumentów funkcji. Lp.Operator Łączność 15() [] ->.L 14! ~ * & sizeofP 13* / %L 12+ -L 11 >L 10 >=L 9== !=L 8&L 7^L 6|L 5&&L 4||L 3?:P 2= += itp.P 1,L

12 Język C++ – Operatory SymbolNazwaZastosowanie 17 :: określenie zakresunazwa_klasy::składnikL :: nazwa globalna::nazwa_globalnaP 16 -> wybranie składnikawskaźnik->składnikL [ ] element tablicywskaźnik[wyrażenie] ( ) wywołanie funkcjifunkcja(lista_argumentów) ( ) nawias w wyrażeniach(wyrażenie) 15 sizeof rozmiar obiektusizeof(wyrażenie)P sizeof rozmiar typusizeof(typ) ++ post inkrementacjalwartość pre inkrementacja++ lwartość -- post dekrementacjalwartość pre dekrementacja-- lwartość ~ dopełnienie do 2~ wyrażenie ! negacja! wyrażenie

13 Język C++ – Operatory c.d. 1 SymbolNazwaZastosowanie 15 - jednoargumentowy minus- wyrażenieP cd + jednoargumentowy plus+ wyrażenie & adres czegoś & lwartość * odniesienie się wskaźnikiem* wyrażenie new kreuj (rezerwuj)new typ delete zlikwiduj (anuluj rezerwację) delete wskaźnik delete[] zlikwiduj wektordelete [ ] wskaźnik ( ) rzutowanie (konwersja typu)(typ)wyrażenie 14 Wybór składnika wskaźnikiem: L.* - i nazwą obiektuobiekt.*wsk_do_składn. ->* - i wskaźnikiem do obiektuwsk ->*wsk do składn. 13 * mnożeniewyraż *wyrażL / dzieleniewyraż /wyraż % modulo (reszta)wyraż %wyraż

14 Język C++ – Operatory c.d. 2 SymbolNazwaZastosowanie 12 + dodaj (plus)wyraż + wyrażL - odejmij (minus)wyraż - wyraż 11 << przesunięcie w lewolwartość << wyrażL >> przesunięcie w prawolwartość >> wyraż 10 < mniejsze niżwyraż < wyrażL <= mniejsze lub równewyraż <= wyraż > większe odwyraż > wyraż >= większe lub równewyraż >= wyraż 9 == równewyraż == wyrażL != nie równewyraż != wyraż 8 & iloczyn bitowywyraż & wyrażL 7 ^ bitowa różnica symetrycznawyraż ^ wyrażL 6 | bitowa sumawyraż I wyrażL 5 && koniunkcjawyraż && wyrażL

15 Język C++ – Operatory c.d. 3 SymbolNazwaZastosowanie 4 || alternatywawyraż I I wyrażL 3 ?: arytmetyczne ifwyraż ? wyraż : wyrażL 2 = zwykłe przypisanielwartość = wyrażP *= mnóż i przypiszlwartość *= wyraż /= dziel i przypiszlwartość /= wyraż %= modulo i przypiszlwartość %= wyraż += dodaj i przypiszlwartość += wyraż -= odejmij i przypiszlwartość -= wyraż <<= przesuń w lewo i przypiszlwartość «= wyraż >>= przesuń w prawo i przypiszlwartość »= wyraż &= koniunkcja i przypisanielwartość &= wyraż |= alternatywa i przypisanielwartość I = wyraż ^= exclusive or i przypisanielwartość ^= wyraż 1, przecinekwyraż, wyrażL


Pobierz ppt "Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IV."

Podobne prezentacje


Reklamy Google