Thinking in Java. edycja polska IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE

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

Download "Thinking in Java. edycja polska IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE"

Transkrypt

1 PRZYK ADOWY ROZDZIA Wydawnictwo Helion ul. Chopina Gliwice tel. (32) helion@helion.pl IDZ DO KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE Thinking in Java edycja polska Autor: Bruce Eckel T³umaczenie: Adrian Nowak, Szymon Kobalczyk, ukasz Fryz ISBN: Tytu³ orygina³u: Thinking in Java. Second Edition. Format: B5, stron: oko³o 816 Przyk³ady na ftp: 328 kb Najlepsza ksi¹ ka na temat Javy, Jeden ze zdecydowanie najlepszych kursów Javy, jaki kiedykolwiek widzia³em, dla jakiegokolwiek jêzyka -- to wybrane opinie o propozycji wydawnictwa Helion. Ksi¹ ka zarówno dla pocz¹tkuj¹cych, jak i ekspertów: Dog³êbnie objaœnienia zasady obiektowoœci oraz ich zastosowania w Javie. Pocz¹wszy od podstaw sk³adni Javy do jej najbardziej zaawansowanych w³aœciwoœci (obliczenia rozproszone, zaawansowany potencja³ obiektowy, wielow¹tkowoœæ), ksi¹ ka ta zosta³a napisana przede wszystkim po to, by rozbudziæ w pocz¹tkuj¹cym programiœcie zainteresowanie Jav¹. Przystêpny styl Bruce'a Eckela i ukierunkowane przyk³ady powoduj¹, i nawet najbardziej tajemnicze pojêcia staj¹ siê zrozumia³e. Bruce Eckel jest autorem ksi¹ ki Thinking in C++, która zdoby³a nagrodê Software Development Jolt Award dla najlepszej ksi¹ ki 1995 roku. Programowaniem zajmuje siê profesjonalnie od 20 lat. Uczy ludzi na ca³ym œwiecie, jak programowaæ z zastosowaniem obiektów ju od 1986 roku, najpierw jako konsultant C++ a teraz Javy. By³ cz³onkiem Komitetu Standardów C++, napisa³ 5 innych ksi¹ ek na temat programowania zorientowanego obiektowego, wyda³ ponad 150 artyku³ów i prowadzi³ felietony w wielu magazynach informatycznych. Stworzy³ œcie kê C++, Javy i Pythona na konferencji Software Development Conference. Zdoby³ tytu³ naukowy z zakresu Zastosowañ Fizyki oraz tytu³ magistra z zakresu In ynierii Oprogramowania. Uczy jêzyka Java, nie zaœ mechanizmów zale nych od platformy systemowej. Poprzez omówienie podstaw wprowadza tematykê zaawansowan¹. Omawia ponad 300 dzia³aj¹cych programów Javy, ponad linii kodu. Nagroda dla najlepszej ksi¹ ki przyznana przez czytelników JavaWorld w 2000 roku. Nagroda dla najlepszej ksi¹ ki przyznana przez redakcjê Java Developer Journal, Nagroda za twórczoœæ od Software Development Magazine, 1999.

2 #4786/-.8o9+-.36/836+/6836-2/13 6/.3;+ Przedmowa do wydania drugiego Java '463;+./2/ Warunki wstępne Nauka Javy Cele Dokumentacja on-line Zawartość rozdziałów Ćwiczenia Kody źródłowe Konwencje zapisu Wersje Javy Seminaria Projekt okładki Podziękowania Współpracownicy internetowi "3.+o'463;+./2/;;+83,/8; Postępująca abstrakcja Obiekt posiada interfejs Ukrywanie implementacji Wielokrotne wykorzystanie implementacji Dziedziczenie: wielokrotne użycie interfejsu Relacja bycia czymś a relacja bycia podobnym do czegoś...48 Wymienialność obiektów z użyciem polimorfizmu Abstrakcyjne klasy bazowe i interfejsy

