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

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

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

Multimedia JAVA. Historia

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bardziej szczegółowo

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

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

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

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

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu

Bardziej szczegółowo

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka Sesje, ciasteczka, wyjątki Nie sposób wyobrazić sobie bez nich takich podstawowych zastosowań, jak logowanie użytkowników czy funkcjonowanie koszyka na zakupy. Oprócz tego dowiesz się, czym są wyjątki,

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny semestr III, studia stacjonarne I stopnia Rok akademicki 2015/2016 Pracownia nr 1 (21/23.09.2015) Rok akademicki 2015/2016, Pracownia nr 1 2/22

Bardziej szczegółowo

10. Programowanie obiektowe w PHP5

10. Programowanie obiektowe w PHP5 Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać

Bardziej szczegółowo

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.

Bardziej szczegółowo

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

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

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

BIOS, tryb awaryjny, uśpienie, hibernacja

BIOS, tryb awaryjny, uśpienie, hibernacja BIOS, tryb awaryjny, uśpienie, hibernacja Wykład: BIOS, POST, bootstrap loader, logowanie, uwierzytelnianie, autoryzacja, domena, tryb awaryjny, stan uśpienia, hibernacja, wylogowanie, przełączanie użytkownika,

Bardziej szczegółowo

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie na poziomie sprzętu. Programowanie w Windows API Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Spis treści. 1 Java T M

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

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

Przewodnik Szybki start

Przewodnik Szybki start Przewodnik Szybki start Program Microsoft Access 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zmienianie rozmiaru ekranu lub

Bardziej szczegółowo

Część I Rozpoczęcie pracy z usługami Reporting Services

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

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

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

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

Wprowadzenie do programowania

Wprowadzenie do programowania do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar

Bardziej szczegółowo

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Bardziej szczegółowo

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki w oparciu o przeglądarkę Microsoft Internet Explorer System stworzony został w oparciu o aktualne narzędzia i programy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

Jeśli chcesz poznać Javę, nie szukaj dalej oto pierwsza książka techniczna z graficznym interfejsem użytkownika!

Jeśli chcesz poznać Javę, nie szukaj dalej oto pierwsza książka techniczna z graficznym interfejsem użytkownika! Jeśli chcesz poznać Javę, nie szukaj dalej oto pierwsza książka techniczna z graficznym interfejsem użytkownika! Obejmuje Javę 5.0 Technologie oparte na Javie są wszędzie jeśli piszesz oprogramowanie i

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

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

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - S t r o n a 2 SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - Copyright by Artur Niewiarowski 2013 ISBN: 978-83-937802-0-4 - Artur Niewiarowski Self-Publishing - All rights reserved. Wszelkie prawa

Bardziej szczegółowo

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

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

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

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

Bardziej szczegółowo

Temat: Organizacja skoroszytów i arkuszy

Temat: Organizacja skoroszytów i arkuszy Temat: Organizacja skoroszytów i arkuszy Podstawowe informacje o skoroszycie Excel jest najczęściej wykorzystywany do tworzenia skoroszytów. Skoroszyt jest zbiorem informacji, które są przechowywane w

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1 Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje Internetowe, Servlety, JSP i JDBC Aplikacje Internetowe, Servlety, JSP i JDBC Opis Java 2 Enterprise Edition (JEE) jest potężną platformą do tworzenia aplikacji webowych. PLatforma JEE oferuje wszystkie zalety tworzenia w Javie plus wszechstronny

Bardziej szczegółowo

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne Programowanie w Javie nazwa SYLABUS A. Informacje ogólne Elementy składowe sylabusu Nazwa jednostki prowadzącej kierunek Nazwa kierunku studiów Poziom kształcenia Profil studiów Forma studiów Kod Język

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo