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

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

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

Bardziej szczegółowo

Programowanie obiektowe

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

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

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

Bardziej szczegółowo

Multimedia JAVA. Historia

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

Rozdział 4 KLASY, OBIEKTY, METODY

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Dziedziczenie. Tomasz Borzyszkowski

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

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

Bardziej szczegółowo

Programowanie 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

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

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

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

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

Bardziej szczegółowo

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

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

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

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

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

Podstawy Programowania C++

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

Programowanie w języku Java (OCA+OCP)

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

Bardziej szczegółowo

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

TEMAT : KLASY DZIEDZICZENIE

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

Języki i techniki programowania Ćwiczenia 2

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

Bardziej szczegółowo

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

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

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

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

Bardziej szczegółowo

Spis treści. Wprowadzenie 15

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

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

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

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

Wstęp do programowania 2

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

Bardziej szczegółowo

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

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

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

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

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

Spis treści. O autorze (11) O redaktorze technicznym (11) Wstęp (13) Rozdział 1. Podstawy Javy (19)

Spis treści. O autorze (11) O redaktorze technicznym (11) Wstęp (13) Rozdział 1. Podstawy Javy (19) Spis treści O autorze (11) O redaktorze technicznym (11) Wstęp (13) Rozdział 1. Podstawy Javy (19) Pochodzenie Javy (20) o Java a języki C i C++ (21) o Java a C# (22) Java a Internet (22) o Aplety Java

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

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

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne

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

Przewodnik użytkownika (instrukcja) AutoMagicTest

Przewodnik użytkownika (instrukcja) AutoMagicTest Przewodnik użytkownika (instrukcja) AutoMagicTest 0.1.21.137 1. Wprowadzenie Aplikacja AutoMagicTest to aplikacja wspierająca testerów w testowaniu i kontrolowaniu jakości stron poprzez ich analizę. Aplikacja

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

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

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

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

dr Krzysztof Podlaski

dr Krzysztof Podlaski dr Krzysztof Podlaski Wydział Fizyki i Informatyki Stosowanej 19.11.2010 Łódź Wstęp do Java, wykład 3 1 Biblioteki standardowe Obszerny zestaw Klas i Interfejsów Obsługa Strumieni We-Wy Dysków Sieci java.io,

Bardziej szczegółowo

Rozdział 1. Zagadnienia podstawowe

Rozdział 1. Zagadnienia podstawowe Rozdział 1. Zagadnienia podstawowe Ćwiczenia zawarte w tym rozdziale pozwolą poznać zagadnienia związane z rozpoczęciem i zakończeniem pracy w środowisku Windows XP. Omówiony zostanie również nowy mechanizm

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

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

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

Memeo Instant Backup Podręcznik Szybkiego Startu

Memeo Instant Backup Podręcznik Szybkiego Startu Wprowadzenie Memeo Instant Backup pozwala w łatwy sposób chronić dane przed zagrożeniami cyfrowego świata. Aplikacja regularnie i automatycznie tworzy kopie zapasowe ważnych plików znajdujących się na

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

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

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

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

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

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

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

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

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

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

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości

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

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

Programowanie obiektowe

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

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

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

Komputery I (2) Panel sterowania:

Komputery I (2) Panel sterowania: Komputery I (2) Paweł Jamer Panel sterowania: Podstawowym miejscem z którego zarządzamy ustawieniami systemu Windows jest panel sterowania. Znaleźć tam możemy wszelkiego rodzaju narzędzia umożliwiające

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

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 C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia Bezpieczeństwo systemów komputerowych Java i JavaScript mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Java i JavaScript używane w celu dodania cech interaktywności do stron WWW mogą

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

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

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