Języki i paradygmaty programowania (JIPP)

Wielkość: px
Rozpocząć pokaz od strony:

Download "Języki i paradygmaty programowania (JIPP)"

Transkrypt

1 Języki i paradygmaty programowania (JIPP) dr hab. inż. Adam Niewiadomski, prof. nadzw. Informatyka, III sem. studia dzienne inżynierskie PWSZ we Włocławku

2 Program przedmiotu 1 część semestru (ok. 4-5 wykładów) OOP i inne techniki programowania (zarys) Generacje języków programowania Trójwarstwowa architektura aplikacji W. danych, w. logiki, w. Interfejsu użytkownika Fazy życia oprogramowania 2 część semestru (ok. 8-9 wykładów) Język Java (Aplikacje konsoli, graficzny interfejs użytkownika, aplikacje okienkowe) Programowanie obiektowe, zorientowane obiektowo, programowanie komponentowe, klasa-obiektkomponent

3 Cykl slajdów nie stanowi kompletnego opracowania, a zwłaszcza nie jest skryptem zastępujacym wykład. Należy traktować go wyłącznie jako zbiór notatek ułatwiajacych słuchaczom udział w zajęciach. Slajdy można przetwarzać pod warunkiem nienaruszania praw autora, w szczegolnosci (ale bez ograniczenia do) rozpowszechniania całosci lub fragmentów w jakiejkolwiek formie bez zgody autora.

4 Cykl inżynierii oprogramowania (1) Algorytmy i złożoność obliczeniowa Struktury danych, tablice, pętle, instrukcje warunkowe i skoku, sortowanie, wyszukiwanie elementów w tablicach itp. Podstawy programowania Programowanie proceduralne instrukcje sterujące, implementacja podstawowych algorytmów, tablice i dynamiczne struktury danych, kompilacja, praca krokowa, debugging Projektowanie klas, obiektów i ich funkcji składowych, dziedziczenie klas

5 Cykl inżynierii oprogramowania (2) Języki i paradygmaty programowania Techniki i generacje języków programowania Trójwarstwowa architektura aplikacji Fazy życia oprogramowania (zarys) Trójwarstwowa architektura aplikacji i jej realizacja w języku Java Obiekt klasa komponent jako powtarzalne (reusable) fragmenty kodu Wykorzystanie technik OOP i komponentów do produkcji aplikacji niezależnych sprzętowo z tekstowym i/lub graficznym interfejsem użytkownika (GUI)

6 Cykl inżynierii oprogramowania (3) Inżynieria oprogramowania Analiza i projektowanie obiektowe, język UML (najprawdopodobniej) Założenie: słuchacz najpierw poznaje techniki implementacji, później uczy się stosować je na szerszą skalę i uzależniać od nich pozostałe fazy projektu informatycznego ''Od szczegółu do ogółu'' Zależy to także od pozostałych przedmiotów Bazy danych, sieci komp., bezpieczeństwo systemów, programowanie aplikacji klient-serwer, podstawy programowania sieciowego, itp.

7 Bibliografia, czyli literatura Java przegląd, obiektówka i aplety K. Arnold, J. Gosling, Java, WNT 1999, 42 zł Java ogólnie, zwłaszcza aplikacje konsoli Eckel B.: Thinking in Java. Helion, 2001, 90zł ics.p.lodz.pl/~aniewiadomski Dział,,Dydaktyka'', JiPP

8 Klasy systemów informacyjnych ERP - Enterprise Resource Planning system informatyczny zarządzający działalnością przedsiębiorstwa jako całością SAP, IFS, JEEVES, INFOR MAX+, Symfonia Forte, Impuls BPSC ERP = MRP I + MRP II MRP I (Material Resource Planning) planowanie materiałowe MRP II (Manufacturing Resource Planning) planowanie produkcyjne

9 Standardowe moduły ERP Produkcja Logistyka Księgowość Magazyn Sprzedaż Zakupy czego brakuje???

10 Rozwój ERP ERP są zwane "Back-office" - bo przeznaczone tylko dla personelu w odróżnieniu od systemów klasy CRM Customer Relationship Management Pewne zasoby dostępne są także dla klientów, np. za pośrednictwem WWW Rozwój --> ERP II ''wychodzą poza przedsiębiorstwo'' ECR = Obsługa konsumentow i dostawców (Efficient Consumer Response)

11 Rozwój ERP cd. SCM = Zarządzanie Łańcuchem Dostaw (Supply Chain Management) RFID Radio Frequency Identification - w systemach kontroli przepływu produktów/towarów w oparciu o fale radiowe np. System Automatycznej Identyfikacji Towarów (SAIT)

12 Fazy życia oprogramowania 1.Analiza wymagań użytkownika 2.Projektowanie 3.Implementacja 4.Testy i wdrożenie 5.Konserwacja i reengineering Fazy te moga po sobie nastepować wg różnych cyklów, np. kaskadowego, kaskadowego z powrotami, spiralnego, itp.

