JAVA. Tomasz Grzywacz. t.grzywacz@iel.waw.pl

Podobne dokumenty
Java jako język programowania

Programowanie obiektowe

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

Programowanie obiektowe zastosowanie języka Java SE

WPROWADZENIE DO JĘZYKA JAVA

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

Ćwiczenie 1. Przygotowanie środowiska JAVA

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

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

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

Wykład 1: Wprowadzenie do technologii Java

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

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

Programowanie w Internecie. Java

Programowanie obiektowe

WPROWADZENIE DO JĘZYKA JAVA

Wstęp do programowania w języku Java

Multimedia JAVA. Historia

Wstęp do programowania w języku Java

Java EE produkcja oprogramowania

1 Atrybuty i metody klasowe

Programowanie obiektowe. Wprowadzenie

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

Wstęp do programowania w języku Java

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

Podstawy języka Java. przygotował:

Język JAVA podstawy programowania

Wstęp do programowania w języku Java

Pakiety i interfejsy. Tomasz Borzyszkowski

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

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

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

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

Wykład 7: Pakiety i Interfejsy

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

Spis treści. 1 Java T M

Java Podstawy. Michał Bereta

Podstawy i języki programowania

Java Podstawy JUST JAVA Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej

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

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

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

Programowanie wieloplatformowe w Java

JDK można pobrać ze strony

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

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

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Programowanie w Javie

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

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Tworzenie aplikacji w języku Java

Podstawy otwartych języków programowania Język Java

Analiza i projektowanie aplikacji Java

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

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

Aplikacje RMI

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie Użytkowe. Dr. inż. Marcin Blachnik

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

Dziedziczenie. Tomasz Borzyszkowski

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

MentorGraphics ModelSim

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

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

Podstawy programowania. Wprowadzenie

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Programowanie Multimediów JAVA. wprowadzenie do programowania (2/3) [1]

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

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

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

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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 współbieżne i rozproszone

Wykład 2: Podstawy Języka

Podstawy, środowisko JDK, kompilacja programów z linii poleceń

Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz

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

Laboratorium Programowania Kart Elektronicznych

Wprowadzenie do biblioteki klas C++

Podstawy Języka Java

Języki i paradygmaty programowania - 1

Dokumentacja aplikacji Szachy online

Wybrane działy Informatyki Stosowanej

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Historia i podstawowe koncepcje. Tomasz Borzyszkowski

Programowanie w języku C++ Grażyna Koba

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

Dokumentacja do API Javy.

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

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

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Język Java część 2 (przykładowa aplikacja)

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

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

Transkrypt:

JAVA Tomasz Grzywacz t.grzywacz@iel.waw.pl

Literatura B. Eckel "Thinking in Java", Helion, 2001 Laurence Vanhelsuwe [i in.], Programujemy w Java, t.1-2, EXIT, Warszawa 1997 Kris Jamsa, Java, MIKOM, Warszawa 1998 B.Boone "Java dla programistów C i C++", WNT, 1998 Ken Arnold, James Gosling, Java, WNT, Warszawa 1999 Krzysztof Barteczko, Java. Wykłady i ćwiczenia, MIKOM, Warszawa 2000 Wiesław Porębski, Język Java, HELP, Michałowice 2000 Michael Morgan, Poznaj język Java 1.2, MIKOM, Warszawa 2001 2

Historia języka Java Język Java został opracowany w laboratoriach firmy Sun Microsystems pod kierunkiem Jamesa Goslinga 1990 - początek prac na projektem Green mającym na celu stworzenie oprogramowania dla sprzętu elektronicznego 1991 - opracowanie w ramach projektu Green kompilatora języka Oak (Object Application Kernel) 3

Historia języka Java 1994 - zakończenie prac nad przeglądarką WWW o nazwie WebRunner napisaną w języku Oak; nazwę WebRunner zmieniono później na HotJava 1995 - zmiana nazwy Oak na Java i oficjalna prezentacja języka na pokazie Sun World 95 4

Cechy języka Java język kompilowany do postaci kodu pośredniego (bajtowego) kod pośredni wykonywany przez maszynę wirtualną przenośność, niezależność od architektury i systemu operacyjnego zorientowanie obiektowe 5