3 $2212+:+ Obiekty, sposób przechowywania i czas życia Kolekcje i iteratory Hierarchia z pojedynczym korzeniem Biblioteki kolekcji i ich stosowanie Dylemat domowy: kto powinien posprzątać? Obsługa wyjątków eliminowanie błędów Wielowątkowość Trwałość Java i Internet Czym jest Internet? Programowanie po stronie klienta Programowanie po stronie serwera Osobny obszar: aplikacje Analiza i projektowanie Etap 0. Zrób plan Etap 1. Co mamy stworzyć? Etap 2. Jak to zrobimy? Etap 3. Zbuduj jądro Etap 4. Przeglądaj przypadki użycia Etap 5. Ewolucja Planowanie popłaca Programowanie ekstremalne (Extreme Programming) Najpierw napisz testy Programowanie w parach Dlaczego Java odnosi sukcesy Systemy jest łatwiej opisać i zrozumieć Maksymalne zwiększenie wydajności dzięki bibliotekom...81 Obsługa błędów Programowanie na wielką skalę Strategie przejścia Wskazówki Problemy zarządzania Java kontra C Podsumowanie "3.+o'7783/783,/8/ Dostęp do obiektów poprzez referencje Wszystkie obiekty trzeba stworzyć Gdzie przechowujemy dane? Przypadek specjalny: typy podstawowe Tablice w Javie

4 #4786/- Nigdy nie ma potrzeby niszczenia obiektu Zasięg Zasięg obiektów Tworzenie nowych typów danych klasa Pola i metody Metody, argumenty i wartości zwracane Lista argumentów Tworzenie programu w Javie Widoczność nazw Wykorzystanie innych komponentów Słowo kluczowe static Twój pierwszy program w Javie Kompilacja i uruchomienie Komentarze oraz dokumentowanie kodu Dokumentacja w komentarzach Składnia Osadzony odwołanie do innych klas Znaczniki dokumentowania klas Znaczniki dokumentacji zmiennych Znaczniki dokumentacji metod Przykład dokumentowania kodu Styl programowania Podsumowanie Ćwiczenia "3.+o#8/63;+2/3/23-;32+2+ Używanie operatorów Javy Kolejność Przypisanie Operatory matematyczne Operatory zwiększania i zmniejszania Operatory relacji Operatory logiczne Operatory bitowe Operatory przesunięcia Operator trójargumentowy if-else Przecinek Łańcuchowy operator Najczęstsze pułapki przy używaniu operatorów Operatory rzutowania W Javie nie ma sizeof

5 $2212+:+ Powtórka z kolejności operatorów Kompendium operatorów Sterowanie wykonaniem Prawda i fałsz if-else return Iteracja do-while for break i continue switch Podsumowanie Ćwiczenia "3.+o / Gwarantowana inicjalizacja przez konstruktor Przeciążanie metod Rozróżnianie przeciążonych metod Przeciążanie a typy podstawowe Przeciążanie przez wartości zwracane Konstruktory domyślne Słowo kluczowe this Sprzątanie: finalizacja i odśmiecanie pamięci Do czego służy finalize()? Musimy przeprowadzić sprzątanie Warunek śmierci Jak działa odśmiecacz pamięci Inicjalizacja składowych Określanie sposobu inicjalizacji Inicjalizacja w konstruktorze Inicjalizacja tablic Tablice wielowymiarowe Podsumowanie Ćwiczenia "3.+o%6;+2/4//28+- Pakiet jednostka biblioteczna Tworzenie unikatowych nazw pakietów Własna biblioteka narzędziowa Wykorzystanie instrukcji import do zmiany zachowania Pułapka związana z pakietami

6 #4786/- Modyfikatory dostępu w Javie Dostęp przyjazny public: dostęp do interfejsu private: nie dotykać! protected: pewien rodzaj przyjacielskości Interfejs i implementacja Dostęp do klas Podsumowanie Ćwiczenia "3.+o'/36382/;3678+2/+7 Składnia kompozycji Składnia dziedziczenia Inicjalizacja klasy bazowej Łączenie kompozycji i dziedziczenia Zapewnienie poprawnego sprzątania Ukrywanie nazw Wybór między kompozycją a dziedziczeniem protected Przyrostowe tworzenie oprogramowania Rzutowanie w górę Dlaczego w górę? Słowo kluczowe final Zmienne ostateczne Metody ostateczne Klasy ostateczne Ostrożnie z ostatecznością Inicjalizacja i ładowanie klas Inicjalizacja w przypadku dziedziczenia Podsumowanie Ćwiczenia "3.+o 3360 Rzutowanie w górę raz jeszcze Zapominanie o typie obiektu Mały trik Wiązanie wywołania metody Uzyskiwanie poprawnego działania Rozszerzalność