13 1. Analiza wymagań użytkownika Dane jakie informacje przetwarza system? Typy danych, formaty, konwersje Użytkownicy kto ma korzystać? Grupy i ich prawa dostępu Warunki odbiorcy gdzie system ma działać? Sprzętowe, lokalowe, finansowe Czy firma ma już system? Jaki? Za ile? Od kiedy? Co chcą zmienić?

14 2. Projektowanie warstwa danych Baza danych tabele, kwerendy, relacje, więzy integralności Formy normalne tabel, normalizacja Prawa dostępu do tabel Który użytkownik które dane widzi i/lub przetwarza Zgodność z normami prawnymi Jawność/tajność informacji, prawo publikowania Ochrona danych osobowych Zwłaszcza danych wrażliwych

15 2. Projektowanie warstwa logiki Procesy, podprocesy funkcje systemu np. zaloguj się = sprawdź login + sprawdź hasło + wyświetl zawartość konta użytkownika Przepływ danych Dane wejściowe i wyjściowe Jak przetwarzać dane? Gdzie przechowywać dane wynikowe? Algorytmy specyfikacje procesów Rysunki, pseudokod, język naturalny

16 2. Projektowanie interfejs użytkownika Interfejs (ang. interface) metoda komunikowania się programu z użytkownikiem Interfejs tekstowy DOS, Norton Commander, Linux Console Szybko działa, ale wymaga znajomości komend Interfejs graficzny Windows, KDE, Gnome Wolniejszy, ale intuicyjny w obsłudze

17 2. Projektowanie interfejs użytkownika (2) Interfejsy graficzne Okienkowy dla osobnych aplikacji Okienkowy dla aplikacji Przeglądarka internetowa dla aplikacji klientserwer Przed zaprojektowaniem interfejsu trzeba znać możliwości odbiorcy! Sprzęt i system operacyjny Stopień wyszkolenia personelu

18 3. Implementacja Zapis ustaleń projektowych w języku/językach programowania Warstwy danych Warstwy logiki Warstwy interfejsu użytkownika (-ów) Metodyka obiektowa lub proceduralna Od metody implementacji bardzo silnie zależą fazy analizy i projektu (koszty!!! - obiektowo czy proceduralnie??)

19 4. Testy i wdrożenie Wdrożenie systemu informacyjnego uruchomienie w docelowym środowisku działania, dla docelowej grupy użytkowników i wykonującego docelowe zadania Środowisko = platforma + otoczenie (np. budynek, inne instalacje) Platforma = sprzęt + system(y) operacyjny(-e) Zadania = przetwarzanie rzeczywistych danych pod rzeczywistym obciążeniem Wersje językowe lokalizacja oprogramowania

20 4. Testy i wdrożenie (2) Szkolenie personelu Szkolenie bezpośrednie lub pośrednie Szkolenie w trakcie testowania (system celny) Dokumentacja techniczna Systemy pomocy ''Help'', instrukcje obsługi, Warunki eksploatacji i konserwacji Warunki serwisu i gwarancji

21 4. Testy i wdrożenie (3) T. regresyjne [Roszkowski, 2004] Po zmianach, ''czy nie zmieniono za dużo'' T. operacyjne Testy długookresowe, pomiar niezawodności T. pełnozakresowe Przy pełnym obciążeniu systemu T. wydajnościowe Pomiary szybkości, wydajności (sprzęt!!)

22 4. Testy i wdrożenie (4) T. negatywne Świadome wprowadzanie błędów T. ergonomiczne Czytelność i wygoda interfejsów T. dokumentacji użytkownika Czytelność ''helpów'', zgodność ze stanem faktycznym T. akceptacyjne Testy ostateczne, ''kupić czy nie kupić'' Testy bezpieczeństwa!!!

23 4. Testy i wdrożenie (5) - koszty Sprzęt: serwer bazy danych, stacje robocze użytkowników - klienci (PC, laptopy, palmtopy), odpowiednia infrastruktura (sieć, komputerowa, telefony komórkowe) Oprogramowanie: licencja na systemy operacyjne serwera i stacji roboczych, licencja na serwer baz danych, licencja na oprogramowanie. A. Stachowicz-Stanusch, M. Stanusch

24 4. Testy i wdrożenie (6) - koszty Wdrożenie: analiza przedwdrożeniowa, parametryzacja systemu, ewentualne modyfikacje systemu, instalacja, połączenie z istniejącymi systemami informatycznymi przedsiębiorstwa, szkolenie, próbna eksploatacja, nadzór nad pełną eksploatacją Serwis: umowa stałej opieki serwisowej Zalicza się do następnej fazy, ale umowa zawierana jest przy wdrożeniu

25 5. Eksploatacja i konserwacja systemu ''Odśmiecanie'' baz danych Nieaktywni użytkownicy Dereplikacja wpisów Obserwacja rejestrów zdarzeń (tzw. logów) Login, logout, awarie, zamknięcia sesji Nowi użytkownicy, modyfikacja uprawnień Dbałość o bezpieczeństwo Wykrywanie ataków Aktualizacja zabezpieczeń Kontrola dostępu Administrowanie systemem