Cechy języka Java jednokrotne dziedziczenie silna kontrola typów brak samodzielnych funkcji zewnętrznych tj. definiowanych poza klasami obsługa błędów poprzez wyjątki wymuszana przez kompilator 6

Cechy języka Java brak jawnych operacji na wskaźnikach pamięci bezpieczne konwersje w fazie wykonywania programu zarządzanie pamięcią, odzyskiwanie nieużytków wielopoziomowe mechanizmy bezpieczeństwa 7

Cechy języka Java wsparcie dla programowania współbieżnego, wielowątkowość wsparcie dla programowania sieciowego i aplikacji rozproszonych wsparcie dla zastosowań multimedialnych 8

Cechy języka Java liczne biblioteki (pakiety) standardowe i zewnętrzne możliwość ładowania klas i pakietów poprzez sieć modularyzacja poprzez mechanizm klas i pakietów 9

Infrastruktura języka Java obiektowy język programowania; pliki źródłowe z programami w języku Java mają po kropce rozszerzenie java biblioteki standardowe języka Java dostarczane razem z implementacją maszyny wirtualnej 10

Infrastruktura języka Java kompilator tłumaczący kod źródłowy programu w języku Java na kod pośredni nazywany kodem bajtowym (byte-code, B-code); pliki wynikowe mają po kropce rozszerzenie class i zawierają po jednej skompilowanej klasie lub interfejsie, pliki wynikowe grupowane są w logicznie powiązane całości tworzące program lub bibliotekę dzięki mechanizmowi pakietów; 11

Infrastruktura języka Java maszyna wirtualna Javy (JVM, Java Virtual Machine), wirtualny (programowy) procesor, który wykonuje kod pośredni ładowany z plików class lub archiwów z lokalnego systemu plików lub poprzez sieć 12

Infrastruktura języka Java maszyna wirtualna implementowana jest jako samodzielnie uruchamiany program lub wbudowywana np. w przeglądarkę WWW albo w system operacyjny (statycznie jako moduł lub biblioteka łączona dynamicznie) 13

Infrastruktura języka Java Podstawowa wersja środowiska Javy dostarczana jest przez firmę Sun Microsystems w postaci pakietu narzędzi Java 2 Software Developers Kit Standard Edition (Java 2 SDK SE) Zestaw przygotowywany jest dla różnych systemów operacyjnych Dawniej nazywany był Java Developers Kit (JDK) 14

Infrastruktura języka Java istnieje rozbudowana wersja pakietu - Enterprise Edition - zawierająca dodatkowe narzędzia oraz biblioteki środowisko zawierające tylko implementację maszyny wirtualnej dla określonego systemu operacyjnego i biblioteki standardowe Javy, bez narzędzi programistycznych, nazywane jest Java Runtime Environment i służy tylko do uruchamiania programów utworzonych w Javie 15

Maszyna wirtualna Javy w zestawie J2SDK kompilatorem jest program o nazwie javac (Java Compiler) pliki wynikowe mogą być pogrupowane logicznie w pakiet, który fizycznie może być zlokalizowany w pewnej drzewiastej strukturze katalogowej pakiet może być zarchiwizowany do formatu zip lub jar np. za pomocą programu narzędziowego jar dostarczanego w zestawie J2SDK 16

Maszyna wirtualna Javy 17

Programy w języku Java aplety - małe programy z interfejsem graficznym uruchamiane przez przeglądarkę WWW z wbudowaną obsługą Javy lub specjalną przeglądarkę apletów o nazwie appletviewer dostarczaną w pakiecie J2SDK; informacja o tym skąd i jaki plik class lub jar załadować wbudowywana jest w stronę WWW w postaci specjanego znacznika HTML, który dodatkowo może zawierać parametry uruchomieniowe apletu, 18

Programy w języku Java aplikacje - graficzne lub tekstowe programy uruchamiane przez maszynę wirtualną pracującą z poziomu systemu operacyjnego; implementacją maszyny wirtualnej w pakiecie J2SDK jest program java uruchamiany z linii komend wraz z parametrem określającym plik class lub jar w lokalnym systemie plików, od którego zaczyna się wykonywanie aplikacji 19

Programy w języku Java serwlet - program wykonywany po stronie serwera midlet - program wykonywany w urządzeniu przenośnym 20

Aplikacja jedna z klas musi zawierać metodę public static void main(string[ ] args) jeśli jest to klasa publiczna, nazwa tej klasy musi być taka sama jak nazwa pliku, w której jest zdefiniowana po kompilacji pliku źródłowego.java do Bkodu (polecenie javac) powstają pliki.class (dla każdej klasy osobny plik) 21

Aplikacja poleceniem java klasa.class zostaje załadowana przez JVM (Java Virtual Machine) i sterowanie zostaje przekazane do metody main( ), gdzie zaczyna się życie : tworzenie obiektów, odwołania do innych klas aplikacji 22

Aplikacja class Aplikacja1 { public static void main(string[] args) { System.out.println("Hello World!"); } } 23

Aplikacja Przy założeniu, że kod aplikacji zapisany został w pliku Aplikacja1.java kompilujemy go kompilatorem javac wydając polecenie: javac Aplikacja1.java 24

Aplikacja W wyniku kompilacji otrzymamy plik z kodem pośrednim Aplikacja1.class który możemy uruchomić wykorzystując interpreter java java Aplikacja1 25

Aplet import java.applet.*; import java.awt.*; public class Aplet1 extends Applet { public void init() { add(new Label( Hello world )); } } 26

Aplet Jeżeli kod źródłowy zapisany został w pliku Aplet1.java to kompilujemy go kompilatorem javac poleceniem: javac Aplet1.java 27

Aplet Po poprawnej kompilacji utworzony zostanie plik z kodem pośrednim Aplet1.class odwołanie do tego pliku umieszczamy w kodzie HTML przykładowej strony WWW za pomocą znacznika <applet> 28

Aplet <html> <head> <title>aplet1</title></head> <body> <applet code="aplet1.class" width="400" height="200"> </applet> </body> </html> 29

Aplet Jeżeli kod HTML strony WWW został zapisany w pliku Aplet1.html to działanie apletu możemy sprawdzić ładując stronę do przeglądarki lub korzystając z interpretera appletviewer poprzez podanie komendy: appletviewer Aplet1.html 30

AppletViewer 31

Widok w przeglądarce 32

Maszyna wirtualna Javy Wyszukiwaniem i ładowaniem plików zawierających kod pośredni zajmuje się moduł ładujący (byte-code loader, classloader) klasy, o ile to możliwe, ładowane są w pierwszej kolejności z lokalnego systemu plików a następnie z sieci 33

Maszyna wirtualna Javy Przed rozpoczęciem wykonywania załadowanego kodu bajtowego jest on sprawdzany przez weryfikator w czterech etapach weryfikacja pliku klasy: weryfikacja sygnatury pliku i jego struktury weryfikacja tworzenia podklas, stałych, wskaźników do obszarów pamięci 34

Maszyna wirtualna Javy weryfikacja kodu bajtowego: analiza metod, kontrola argumentów, inicjalizacji zmiennych, analiza stosu argumentów, badanie możliwości wystąpienia nadmiaru i niedomiaru podczas operacji arytmetycznych sprawdzenie podczas wykonania typu danych oraz dostępu: analiza poziomów dostępu do składowych prywatnych i chronionych 35

Maszyna wirtualna Javy Maszyna wirtualna może zawierać zintegrowany kompilator JIT, który "w locie" (Just-In-Time) generuje kod wykonywalny specyficzny dla danego komputera na podstawie kodu pośredniego. Przy pierwszym uruchomieniu kod pośredni trafia wprost do interpetera, ale jest kompilowany i zapamiętywany w postaci kodu wynikowego. Kolejne odwołanie do tego kodu powoduje, że wykorzystywany jest kod wynikowy, co przyśpiesza działanie programu nawet 20-krotnie. 36

Maszyna wirtualna Javy menedżer bezpieczeństwa jest klasą implementującą powłokę ochronną w układzie maszyna wirtualna/przeglądarka określa i nadzoruje politykę dostępu przeglądarki do zasobów lokalnych i sieciowych 37

Maszyna wirtualna Javy menedżer bezpieczeństwa musi wyrazić zgodę na uzyskanie przez aplet dostępu do następujących zasobów: komunikacji sieciowej, danych w lokalnym systemie plików, procesów systemu operacyjnego, modułu ładowania, bibliotek Javy 38