7 $2212+:+ Przesłanianie kontra przeciążanie Klasy i metody abstrakcyjne Konstruktory a polimorfizm Kolejność wywołań konstruktorów Dziedziczenie a metoda finalize() Zachowanie się metod polimorficznych wewnątrz konstruktorów Projektowanie z użyciem dziedziczenia Czyste dziedziczenie kontra rozszerzanie Rzutowanie w dół a identyfikacja typu w czasie wykonania Podsumowanie Ćwiczenia "3.+o28/60/7+7;/;2862/ Interfejsy Wielokrotne dziedziczenie w Javie Rozszerzanie interfejsu poprzez dziedziczenie Grupowanie stałych Inicjalizacja pól interfejsów Zagnieżdżanie interfejsów Klasy wewnętrzne Klasy wewnętrzne a rzutowanie w górę Klasy wewnętrzne w metodach i zakresach Anonimowe klasy wewnętrzne Połączenie z klasą zewnętrzną Statyczne klasy wewnętrzne Odwoływanie się do obiektu klasy zewnętrznej Sięganie na zewnątrz z klasy wielokrotnie zagnieżdżonej Dziedziczenie po klasach wewnętrznych Czy klasy wewnętrzne mogą być przesłaniane? Identyfikatory klas wewnętrznych Dlaczego klasy wewnętrzne? Klasy wewnętrzne a szkielety sterowania Podsumowanie Ćwiczenia "3.+o 6/-3;;+2/3,/8; Tablice Tablice to obiekty Tablice jako wartości zwracane Klasa Arrays Wypełnianie tablicy Kopiowanie tablic

8 #4786/- Porównywanie tablic Porównywanie elementów tablic Sortowanie tablic Przeszukiwanie tablicy posortowanej Podsumowanie wiadomości o tablicach Wprowadzenie do kontenerów Wypisanie zawartości kontenerów Wypełnianie kontenerów Wada kontenera: nieznany typ Czasami mimo wszystko działa Tworzenie świadomej typu klasy ArrayList Iteratory Rodzaje kontenerów Interfejs Collection Interfejs List Stos na podstawie LinkedList Kolejka na podstawie LinkedList Interfejs Set SortedSet Interfejs Map SortedMap Haszowanie i kody haszujące Przesłonięcie metody hashcode() Przechowywanie referencji WeakHashMap Iteratory ponownie Wybór implementacji Wybór między listami Wybór implementacji zbioru Wybór implementacji odwzorowania Sortowanie i przeszukiwanie list Dodatkowe usługi Niemodyfikowalne kontenery Collection i Map Synchronizacja Collection i Map Nie obsługiwane operacje Kontenery Java 1.0 i Vector i Enumeration Hashtable Stack BitSet Podsumowanie Ćwiczenia

9 $2212+:+ "3.+o,7o91+,o.;+433-;8; Podstawy obsługi wyjątków Parametry wyjątków Przechwytywanie wyjątku Blok try Obsługa wyjątków Tworzenie własnych wyjątków Specyfikacja wyjątków Przechwytywanie dowolnego wyjątku Ponowne wyrzucanie wyjątków Standardowe wyjątki Javy Specjalny przypadek RuntimeException Robienie porządków w finally Do czego służy finally? Pułapka: zagubiony wyjątek Ograniczenia wyjątków Konstruktory Dopasowywanie wyjątków Wskazówki Podsumowanie Ćwiczenia "3.+o#78/;/-+;-+;+:/ Klasa File Wypisywanie zawartości katalogu Operacje na katalogach Wejście i wyjście Typy InputStream Typy OutputStream Dodawanie atrybutów i użytecznych interfejsów Czytanie z InputStream za pomocą FilterInputStream Zapis do OutputStream za pomocą FilterOutputStream Czytelnicy i pisarze Źródła i ujścia danych Modyfikacja zachowania strumienia Klasy nie zmienione Osobna i samodzielna RandomAccessFile Typowe zastosowania strumieni I/O Strumienie wejścia Strumienie wyjścia Strumienie typu pipe

10 #4786/- Standardowe wejście-wyjście Czytanie ze standardowego wejścia Zamiana System.out na PrintWriter Przekierowywanie standardowego wejścia-wyjścia Kompresja Prosta kompresja do formatu GZIP Przechowywanie wielu plików w formacie Zip Archiwa Javy (JAR) Serializacja obiektów Odnajdywanie klasy Kontrola serializacji Stosowanie trwałości Atomizacja wejścia StreamTokenizer StringTokenizer Sprawdzanie poprawności stylu Podsumowanie Ćwiczenia "3.+o./ ;-+7/;32+2+ Potrzeba mechanizmu RTTI Obiekt Class Sprawdzanie przed rzutowaniem Składnia RTTI Odzwierciedlenia informacja o klasie w czasie wykonania Ekstraktor metod klasowych Podsumowanie Ćwiczenia "3.+o$;36/2/3/2/+4/8; Podstawy tworzenia apletów Ograniczenia apletów Zalety apletów Szkielet aplikacji Uruchamianie apletów w przeglądarce internetowej Wykorzystanie programu Appletviewer Testowanie apletów Uruchamianie apletów z wiersza poleceń Platforma prezentacyjna Wykorzystanie Windows Explorer Tworzenie przycisku

