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
|
|
- Magda Piątkowska
- 8 lat temu
- Przeglądów:
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ą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ółowoWykł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ółowoProgramowanie 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ółowoDariusz 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ółowoProgramowanie 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ółowoJava 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ółowoMultimedia 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ółowoJeś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ółowoCzym 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ółowoStworzenie 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ółowoProgramowanie 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ółowoAutor: 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ółowoProgramowanie 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ółowoObiekt 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ółowoRozdział 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ółowoWspół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ółowoWykł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ółowoProgramowanie 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ółowoObszar 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ółowoPę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ółowoDziedziczenie. 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ółowoPodczas 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ółowoWykł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ółowoMyś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ółowoPLAN 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ółowoProgramowanie 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ółowoPROE 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoznajdował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ółowoProgramowanie 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ółowoTEMAT : 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ółowoSmarty 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ółowoProgramowanie 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ółowoJę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ółowojava.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ółowoProgramowanie 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ółowoC# 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ółowo1 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ółowoXQTav - 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ółowoJava: 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ółowoLaboratorium 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ółowoPHP 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ółowoWielową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ółowoPodstawy 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ółowoKonstruktory. 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ółowoJava. Æ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ółowoSYSTEMY 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ółowoJAVA. 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ółowoInformatyka 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ółowoC++. Æ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ółowoWspół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ółowoProgramowanie 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ółowoDiagram 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ółowoPodstawy 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ółowoD:\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ółowoDokumentacja 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ółowoWprowadzenie 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ółowoPodstawy 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ółowoC++ - 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ółowoProgramowanie 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ółowo1. 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ółowoKurs 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ółowoTechnologie 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ółowoKompleksowe 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ółowoLab 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ółowoMateriał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ółowoPROE 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ółowoJava 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ółowoInterfejsy 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ółowoProgramowanie 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ółowoZadanie 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ółowoSpis 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ółowoLaboratorium - 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ółowoLaboratorium - 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ółowoUniwersytet 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ółowoJę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ółowoRok 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ółowoTechniki 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ółowoProgramowanie 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ółowoLaboratorium 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ółowoJĘ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ółowoWstę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ółowoWykł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ółowoLaboratorium - 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ółowoPracownia 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ółowoRozdział 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ółowoUML 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ółowoWskaź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ółowoWidoczność 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ółowoPHP 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ółowoAplikacje 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ółowoZaawansowane 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ółowoInformacje 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ółowoPodstawy 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ółowoWyją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ółowoC++ - 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ółowoIMIĘ 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ółowoUNIFON 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ółowoProgramowanie 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