Maszyna wirtualna Javy przy standardowych ustawieniach aplety załadowane przez sieć nie mają np. dostępu do lokalnego systemu plików i mogą nawiązywać połączenia sieciowe tylko z serwerem, z którego zostały załadowane. aplikacje nie podlegają tym ograniczeniom i mogą uzyskiwać dostęp do dowolnych zasobów lokalnych i sieciowych 39

Maszyna wirtualna Javy Obiekty, do których nie istnieją w programie żadne odwołania (referencje), są usuwane przez moduł czyszczenia pamięci (garbage collector) implementowany jako osobny wątek sterowania o niskim priotytecie. Może być on uaktywniony: synchronicznie - gdy brakuje pamięci lub na żądanie programu, asynchronicznie - gdy system nie wykonuje żadnych działań na rzecz programu 40

Pakiet Java 2 SDK wersję pakietu Java 2 Software Developers Kit Standard Edition można pobrać ze stron WWW firmy Sun Microsystems pod adresem http://java.sun.com 41

Struktura pakietu Java 2 SDK instalator umieszcza pliki pakietu w podkatalogach katalogu instalacyjnego standardowo jest to podkatalog o nazwie jdknumer-wersji tworzony we wskazanym katalogu 42

Struktura pakietu Java 2 SDK 43

W momencie uruchamiania programów Javy, maszyna wirtualna poszukuje klas do załadowania kolejno w następujących miejscach wśród klas rozruchowych (bootstrap classes) w archiwach rt.jar i i18n.jar z katalogu jdk/jre/lib, wśród zainstalowanych rozszerzeń (installed extensions) tj. klas zawartych w plikach jar lub zip z katalogu jdk/jre/lib/ext, wśród klas użytkownika z katalogów i plików jar lub zip wskazanych przez zmienną środowiskową CLASSPATH lub opcję -classpath interpretera (katalog aktualny zawsze dołączany jest do listy katalogów z klasami użytkownika). 44

Podstawowe narzędzia pakietu Nazwa Opis javac kompilator Javy; przetwarza kod źródłowy programu w Javie na kod pośredni java interpreter aplikacji Javy; uruchamia kod bajtowy aplikacji Javy bezpośrednio z plików klasowych class appletviewer Interpreter apletów Javy; uruchamia aplety Javy zawarte w dokumentach HTML. 45

Podstawowe narzędzia pakietu Nazwa Opis javadoc generator dokumentacji; tworzy dokumentację w języku HTML na podstawie plików źródłowych i specjalnych komentarzy dokumentacyjnych, plików z kodem pośrednim wykorzystywanych klas i dodatkowych plików z informacjami dostarczonymi przez programistę 46

Podstawowe narzędzia pakietu Nazwa Opis jar archiwizator Javy; pozwala tworzyć i zarządzać archiwami w formacie jar jdb debuger Javy; pozwala na wykonywanie programu krok po kroku po jednej linii na raz, przy jednoczesnym śledzeniu stanu zmiennych. extcheck weryfikator rozszerzeń; sprawdza poprawność zainstalowanych rozszerzeń pod kątem konfliktów wersji i nazw 47

Podstawowe narzędzia pakietu Nazwa Opis javap Disasembler Javy; odtwarza kod źródłowy na podstawie kodu pośredniego z pliku klasowego class javah Generator plików w języku C; tworzy pliki nagłówkowe.h i źródłowe.c, które mogą być wykorzystane w programach w języku C wywołujących procedury w Javie lub do pisania procedur w C wykorzystywanych przez programy w Javie 48

Podstawowe narzędzia pakietu Ścieżka (bezwględna) do katalogu jdk/bin powinna być umieszczona w zmiennej systemowej PATH 49

javac - kompilator Składnia wywołania: javac [opcje] [pliki-źródłowe] [@plik-z-listąplików-źródłowych] pliki źródłowe z rozszerzeniem java mogą być wymienione w linii komend lub zebrane w listę rozdzieloną odstępami i/lub znakami nowego wiersza zapisaną w pliku, którego nazwa podawana jest po znaku @ 50

javac - kompilator w wyniku kompilacji powstają pliki z kodem pośrednim o rozszerzeniu class. każdy plik class zawiera jedną skompilowaną klasę lub interfejs program w języku Java jest zbiorem definicji klas i interfejsów 51

javac - kompilator Program w języku Java może być zapisany w jednym pliku lub w wielu plikach przy czym: w jednym pliku źródłowym może znajdować się co najwyżej jedna klasa publiczna jeżeli plik źródłowy zawiera definicję klasy publicznej, to jego nazwa musi być identyczna z nazwą tej klasy (wielkość liter jest istotna). 52

javac - kompilator 53

javac - kompilator 54

Ważniejsze opcje kompilatora javac classpath lista-ścieżek-do-katalogów-i- archiwów opcja wskazuje położenia plików jar, zip i katalogów z klasami i interfejsami użytkownika, potrzebnymi do przeprowadzenia kompilacji separatorem listy jest separator ścieżek systemu operacyjnego opcja zastępuje ustawienia zmiennej CLASSPATH jeżeli nie jest ustawiona zmienna CLASSPATH i nie podano opcji -classpath to domyślnie przyjmowany jest katalog aktualny 55

Ważniejsze opcje kompilatora javac sourcepath archiwów lista-ścieżek-do-katalogów-i- opcja wskazuje położenia plików jar, zip i katalogów z klasami i interfejsami użytkownika w wersji źródłowej, potrzebnymi do przeprowadzenia kompilacji separatorem listy jest separator ścieżek systemu operacyjnego jeżeli opcja -sourcepath nie została podana, to wykorzystywane są ścieżki ustawione w zmiennej CLASSPATH lub za pomocą opcji -classpath 56

java - interpreter aplikacji Składnia wywołania: java [opcje] nazwa-klasy [argumenty] jako parametr podawana jest nazwa klasy (bez rozszerzenia class), od której zaczyna się wykonanie aplikacji. Klasa taka nazywana jest klasą startową 57

java - interpreter aplikacji java [opcje] -jar plik.jar [argumenty] wskazywany jest plik archiwum z rozszerzeniem jar, który zawiera klasę startową, inne klasy aplikacji oraz pliki zasobów (grafiki, dźwięki i.t.p.). 58

appletviewer - interpreter apletów Składnia wywołania: appletviewer [opcje] url interpreter apletów pozwala uruchamiać aplety bez korzystania z przeglądarki WWW jako parametr podawany jest url strony WWW jeśli w stronę WWW wbudowanych jest kilka apletów, to dla każdego z nich otwierane jest osobne okno interpretera 59

Pakiet pakiet jest mechanizmem łączenia w pewną całość logicznie powiązanych klas i interfejsów zapewniania kontrolę dostępu do klas i interfejsów oraz ich składowych pozwala unikać kolizji nazw biblioteki Javy zorganizowane są w pakiety 60

Pakiet Przynależność klas i interfejsów zdefiniowanych w danym pliku do konkretnego pakietu możemy określić podając jako pierwszy wpis w pliku źródłowym deklarację pakietu package nazwa-pakietu; dalsza-część-plikuźródłowego 61

Pakiet pakiety mogą zawierać podpakiety i tworzyć hierarchie zorganizowaną w strukturę drzewa struktura ta jest mapowana na strukturę katalogów katalogi zawierają skompilowane pliki klas i interfejsów 62

Pakiet 63

Pakiet programy mogą wykorzystywać klasy i interfejsy z istniejących pakietów deklarując ich import można importować wszystkie klasy i interfejsy danego pakietu podając w deklaracji importu symbol * na końcu nazwy pakietu 64

Pakiet deklaracja z symbolem* oznacza, że wykorzystane zostaną z danego pakietu tylko te definicje klas i interfejsów, które są niezbędne do skompilowania i uruchamiania programu jeśli nie podano żadnej deklaracji importu, to i tak domyślnie zawsze importowany jest pakiet java.lang.* 65

Przykładowe pakiety platformy Java 2 Nazwa Opis java.lang podstawowe klasy jezyka np. Object, String java.applet tworzenie apletów java.awt składniki GUI java.io strumienie we/wy i pliki java.net obsługa sieci java.util klasy użytkowe, specjalne struktury danych 66