11 $2212+:+ Przechwytywanie zdarzenia Pola tekstowe Rozmieszczenie komponentów BorderLayout FlowLayout GridLayout GridBagLayout Bezpośrednie pozycjonowanie BoxLayout Najlepsze rozwiązanie? Model zdarzeń w Swingu Rodzaje zdarzeń i odbiorców Śledzenie wielu zdarzeń Katalog komponentów Swing Przyciski Ikony Podpowiedzi Pola tekstowe Ramki Panele z paskami przewijania Miniedytor Pola wyboru Przyciski wyboru Listy rozwijane Listy Zakładki Okienka komunikatów Menu Menu kontekstowe Rysowanie Okienka dialogowe Okienka dialogowe plików HTML w komponentach Swing Suwaki i paski postępu Drzewa Tabele Zmiana wyglądu aplikacji Schowek Pakowanie apletu do pliku JAR Techniki programowania Dynamiczne dołączanie zdarzeń Oddzielenie logiki biznesowej od interfejsu użytkownika Postać kanoniczna

12 #4786/- Programowanie wizualne i Beany Czym jest Bean? Wydobycie informacji o Beanie poprzez introspektor Bardziej wyszukany Bean Pakowanie Beana Bardziej złożona obsługa Beanów Więcej o Beanach Podsumowanie Ćwiczenia "3.+o'/3;83;3 Interaktywny interfejs użytkownika Dziedziczenie z klasy Thread Wielowątkowość do budowy interaktywnego interfejsu Połączenie wątku z klasą główną Tworzenie wielu wątków Wątki demony Współdzielenie ograniczonych zasobów Niewłaściwy dostęp do zasobów Jak Java współdzieli zasoby JavaBeans w innym wydaniu Blokowanie Zablokowanie Impas Priorytety Odczyt i ustawienie priorytetów Grupy wątków Runnable Zbyt wiele wątków Podsumowanie Ćwiczenia "3.+o 6/8;+6+2/ / Programowanie sieciowe Identyfikowanie maszyny Gniazda Obsługa wielu klientów Datagramy Użycie adresów URL w apletach Więcej o sieciach

13 $2212+:+ Java DataBase Connectivity (JDBC) Uruchamianie przykładu Wersja programu wyszukującego z interfejsem graficznym Dlaczego interfejs JDBC wydaje się tak skomplikowany Bardziej wyrafinowany przykład Serwlety Podstawowy serwlet Serwlety a wielowątkowość Obsługiwanie sesji w serwletach Uruchamianie przykładowych serwletów Java Server Pages Obiekty niejawne Dyrektywy JSP Elementy skryptowe JSP Wydobywanie pól i ich wartości Atrybuty strony JSP oraz zasięg ich ważności Manipulowanie sesjami z poziomu stron JSP Tworzenie i modyfikowanie cookies Podsumowanie tematu JSP RMI (Remote Method Invocation) Odległe interfejsy Implementacja odległego interfejsu Tworzenie namiastki i szkieletu Użycie odległego obiektu CORBA Podstawy CORBA Przykład Aplety Javy i CORBA CORBA a RMI Enterprise JavaBeans JavaBeans a EJB Specyfikacja EJB Komponenty EJB Części komponentu EJB Działanie EJB Rodzaje EJB Tworzenie EJB Podsumowanie EJB Jini serwisy rozproszone Zadania Jini Co to jest Jini? Jak to działa Proces odkrywania

14 #4786/- Proces dołączenia Proces lokalizacji Rozdzielenie interfejsu od implementacji Abstrakcja systemów rozproszonych Podsumowanie Ćwiczenia / 6/+;+2/;6+-+2/3,/8; Przekazywanie referencji Odnośniki Tworzenie kopii lokalnych Przekazywanie przez wartość Klonowanie obiektów Dodanie klonowalności do klasy Udane klonowanie Działanie Object.clone() Klonowanie złożonego obiektu Głęboka kopia ArrayList Głęboka kopia poprzez serializację Dodanie klonowalności w dół hierarchii Dlaczego takie dziwne rozwiązanie? Sterowanie klonowalnością Konstruktor kopiujący Klasy tylko do odczytu Tworzenie klas tylko do odczytu Wada obiektów odpornych na zmiany Niezmienne obiekty String Klasy String i StringBuffer Łańcuchy są wyjątkowe Podsumowanie Ćwiczenia /+:++8:/28/60+-/ Wywołanie metody rodzimej Generator pliku nagłówkowego javah Maglowanie nazw i sygnatury funkcji Implementacja biblioteki dynamicznej Dostęp do funkcji JNI: argument JNIEnv Dostęp do obiektów typu String Przekazywanie i używanie obiektów Javy JNI i wyjątki Javy