26 5. Reengineering (2) Reengineering inżynieria wtórna Service packs, aktualizacje, ''łaty'' - patches Uwagi do następnej wersji systemu Funkcje zbędne, nie używane, powielające się Funkcje pożądane, nowe lub o zmienionym działaniu, itp. Reinstalacja systemu (skrajny przypadek) *** Wszystkie powyższe czynności potocznie określa się mianem ''support'' wsparcie

27 Architektura aplikacji Model trójwarstwowy Warstwa danych Warstwa logiki aplikacji Warstwa interfejsu użytkownika Model-View-Controller wzorzec projektowy, design patern Aplikacja <= System informacyjny Aplikacja,,nie zawiera'' sprzętu Synonimy,,aplikacji'': oprogramowanie, software, Inne architektury/modele np. Web Services 4 warstwy: jw. + usługa sieciowa, odpowiedzialna za zbieranie danych rozproszonych, Na rożnych serwerach, w różnych kopiach tej samej bazy

28 Trzy warstwy aplikacji przykład // dane int tab[] = new int[n]; tab[0] = 43; tab[1] = 11;... tab[n] = 30; // logika for (i=0; i<n-1; i++) for (j=0; j<n-i-1; j++) if (tab[j]>tab[j+1]) bufor = tab[j]; tab[j] = tab[j+1]; tab[j+1] = bufor; } // interfejs użytkownika for (i=0; i<n; i++) cout<< tab[i]; // System.out.println(+tab[i]);

29 A. trójwarstwowa warstwa danych Warstwa danych przechowuje dane w sposób pasywny, nie implementuje procedur dostępu do danych ani ich przetwarzania Wykonuje zlecane przez warstwę logiki podstawowe operacje: Read np. SELECT Write np. INSERT Modify np. UPDATE Delete np. DELETE W tym sensie ''bazy'' w Accessie nie są tylko zbiorami danych, ale całymi aplikacjami

