160 likes | 409 Views
Programowanie obiektowe III rok EiT. dr inż. Jerzy Kotowski Wykład IV. Program wykładu. Źródła podejścia obiektowego Podstawy metody PRINCE - PR ojects I n C ontrolled E nvironment Podstawy metody LFA - L ogical F ramework A pproach , składanie wniosków o grant
E N D
Programowanie obiektoweIII rok EiT dr inż. Jerzy Kotowski Wykład IV
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
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
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
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
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 1980 - 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 programmingOOP. • 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ść
Przykład PIERWSZY • // - nowy komentarz na jedną linię - /* */ dalej dostępne • <iostream.h> - nowa biblioteka we-wy • cout - nazwa standard output stream, • << dwuargumentowy operator przekazujący drugi argument do strumienia - put to operator #include <iostream.h> // ilustracja C++ void main(void) { cout << "C++ is an improved C.\n "; } #include <iostream.h> // ilustracja C++ void main(void) { cout << "C++ is an improved C. " << "\n"; } << ma nowe znaczenie, zawsze jest wykorzystywany w kontekście z cout
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
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
Język C++ – Typy wbudowane • Podstawowe typy danych char int float double • Kwalifikatory short long signed unsigned
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.