15 $2212+:+ JNI a wątki Wykorzystanie istniejącego kodu Dodatkowe informacje /'7+; ; Projekt Implementacja /+73, Oprogramowanie Książki Analiza i projektowanie Python Lista moich książek #363;.

16 '/3;83;3 Obiekty zapewniają nam sposób podziału programu na niezależne części. Często jednak musimy również podzielić program na rozłączne i niezależnie działające podzadania. Każde z takich niezależnych podzadań jest nazywane wątkiem (ang. thread) i programuje się go tak, jakby każdy wątek działał samodzielnie, posiadając procesor dla siebie. Pewien mechanizm wewnętrzny w rzeczywistości dzieli czas procesora, ale przeważnie nie musimy się tym martwić, dzięki czemu programowanie wielu wątków jest zadaniem znacznie łatwiejszym. Proces jest wykonującym się programem z własną przestrzenia adresową. Wielozadaniowy system operacyjny jest w stanie uruchomić więcej niż jeden proces (program) równocześnie, chociaż z zewnątrz wygląda, jakby każdy działał samotnie, poprzez okresowe przydzielanie mu cykli procesora. Wątek z kolei jest pojedynczym sekwencyjnym przepływem sterowania, działającym w ramach procesu. Pojedynczy proces może zatem posiadać wiele jednocześnie wykonywanych wątków. Istnieje wiele zastosowań wielowątkowości, ale zasadniczo będziemy ją wykorzystywać do wiązania pewnej części programu z konkretnym zdarzeniem lub zasobem, i z tego powodu nie będziemy chcieli pozwolić na wstrzymanie pracy reszty programu. Zatem wątek skojarzony ze zdarzeniem albo zasobem ma działać niezależnie od programu głównego. Dobrym przykładem jest przycisk zamknij nie chcemy być zmuszani do badania stanu przycisku w każdym fragmencie napisanego kodu, ale mimo to chcemy, aby przycisk reagował na akcję tak, jakbyśmy sprawdzali go regularnie. Faktycznie jednym z najczęstszych powodów wykorzystania wielowątkowości jest stworzenie interfejsu użytkownika zdolnego do reagowania. 28/6+8;228/60/7983;2+ Na początek rozważmy program przeprowadzający działania intensywnie wykorzystujące procesor w ten sposób ignoruje on działania użytkownika. Ten kombinowany aplet-aplikacja pokaże wyniki działającego licznika: -3928/6+:+ /6/+19-28/60/7983;2+ +44/8-3./3928/6;.8/18 +44/ :+7; :++;8/:/28

17 $2212+: :++; ,69-//-/7;21 49, /6/8/2.744/8 46:+8/ :+8/ /;98832#8+68Г 32002/; /o- 46:+8/$/8/.82/;$/8/. 46:+8/,33/ / 49,-: /6-41/8328/28 +2/ -47/8+3982/;3; /2/62/;# /2/62/; ,-:3.13 ;/869/ 86 $6/+.7// /66948/.-/4832/ #78// /6; /8$/828/1/683# #8+684// /2/6 49,-: /6036/.-832:/28/ // /2/6 49,-: /6036/.-832:/28/ ,-78+8-:3.+2# /6922/;3928/6ГГ < W tym miejscu książki Swing i budowa apletu powinny być już wystarczająco dobrze znane z rozdziału 13. Program jest ciągle zajęty wewnątrz pętli w metodzie 13 zamieszcza tam aktualną wartość zmiennej -3928/6 w polu 8klasy $/8/. i ciągle inkrementuje tę zmienną. Część nieskończonej pętli wewnątrz 13 zajmuje się wywoływaniem metody 7//4. Metoda ta musi być skojarzona z obiektem $6/+. i okazuje się, iż każda aplikacja ma pewien wątek skojarzony ze sobą (w istocie Java bazuje na wątkach i w aplikacji zawsze są jakieś działające). Zatem niezależnie od tego, czy otwarcie stosujemy wątki, możemy pozyskać aktualny wątek używany przez program dzięki klasie $6/+. i wywołać jej statyczną metodę 7//4.