30 Arch. trójwarstwowa warstwa danych (2) Technologie tworzenia warstwy danych SQL ''bezpośrednio'' narzędzia graficzne generujące kod SQL, np. OpenOfficeBase diagramy związków encji (Entity Relationship Diagram Ok. 95 % baz relacyjne 5 % inne (obiektowe, sieciowe, hierarchiczne)

31 Arch. trójwarstwowa logika aplikacji Warstwa logiki metody przetwarzania danych, funkcje, procedury, procesy, usługi......operujące na danych z bazy, przetwarzające je i przekazujące do bazy, do innych procesów/ funkcji lub do interfejsu użytkownika Szczegółowe określenie (specyfikacja) tej warstwy wymaga algorytmów w postaci schematów blokowych lub pseudokodów Technologie: 3GL Pascal, Cobol, Fortran, C/C++, Java, PHP; 4GL LISP, Prolog

32 Arch. trójwarstwowa warstwa interfejsu użytkownika Zespół operacji odpowiedzialnych za kontakt z użytkownikiem, Wizualizacja (wyświetlanie) rezultatów procesów Pobieranie danych i kontrola ich poprawności Przyjmowanie poleceń użytkownika Interfejsy Tekstowe Graficzne (Graphical User Interface, GUI) Przeglądarki WWW (wymaga formatowania HTML-em danych wyjściowych) PHP, VBScript, ActionScript, XML Flash, HTML+CSS+JavaScript+DOM=DHTML

33 Warianty arch. trójwarstwowej Aplikacja typu ''Desktop'' Aplikacja ''biurkowa'', bez połączenia z siecią Całość kodu wykonuje się na stacji roboczej Aby działać nie musi łączyć się z innymi systemami Aplikacja klient-serwer dwa systemy (programy, maszyny, platformy) komunikujące się ze sobą w celu wykonywania zadanych operacji Thick client, gruby klient - interfejs + logika u klienta, a dane na serwerze Thin client, cienki klient interfejs u klienta, a logika i dane na serwerze

34 Gruby klient <html> <body> <p>zaloguj sie: </p> <form method="post"> <input type="text" value="wpisz login"> <input type="password" name="haslo"> <input type="submit" onclick='javascript: if (haslo.value == "mojehaslo") document.write("witamy!!!"); else document.write("zle!!!");'> </form> </body> </html>

35 Przykład,,thin client

36 Przykłady arch. trójwarstwowej Sortowanie tablicy Google Program pocztowy Word, Paint, Corel Jakie dane? Jaka logika? Jaki interfejs?

37 Technologie wytwarzania aplikacji Desktop (1) Kod maszynowy (1GL) i assemblery (2GL) sterowniki Języki 3-ciej generacji (3GL) Cobol, Fortran, Basic (programy obliczeniowe) Pascal, C/C++, Java (programy użytkowe) Visual Basic (aplikacje Office Excel, Word, OpenOfficeOrg) Dokumenty doc, xls, odt, odp nazywam tu aplikacjami ze względu na występujące w nich elementy interaktywne, np. formularze, przyciski, kontrolki itp.

38 Technologie wytwarzania aplikacji Desktop (2) Języki 4-ej generacji (4GL) SQL relacyjne bazy danych Prolog, Lisp Systemy Sztucznej Inteligencji TeX, LaTeX, BibTeX skład drukarski \documentclass[a4paper,11pt,bf,small,twoside]{itic} %{{{ \usepackage{graphicx} \begin{document} \title{interval-valued LINGUISTIC SUMMARIZATION OF~DATA} \author{ \textbf{adam \uppercase{niewiadomski}} } Języki i metody wizualne Corel dokumenty i aplikacje graficzne PowerPoint, OpenOfficeImpress prezentacje

39 Technologie wytwarzania aplikacji klient-serwer (1) Gruby klient Applety Interfejs = Java+ HTML, przeglądarka Logika = Java (plik *.class ładowany do Temp) Dane = Serwer WWW przechowujący kod <applet code= kod_appletu.class width=200 height=200> ActiveX skaner MKS Interfejs = C++, ActiveX, Logika = C++ Dane = Serwer WWW przechowujący kod

40 Technologie wytwarzania aplikacji klient-serwer (2) Cienki klient PHP Allegro Interfejs = DHTML przeglądarka Logika = PHP, serwer Apache Dane = Serwer MySQL JSP Interfejs = jw. Logika = Java, serwer Tomcat Dane = Postgress (???) CGI Wirtualna Polska Interfejs = jw. Logika = Perl... Dane =... ASP, ASP.NET,.NET - Ruby, RubyOnRails

41 Java historia (1) James Gosling pomysł stworzenia języka niezależnego od sprzętu (ściślej: od platformy) (Sun Microsystems California, 1990) Pierwsza nazwa OAK (okazała się zastrzeżona) Pierwotne przeznaczenie interfejsy urządzeń AGD i audio-video Modyfikacje i nowe modele sprzętu wymagały częstych zmian oprogramowania koszty! np. telefony komórkowe

42 Java historia (2) Niezależność sprzętowa znalazła zastosowanie w usłudze WWW 1993 pierwsza przeglądarka WWW, HotJava, która obsługiwała programy w Javie, jednak nadal było to rozwiązanie lokalne Suna, gdyż inne firmy nie wytwarzały oprogramowania zgodnego z tym standardem 1995 przeglądarka Netscape Navigator 2.0 obsługuje Applety Java, co ustanowiło przyjęcie rozwiązania dotąd lokalnego jako ogólnego standardu (!)

43 Zależność aplikacji od sprzętu Program zależny od platformy Kompilator LINUX *.bash LINUX Sys. Op LINUX Źródło C/C++ Kompilator Windows *.EXE Windows Sys. Op Windows Kompilator DOS *.exe DOS Sys. Op DOS

44 Zależność od platformy na przykładzie programów w C/C++ Program w wersji źródłowej wymaga kompilacji i konsolidacji (linkowania) z bibliotekami zgodnymi z daną platformą Formaty plików pośrednich i wynikowych są inne dla poszczególnych platform (np. *.obj, *.exe, *.dll) *.exe zawiera listę instrukcji danego procesora Zatem: na każdy sprzęt konieczny jest inny kompilator, linker oraz zestaw bibliotek Duże koszty, brak przenośności źródeł oraz gotowego oprogramowania

45 Niezależność sprzętowa aplikacji Program niezależny od sprzętu Źródło *.java Kompilator plik(i) *.class czyli Bajt-kod... JVM JVM Linux Win2K Platforma LINUX Platforma Windows *.class *.class JVM DOS Platforma DOS *.class

46 Niezależność oprogramowania od platformy Kod źródłowy kompilowany jest zawsze tą samą metodą i łączony z tymi samymi bibliotekami Jest to możliwe, gdyż plik wynikowy *.class (tzw. kod pośredni, bajt-kod) zawiera instrukcje dla programu wykonującego, a nie bezpośrednio dla procesora Program wykonujący (interpreter) odpowiada za przetłumaczenie poleceń z pliku *.class na rozkazy danego procesora Technologie.net (C#, J#, VB.net) Ruby, RubyOnRails są innymi niż Java przykładem tworzenia oprogramowania niezależnego od sprzętu

47 Java Virtual Machine Wirtualna Maszyna Javy Interpreter bajt-kodu (czyli poleceń w plikach *.class) JVM działa analogicznie jak procesor przetwarzający kod w pliku.exe Istnieją implementacje na praktycznie wszystkie platformy np. Windows środowisko uruchomieniowe JRE j2re-1_6_0_11-windows-i586.exe

48 Biblioteki Niezależność sprzętowa to także biblioteki Niezależne od platformy zbiory klas i ich metod składowych, czyli tzw. API Application Programming Interface Pakiet to zbiór klas, gdzie nazwa pakietu = nazwa katalogu nazwa klasy = nazwa pliku Pakiety na dysku są rozpakowane (katalogi z plikami *.class) lub ''spakowane'' do plików.jar (java archive)

49 Plusy niezależności sprzętowej (1) Szerokie zastosowania w Internecie Zamieszczając aplet Javy na stronie nie trzeba myśleć o tym jaki komputer ma odbiorca Mały rozmiar kodu wynikowego 1kB appletu *.class vs. ok. 200kB.exe drukującego jedną linię tekstu Jedna metoda kompilacji i jeden zestaw pakietów Kod klas i funkcji bibliotecznych jest odczytywany przez JVM, a nie przez różne procesory, a więc działa podobnie

50 Plusy niezależności sprzętowej (2) Na 1 dobry program napisany w C++ przypada 3,7 złych programów. W Javie proporcja ta wynosi 1,7. Napisanie programu w Javie zajmuje średnio 3 krotnie mniej czasu. Programy w Javie są nawet 2-3 krotnie krótsze (nie licząc komentarzy Javadoc)

51 Minusy niezależności sprzętowej (1) Spowolnienie działania (dodatkowy program między procesorem a kodem) Plik *.class nie jest bezpośrednio odczytywany przez procesor, ale przez program interpretujący, czyli JVM Programy Javy ładują się 6-krotnie wolniej. Program napisany w Javie potrzebuje statystycznie 2-3 krotnie więcej RAM niż napisany C++ i działa do 10x wolniej

52 Minusy niezależności sprzętowej (2) Konieczność zainstalowania JVM przy pierwszym uruchomieniu programu Przy wolnym łączu uniemożliwiało to działanie Javy Niemal całkowity brak współpracy z kodami w innych językach W C/C++ można było zlinkować do.exe funkcje napisane np. w Pascalu i skompilowane do *.obj

53 Programowanie komponentowe wykład 3 Informatyka, IV sem. studia dzienne FTIiMS, PŁ

54 Programowanie komponentowe wymaga Znajmości składni języka każdy język programowania można poznać posługując się pewnym schematem Jakie są słowa kluczowe, jak buduje się wyrażenia, funkcje, zmienne, jak tworzy się typy danych, struktury danych, tablice, obiekty, itp. Znajomości bliotek (obiektów, pakietów i komponentów) Czy trzeba samemu tworzyć funkcje i struktury danych, czy może wystarczy skorzystać z gotowych i zoptymalizowanych? Znajomości narzędzi programistycznych szybkość i wygoda tworzenia aplikacji Jak uruchomić kod w danym języku, jak poprawić błędy, jak wygenerować powtarzalne fragmenty kodu, praca krokowa, debugging

55 Kategorie składniowe Javy (1) 1. Słowa kluczowe nazwy typów, instrukcji sterujących, stałych, operatorów, modyfikatorów dostępu Nie można w ten sposób nazwać zmiennych, funkcji, itp. Słowa zarezerwowane obejmują terminy ''reserved for future use'' przewiduje się, że w przyszłych wersjach Javy wprowadzone będą nowe słowa kluczowe, a wówczas starsze kody mogłyby nie kompilować się w nowych środowiskach, np. w Java 7

56 Kategorie (2,3) 2. Separatory (9 szt.) ( ) { } ;, [ ] - oddzielają wyrażenia, bloki kodu, klasy - niektóre są także operatorami, np. [ ] operator indeksowania tablicy 3. Komentarze // jednolinijkowy od znaku // do końca linii /* Komentarz blokowy */

57 Kategorie (4) operatory 4. Operatory a. Priorytet, czyli ''kolejność wykonywania działań'', np. obiekt.tab[2*5] b. Wiązanie (prawe/lewe) wiązanie lewe np kompilator oblicza kolejno (((2+3)+4)+5) wiazanie prawe, np. x=y=z=2, kompilator oblicza (x=(y=(z=2))) Od prawej wiążą operatory jednoargumentowe i przypisania, pozostałe od lewej

58 Operatory c.d. c. Ilość argumentów (1, 2 lub 3)!zmiennaLogiczna (1 argument) 3*5, (2 argumenty) x<y? x : y (3 argumenty) d. Wartość (typ rezultatu) następny slajd e. L-wartość (ang. Left-value, L-value) - każde wyrażenie, które może znaleźć się po lewej stronie operatora przypisania, np. X = 2, tab[1] = tab[2] -ale nie: 5+=1 lub 5++, gdyż jest równoznaczne z 5=5+1!!!!

59 Kategorie (4) operatory cd. Podział przybliżony pod względem typu zwracanej wartości Arytmetyczne + - * % Wynik jest typu jednego z operandów Logiczne! && Wynik true lub false Przypisania = += -= *= Wynik jest typu lewego argumentu (czyli L- wartości)

60 Kategorie (4) operatory (podział przybliżony) Porównania == < >= true lub false Bitowe & ^ << >>> Wynik jest typu jednego z operandów Przydziału pamięci new Wynik jest typu referencyjnego Kontroli typu instanceof Wynik logiczny Zalecane ćwiczenia!

61 Kategorie (5) Identyfikatory nazwy stałe, czyli literały literały specjalne, np. polskie znaki znakowe (char, String) w, Dziendobry, \xy liczb całkowitych (int, byte) 100, 011, 0xFF00, 55L liczb rzecz. (double, float) 1.5,.6, 0.5f, 0.7D logiczne (boolean) true, false Są to także słowa zarezerwowane zmienne x, i, nazwisko, checkbox1 typy Button, String, int, char

62 Identyfikatory (nazwy) funkcji np. init(), wyciagnijpierw(25); Występują w trzech kontekstach Deklaracja, int funkcja(double x); Definicja = deklaracja + ciało int funkcja (double x) { // ciało funkcji return rezultat; } Wywołanie: użycie wartości funkcji X = funkcja (3.14);

63 Sterowanie wykonaniem programu for, while, do..while jak w C/C++ Oprócz np. while(1) Brak konwersji wyrażeń logicznych do int Powinno być while(1==1) if..else,if..else if..else jw. switch..case..default jw. break, continue jw. Przypisanie = (+=, -=,...) Dokładnie jak w C/C++

64 Sterowanie... cd. bloki instrukcji (obowiązuje przesłanianie nazw zmiennych) int x=2; { int y = 5; System.out.println(""+y); /// Bledem jest np. int x=3; Przeslania zmienna istniejącą } int y=3; // Nie jest to błąd kompilator,,zapomniał'' o y System.out.println(""+y); //EFEKT???

65 Typy danych w Jawie Typy danych Proste Złożone Tablicowe Obiektowe Biblioteczne Programisty

66 Typy proste (wbudowane, built-in, primitives) byte 1 bajt, stałoprzec. ze znakiem short 2, int 4, long 8 char 2 kod znaku UNICODE możliwe zapisanie EOF boolean 1 bajt, true/false float 4 bajty, zmiennoprzecinkowa double 8, jw.

67 Typy tablicowe TYLKO DYNAMICZNE!!! Jednowymiarowa int tab [ ] = new int [6]; Ale nie: int tab[6], bo nie ma tu rezerwacji pamięci operatorem new Dwuwymiarowa double tab [ ] [ ] = new double [10] [10]; Są to przykłady definicji tablic Trójwymiarowa boolean tab[ ][ ][ ]=...

68 Typy obiektowe Biblioteczne Button java.awt.button Date java.util.date ActionEvent java.awt.event.actionevent String java.lang.string Własne definicja klasy Np. Macierz class Macierz { definicja klasy, czyli pól i funkcji składowych }

69 Zmienne referencje (de facto: wskaźniki) Zmienna miejsce w pamięci do przechowywania danych to miejsce ma swoją nazwę, jak to w językach imperatywnych 3-ej generacji, nie zaś adres Zmienne (tylko pola klas lub zmienne lokalne/formalne funkcji, brak zmiennych globalnych) automatyczne (tylko typy proste, kompilator sam rezerwuje pamięć i sam ją zwalnia) int x; char znak; dynamiczne (rezerwacja pamięci operatorem new, wszystkie typy obiektowe i tablice) statyczne inicjalizacja wymagana przy deklaracji np. static int x = 5; //nie: static int x;... x=5;

70 Zmienne deklaracja, przydział pamięci, inicjalizacja Deklaracja int x, y=3; Button b1, b2; Rezerwacja pamięci (nie dotyczy typów prostych) b1 = new Button( Kliknij tu! ); Inicjalizacja x = 25; // typy proste napis = new String( próba Stringa... ); // typy złożone b2 = b1; // ŹLE - konstruktor kopiujący nie wywoła się, zostaną przypisane ADRESY, nie WARTOŚCI, musi być: b2 = new Button(b1);

71 Konwencje zapisu kodu w Jawie Klasy wielką literą, bez C lub T z przodu Macierz, Button, String Zmienne małą literą, bez podkreśleń i, nazwiskostudenta, iloscwierszymacierzy zmienna po. jest polem jakiejś innej klasy obiekt.pole zmienna po this jest polem bieżącej klasy this.pole // równoważne: pole, ale z this jest czytelniej zmienna bez poprzedzającego selektora jest argumentem formalnym funkcji lub zm. lokalną/pomocniczą pole

72 Standardy zapisu kodu... cd. Funkcje czasownik małą literą, dopełnienie wielką getnumber, tostring, add, róbcoś Nazwy pakietów małą literą java.awt; java.mypackage.myclass To klasa MyClass w pakiecie java.mypackage Bloki { // początek bloku // instrukcje } //koniec bloku

73 Notacja węgierska (Hungarian notation) Źródło: Bates: Poznaj Visual C++ 6.0, Appendix A b boolean bodpowiedz n short, int nwagazawodnika l long lrozmiarpliku fl float flmojapensja d double djegopensja bt Button przycisk ch Checkbox pole wyboru e Event zdarzenie pt Point punkt

74 Różnice między C/C++ a Javą (1) Typy danych podstawowych niezależne od sprzętu specyficzne dla JVM, a nie dla platformy Nie istnieje pojęcie wskaźnika wszystkie zmienne typów prostych są wartościami int x=0; wszystkie zmienne typów złożonych (tablicowych i agregatów) są referencjami wymagają dynamicznego przydziału pamięci operator * oznacza tylko mnożenie operatory.*, ->, :: nie istnieją this jest referencją

75 Różnice... (2) Tablice tylko dynamiczne Kurs Tylocha, rozdz tablica w Jawie jest obiektem dziedziczy po Object, implementuje interfejs Cloneable deklaracja wymaga przydziału pamięci w zadanej ilości, poprzez podanie liczby elementów... String tab[ ] = new String[5];...lub zbioru inicjalizującego wartości elementów int tablicaint[ ] = {1, 2, 3, 4, 5}; String tab[ ]={new String( pn ),new String( wt )...}; Nazwa tablicy wraz z nawiasami [ ] jest L-wartością tab[0] = niedziela

76 Różnice... (3) Zwalnianie pamięci Kurs Tylocha, rozdz Nie ma operatora delete zwalnianiem pamięci zajmuje się funkcja System.gc() (od ang. garbage collector) funkcja ta wywoływana jest automatycznie co jakiś czas w osobnym wątku, tylko wtedy, gdy nie ma nic innego ważniejszego do zrobienia (wątek ten ma b. niski priorytet) sprawdzane są wszystkie wartości w referencjach; jeśli w żadnej nie ma adresu danego obszaru pamięci, to obszar ten jest zerowany (rysunek)

77 Różnice... (4) Zwalnianie cd. zwalnianie jawne można wywołać jawnie funkcję System.gc() jeśli obiekt musi przed zniknięciem zwolnić zasoby (np. pozamykać pliki), można nadpisać funkcję finalize(), odziedziczoną po java.lang.object przykład: kurs Tylocha, rozdz Wniosek: finalizer działa podobnie jak destruktor dotyczy to także wywołań finalizerów klas-przodków

78 Różnice... (5) Brak możliwości przeciążania operatorów operacje na niewbudowanych typach danych realizowane są przez funkcje składowe o zwyczajowych nazwach, np. == string1.equals(string2) rez. boolean <=, >... string3.compareto(string4) rez. int = konstruktory klas wszystkie przeciążone operacje przypisania zastąpione są przez konstruktory kopiujące String tekst1 = new String (innystring); String tekst2 = tekst1;//przepisanie ADRESU!! String tekst2 = new String (tekst1); //działa jeśli istnieje konstruktor kopiujący

79 Konstruktor kopiujący (5') K. kopiujący klasy A w C/C++ - konstruktor, który można wywołać z jedynym parametrem będącym referencją do obiektu klasy A Pozostałe parametry mogą być domyślne W Javie nie ma domyślnych parametrów funkcji K. kopiujący w Javie ma tylko jeden parametr Jeśli konstruktor w Javie odwołuje się do konstruktora klasy bazowej, to robi to poprzez słowo super, koniecznie w pierwszej linii pod nagłówkiem, patrz Różnica (9) Brak list inicjalizacyjnych

80 Komentarz Różnice 1 5 mają znaczny wpływ na budowę wyrażeń w Javie i, w ogólności, na konstrukcję kodu i działajacych programów. Ich przyswojenie jest istotne z punktu widzenia eliminacji nawyków z C/C++ (nawyków niewłaściwych w Jawie)

81 Różnice... (6) dostęp do klas, pól i metod Dostęp do klas, pól i metod Kurs Tylocha, rozdz w Jawie obowiązuje tzw. dostęp pakietowy Pakiet, podstawowa jednostka, jest katalogiem plików *.class w jednym pliku *.java znajduje się jedna klasa publiczna mogą być inne klasy, ale niepubliczne przykład po kompilacji w jednym pliku *.class znajduje się jedna klasa Przypisanie klasy do pakietu odbywa się instrukcją package nazwa_pakietu ; przykład położenie plików w pakietach określa zm. środ. CLASSPATH przykład dla CLASSPATH = C:\WINNT\java Pakiet może zawierać podpakiety np. java.awt zawiera w sobie java.awt.event zbiór klas odpowiedzialny za zdarzenia w oknach

82 Różnice... (modyfikatory 1) Modyfikatory dostępu do klasy public pola i składowe są widoczne w pakiecie i poza nim final po klasie nie można dziedziczyć abstract nie można utowrzyć obiektu tej klasy domyślnie: dostęp pakietowy pola i metody widoczne tylko dla klas wewnątrz pakietu Modyfikatory dostępu do pól i funkcji klasy private pole/metoda widoczne tylko w klasie protected pole metoda widoczne w klasie, pakiecie i w klasach dziedziczących public pole metoda widoczne ''wszędzie'' domyślnie ''package'', jw.

83 Różnice... (modyfikatory 2) Modyfikatory własności funkcji składowych final, static, abstract, synchronized, native dostęp do f-cji st. Nazwaklasy.funkcja() W C/C++ Nazwaklasy::funkcja() Modyfikatory własności pól klas final, static, transient, volatile inicjalizacja pola statycznego tylko w kodzie klasy (nie jak w C) rozdz. Kurs Tylocha inicjalizator pól statycznych

84 Różnice... (7) dziedziczenie Brak modyfikatorów dziedziczenia klas (public, private...) Dziedziczenie tylko po jednej klasie jednobazowe Hierarchia klas w pakietach ma postać drzewa każda klasa ma co najwyżej jednego bezpośredniego przodka Upraszcza to graf hierarchii dziedziczenia klas Czasem klasy muszą posiadać pewne funkcje, jeśli chcą aby dla ich obiektów działały metody standardowe Arrays.sort(Object[]) - wymaga aby obiekty miały funkcję compareto(), czyli implementowały interfejs Comparable INTERFEJS klasa abstrakcyjna o zadeklarowanych, ale nie zdefiniowanych funkcjach (jeśli posiada) o polach wyłącznie statycznych (jeśli posiada) zadeklarowana słowem interface

85 Różnice (7) przykład diagramu schematu dziedziczenia jednobazowego z interfejsami java.lang.object +--java.awt.component +--java.awt.container +--java.awt.panel +--java.applet.applet ActionListener ItemListener class MyApplet

86 Interfejs jako klasa, klasa interfejsowa Każda klasa implementująca interfejs MUSI zdefiniować jego metody Dzięki temu pewne cechy mają zawsze tę samą nazwę; ułatwia to np. ich wywoływanie przez inne komponenty np. Funkcja Arrays.sort(Object[ ] tab) działa w oparciu o funkcję compareto(...), a więc obiekty w tablicy tab muszą implementować interfejs Comparable Interfejs może dziedziczyć po innych interfejsach (także po kilku), ale nie może dziedziczyć po klasach Interfejs może być deklarowany w jednym pliku *.java z klasami publicznymi mimo tego, że sam jest publiczny Po kompilacji interfejs zostanie umieszczony w osobnym pliku *.class

Programowanie komponentowe wykład 0

Programowanie komponentowe wykład 0 Programowanie komponentowe wykład 0 Informatyka, IV sem. studia dzienne inżynierskie FTIiMS, PŁ Program przedmiotu 2-3 wykłady OOP i inne techniki programowania (zarys) Generacje języków programowania

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Wykład 8: Obsługa Wyjątków

Wykład 8: Obsługa Wyjątków Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Programowanie komponentowe wykład 3

Programowanie komponentowe wykład 3 Programowanie komponentowe wykład 3 Informatyka, IV sem. studia dzienne FTIiMS, PŁ Programowanie komponentowe wymaga Znajmości składni języka każdy język programowania można poznać posługując się pewnym

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Dziedziczenie. dr Jarosław Skaruz

Dziedziczenie. dr Jarosław Skaruz Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 2

Języki i techniki programowania Ćwiczenia 2 Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Wykład 3 Składnia języka C# (cz. 2)

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Języki i metody programowania Java INF302W Wykład 3 (część 1) Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

Bardziej szczegółowo

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Spis treści. 1 Java T M

Spis treści. 1 Java T M Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

2. Składnia, środowisko i konwencje w Javie

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: JFM-1-508-s Punkty ECTS: 3 Wydział: Fizyki i Informatyki Stosowanej Kierunek: Fizyka Medyczna Specjalność: Poziom studiów: Studia I

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Zaliczenie przedmiotu:

Zaliczenie przedmiotu: INFORMATYKA 2 - Wykład 15h Kod przedmiotu: ES1C300 016, ECTS: 3 pkt. Kierunek: Elektrotechnika, studia stacjonarne I stopnia Semestr: III, rok akademicki: 2016/2017 Zaliczenie przedmiotu: Ogólne warunki

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Definicje klas i obiektów. Tomasz Borzyszkowski

Definicje klas i obiektów. Tomasz Borzyszkowski Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

Wykład 1: Wprowadzenie do technologii Java

Wykład 1: Wprowadzenie do technologii Java Programowanie komputerów Wykład 1: Wprowadzenie do technologii Java dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl Czym jest Java? Obiektowy język programowania ogólnego przeznaczenia Opracowany

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196 Wyjątki 180 / 196 Wyjątki W Javie istnieje mechanizm tzw. wyjątków (ang. exception), który pozwala na przechwytywanie błędów pojawiających się w programie. Kompilacja tab [ 1 0 ] = 100; spowoduje powstanie

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Klasy w C++

Zaawansowane programowanie w języku C++ Klasy w C++ Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

Programowanie Obiektowe Ćwiczenie 4

Programowanie Obiektowe Ćwiczenie 4 Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)

Bardziej szczegółowo