18 "3.+o'/3;83;3 Zwróć uwagę, iż 7//4 może wyrzucić wyjątek 28/66948/.-/4832, mimo że jest to uważane jest za nieprzyjazny sposób przerywania wątku i powinno się tego unikać (powtarzam jeszcze raz, wyjątki są dla sytuacji wyjątkowych, a nie zwykłego przepływu sterowania). Przerywanie uśpionego wątku zostało umożliwione, aby wspierać przyszłe właściwości języka. Kiedy przycisk zostanie naciśnięty, wywołana zostanie metoda 13. Analizując 13, można naiwnie pomyśleć (tak jak ja), iż powinna ona pozwolić na wielowątkowość, ponieważ usypia. Dokładniej: kiedy metoda jest uśpiona, to mogłoby się zdawać, że procesor mógłby zająć się monitorowaniem innych przycisków. Ale okazuje się, iż prawdziwy problem tkwi w tym, iż wyjście z 13 nigdy nie nastąpi, jako że ma ona nieskończoną pętlę, a to oznacza, że metoda /6036/. również nie odda sterowania. Ponieważ utknęliśmy w metodzie /6036/. po pierwszym wciśnięciu przycisku, program nie może obsłużyć żadnych innych zdarzeń (aby mimo wszystko wyjść, trzeba w jakiś sposób zabić proces najłatwiejszy to wciśnięcie Control-C w okienku konsoli, jeśli tam został uruchomiony. Jeżeli uruchomienie miało miejsce w przeglądarce, to trzeba zamknąć okno przeglądarki). Podstawowym problemem jest to, iż 13 powinna kontynuować swoje działanie, ale równocześnie wymagamy, aby się zakończyła, by również metoda /6036/. mogła się zakończyć i interfejs użytkownika mógł kontynuować reagowanie na działania użytkownika. W metodzie konwencjonalnej, takiej jak 13, nie da się kontynuować i w tym samym czasie zwrócić sterowania do reszty programu. Brzmi to jak rzecz niemożliwa do osiągnięcia, ponieważ procesor musiałby być w dwóch miejscach programu naraz, ale jest to właśnie iluzja, jaką dają wątki. Model wielowątkowy (i jego obsługa w Javie) jest dogodnością programistyczną, upraszczającą zarządzanie kilkoma operacjami równocześnie w pojedynczym programie. W przypadku wątków procesor będzie skakał i przydzielał każdemu wątkowi trochę własnego czasu. Wątek jest świadomy przydzielenia procesora, a czas procesora jest w rzeczywistości podzielony między wszystkie takie wątki. Wyjątkiem od tej reguły jest przypadek, kiedy program działa na wielu procesorach. Jedną z najwspanialszych rzeczy dotyczących wątków jest to, iż można abstrahować od tej warstwy do tego stopnia, iż nie ma potrzeby, by kod wiedział, czy naprawdę będzie działał na jedynym czy na wielu procesorach. Zatem wątki są sposobem na tworzenie w sposób przezroczysty dla twórcy programów skalowalnych. Zastosowanie wątków zmniejsza w pewnym stopniu wydajność, ale polepszenie obsługi sieci w projektowaniu programu, zarządzanie zasobami i wygoda użytkownika są bardzo często znacznie ważniejsze. Oczywiście, jeśli mamy więcej niż jeden procesor, to system operacyjny może dedykować każdy procesor dla zbioru wątków czy nawet pojedynczego wątku i cały program może działać znacznie szybciej 1. Wielozadaniowość i wielowątkowość zdaje się być najbardziej rozsądnym sposobem użytkowania systemów wieloprocesorowych. /.-/2/+7$6/+. Najprostszym sposobem na stworzenie wątku jest dziedziczenie z klasy $6/+., posiadającej wszystkie funkcje, konieczne do tworzenia i uruchomienia wątków. Najważniejszą metodą tej klasy jest metoda 692, którą należy przesłonić, aby wątek wypełniał nasze rozkazy. Tak więc metoda 692 będzie uruchamiana równocześnie przez inne wątki programu. k 1 Jeżeli program jest napisany jako jednowątkowy, to niezależnie od liczby procesorów w komputerze będzie się wykonywał tylko na jednym przyp. red.

19 $2212+:+ Następny przykład tworzy pewną liczbę wątków, które nadzoruje poprzez przypisanie każdemu z nich unikatowego numeru generowanego dzięki zmiennej statycznej. Metoda 692 została przesłonięta, aby odliczać w dół przebiegi zamieszczonej tam pętli, a kończy pracę, gdy licznik osiągnie zero (w miejscu wyjścia z 692 wątek zostaje przerwany). -#4/$6/+.+: o+.9-+;8; 49,--+77#4/$6/+./8/2.7$6/+. 46:+8/ ;2 46:+8/ / :+8/2886/+.9,/686/ ,-#4/$6/+. #78/ $;36/2/86/+.9,/6 49,-:3.692 ;/869/ #78/ '8/ 86/+.9,/ ; ;26/ ,-78+8-:3.+2# /;#4/$6/ #78/ '778/;8378+o / < Metoda 692 praktycznie zawsze zawiera pewien rodzaj pętli, która wykonuje się, dopóki wątek nie będzie nam już potrzebny, a zatem trzeba ustalić warunek przerwania pętli (albo, jak w powyższym przykładzie, po prostu wyskoczyć, stosując 6/8962). Często metoda ta jest implementowana jako pętla nieskończona, co oznacza, iż o ile nie będzie jakichś zewnętrznych czynników, które zmuszą ją do przerwania, to będzie trwać bezustannie. W metodzie +2 następuje stworzenie i uruchomienie grupy wątków. Wywoływana metoda klasy $6/+. dokonuje specjalnej inicjacji wątku i automatycznie wywołuje 692. Tak więc przebiega to w następujący sposób aby zbudować obiekt, wywoływany jest jego konstruktor, metoda konfiguruje wątek i wywołuje metodę 692. Jeśli nie wywołamy (co można zrobić w konstruktorze, jeśli jest takowy), to wątek nigdy nie wystartuje. Wynik programu po uruchomieniu prezentuje się na przykład tak (może różnić się przy kolejnych uruchomieniach): $;36/2/ $;36/2/ $;36/2/ $;36/2/ $;36/2/ '8/ '8/ '8/ '8/ '8/ '8/ '8/

20 "3.+o'/3;83;3 '8/ '8/ '8/ '778/;8378+o / '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ '8/ Jak pewnie zauważyłeś, nigdzie w przykładnie nie ma wywołania 7//4, no i wynik działania wskazuje na to, iż każdy wątek dostaje porcję czasu procesora, w którym jest uruchamiany. Pokazuje to, iż metoda 7//4, zakładająca istnienie wątku, aby mogła się wykonać, nie jest potrzebna ani przy aktywacji, ani dezaktywacji wielowątkowości. Jest po prostu kolejną metodą. Widać także, iż wątki nie działają w takiej kolejności, w jakiej zostały utworzone. Faktycznie kolejność zajmowania procesora przez istniejący zestaw wątków pozostaje nieokreślona, dopóki nie ustalimy priorytetów, stosując metodę 7/ z klasy $6/+.. Kiedy w metodzie +2 tworzone są obiekty $6/+., referencje do któregokolwiek z nich nie są wyłapywane. Zwykły obiekt byłby poddany odśmiecaniu pamięci, ale nie wątek. Każdy obiekt $6/+. rejestruje się w taki sposób, iż w rzeczywistości gdzieś istnieje do niego referencja i odśmiecacz pamięci nie może się go pozbyć. '/3;83;3.3,9.3;28/6+8;2/1328/60/79 Teraz możemy już rozwiązać problem ujawniony w 3928/6+:+. Sztuczka polega na zamieszczeniu podzadania to znaczy pętli znajdującej się wewnątrz 13 wewnątrz metody 692 jakiegoś wątku. Kiedy użytkownik wciśnie przycisk 78+68, wystartuje wątek, ale po chwili jego tworzenie zostanie zakończone, metoda obsługi zdarzeń odda sterowanie, więc główna praca programu może przebiegać dalej (obserwowanie i reakcja na zdarzenia interfejsu użytkownika). Oto rozwiązanie: -3928/6+:+ "/+19-28/60/7983;2+;36789-;28 +44/8-3./3928/6;.8/18 +44/ :+7; :++; :++;8/:/ ,69-//-/7;21

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

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

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

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

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

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

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku. Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

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

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

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

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

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

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

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

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty

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

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

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

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

java.util.* :Kolekcje Tomasz Borzyszkowski

java.util.* :Kolekcje Tomasz Borzyszkowski java.util.* :Kolekcje Tomasz Borzyszkowski Wstęp Kolekcje w Java dają programiście pewien standardowy sposób radzenia sobie z przetwarzaniem grup obiektów. Implementacja kolekcji w Java składa się z następujących

Bardziej szczegółowo

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Załącznik nr 7 do Zarządzenia Rektora nr 10/1 z dnia 1 lutego 01r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 01/013 Programowanie

Bardziej szczegółowo

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop. 2016 Spis treści Spis rysunków 11 Spis tabel 13 Przedmowa 15 Wprowadzenie 17 Podziękowania 27 O autorach 29 1 Wprowadzenie

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

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

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Uruchomienie programu powoduje stworzenie nowego procesu przez system operacyjny. Proces wykonywany program wraz

Bardziej szczegółowo

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Java. Æwiczenia zaawansowane

Java. Æwiczenia zaawansowane IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

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

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Programowanie obiektowe (Java) Nazwa modułu w języku angielskim Object oriented

Bardziej szczegółowo

C++. Æwiczenia zaawansowane

C++. Æwiczenia zaawansowane IDZ DO PRZYK ADOWY ROZDZIA SPIS TRECI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG C++. Æwiczenia zaawansowane Autor: Andrzej Stasiewicz ISBN: 83-7361-766-3 Format: B5, stron: 120 TWÓJ KOSZYK

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Programowanie w języku Java 7 z biblioteką SWING

Programowanie w języku Java 7 z biblioteką SWING Programowanie w języku Java 7 z biblioteką SWING Opis Szkolenie przeznaczone jest dla osób bez większego doświadczenia w programowaniu. Pokrywa ono większość składni języka Java, skupiając się na podstawowych

Bardziej szczegółowo

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

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

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

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

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 dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

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

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i Program szkolenia: Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i JFace Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Kompleksowe tworzenie aplikacji

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

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

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

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

Programowanie w języku Java (OCA+OCP)

Programowanie w języku Java (OCA+OCP) Kod szkolenia: Tytuł szkolenia: OCAP Programowanie w języku Java (OCA+OCP) Przygotowanie do uzyskania certyfikatów OCAJP oraz OCPJP Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do osób chcących

Bardziej szczegółowo

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane

Bardziej szczegółowo

Spis treści. Wprowadzenie 15

Spis treści. Wprowadzenie 15 Spis treści Wprowadzenie 15 1. Mechanizmy języka C++ 19 1.1. Struktura programu jednostki translacji.................. 21 1.1.1. Składnia tekstu źródłowego...................... 22 1.1.2. Preprocesor...

Bardziej szczegółowo

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7 5.0 5.3.3.5 Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7 Wprowadzenie Wydrukuj i uzupełnij to laboratorium. W tym laboratorium, będziesz korzystać z narzędzi administracyjnych

Bardziej szczegółowo

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista 5.0 5.3.3.6 Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista Wprowadzenie Wydrukuj i uzupełnij to laboratorium. W tym laboratorium, będziesz korzystać z narzędzi administracyjnych

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

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

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

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

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

Laboratorium Systemów Operacyjnych

Laboratorium Systemów Operacyjnych Laboratorium Systemów Operacyjnych Użytkownicy, Grupy, Prawa Tworzenie kont użytkowników Lokalne konto pozwala użytkownikowi na uzyskanie dostępu do zasobów lokalnego komputera. Konto domenowe pozwala

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia

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

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP 5.0 5.3.3.7 Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows XP Wprowadzenie Wydrukuj i uzupełnij to laboratorium. W tym laboratorium, będziesz korzystać z narzędzi administracyjnych

Bardziej szczegółowo

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/05_03/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 Ręczne zakładanie kont użytkowników (D1) Jak ręcznie założyć konto w systemie

Bardziej szczegółowo

Rozdział 5. Administracja kontami użytkowników

Rozdział 5. Administracja kontami użytkowników Rozdział 5. Administracja kontami użytkowników Ćwiczenia zawarte w tym rozdziale pozwolą przygotować oddzielne środowisko pracy dla każdego użytkownika komputera. Windows XP, w porównaniu do systemów Windows

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

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop. 2017 Spis treści Wstęp 11 Część I Skrypty PHP dynamiczne generowanie stron internetowych 15 Rozdział 1. Podstawy 17 Czym jest PHP? 17 Krótka

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

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

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

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

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE. C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,

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

UNIFON podręcznik użytkownika

UNIFON podręcznik użytkownika UNIFON podręcznik użytkownika Spis treści: Instrukcja obsługi programu Unifon...2 Instalacja aplikacji Unifon...3 Korzystanie z aplikacji Unifon...6 Test zakończony sukcesem...9 Test zakończony niepowodzeniem...14

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo