Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWisława Iglewski Został zmieniony 11 lat temu
1
Pakiety w Javie Łukasz Smyczyński (132834)
2
Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem biblioteki, zawierają klasy powiązane tematycznie. Pakiety mogą także zawierać definicje interfejsów.
3
Czym są pakiety? Pakiety umożliwiają oddzielenie naszego kodu od kodu bibliotek napisanych przez innych programistów. Głównym powodem stosowania pakietów jest gwarancja unikalności nazw klas. Wraz z JDK otrzymujemy dość pokaźną liczbę pakietów, zawierających w sumie kilka tysięcy klas.
4
Przegląd standardowych pakietów Java posiada bogatą biblioteką standardowych pakietów, i tak do podstawowych należą: java.lang: pakiet zawierający wszystkie podstawowe klasy Javy. Nie musi być jawnie importowany, ponieważ kompilator czyni to w sposób automatyczny. java.io: klasy implementujące operacje wejścia/wyjścia. java.util: pomocnicze klasy użytkowe (np. generacja liczb losowych, operacje na ciągach znaków, itp.)
5
Przegląd standardowych pakietów Java posiada bogatą biblioteką standardowych pakietów, i tak do podstawowych należą: java.net: zawiera klasy konieczne do tworzenia oprogramowania wykorzystującego sieć. Wraz z pakietem "java.io" umożliwia dostęp do sieci w celu ładowania lub wysyłania plików. java.awt: klasy służące do tworzenia graficznego interfejsu użytkownika (GUI). java.applet: pakiet zawierający klasy używane podczas tworzenia apletów.
6
Plik źródłowy w Javie Ogólna postać pliku źródłowego Javy wygląda następująco: pojedyncza instrukcja package (opcjonalna) dowolna liczba instrukcji import (opcjonalne) pojedyncza deklaracja klasy publicznej (wymagana) dowolna liczba klas prywatnych (opcjonalna)
7
Tworzenie pakietów Na samym początku pliku źródłowego Javy może znajdować się instrukcja package, informująca kompilator o nazwie pakietu, do którego mają należeć wszystkie zdefiniowane klasy. Pominięcie instrukcji package powoduje, że klasy z danego pliku są umieszczane w pakiecie domyślnym, nie posiadającym nazwy. Użyta instrukcja package musi stanowić w pliku pierwszy element nie będący komentarzem
8
Instrukcja package Ogólna postać instrukcji package wygląda następująco: package nazwapakietu; A więc jeśli instrukcja pakietu umieszczona jako pierwsza komenda pliku źródłowego, np. package mojpakiet; to: Wszystkie klasy w pliku należą do pakietu mojpakiet. Inne pliki mogą również posiadać tą instrukcję: pakiet rozkłada się bowiem na wiele plików. Wszystkie pliki.java są zapisywane w katalogu mojpakiet.
9
Hierarchia pakietów Można również tworzyć strukturę hierarchiczną pakietów, oddzielając ich nazwy za pomocą kropki. package pakiet1.pakiet2.pakiet3 Struktura pakietów musi być skorelowana ze strukturą katalogów na dysku, a więc pliki zachowywane są w katalogu pakiet1\pakiet2\pakiet3 system Windows pakiet1/pakiet2/pakiet3 system Linux Należy pamiętać o tym, że w Javie rozróżniane są małe i duże litery, zarówno w nazwach klas, jak i w nazwach plików i katalogów.
10
Zmienna CLASSPATH Istnieje możliwość umieszczania pakietów w różnych miejscach, o ile tylko ich struktura pokrywa się ze strukturą katalogów na dysku. Trzeba jednak również zmodyfikować zmienną środowiskową CLASSPATH, aby wskazywała ona na początek struktury, w której będziemy zapisywać nasze programy. Np. jeżeli nasz plik zawierający definicję pakietu mojpakiet znajduje się w C:\MyJava\mojpakiet to zmienna CLASSPATH powinna mieć wartość. ; C:\MyJava Kropka w powyższym zapisie oznacza katalog roboczy. Java poszukuje pakietów przeszukując kolejne katalogi wymienione w ścieżce CLASSPATH.
11
Pakiety: przykład package mojpakiet; public class StanKonta { String nazwa; double stankonta; public StanKonta (String n, double s) { nazwa = n; stankonta = s; } public void pokaz() { if (stankonta < 0) System.out.println (nazwa + ": " + stankonta + " zl"); }
12
Pakiety: przykład package mojpakiet; class Pakiet { public static void main (String[ ] args) { StanKonta biezacy [ ] = new StanKonta [6]; biezacy [0] = new StanKonta ("T.Bialy", 132.12 ); biezacy [1] = new StanKonta ("J.Schmidt", -56.12 ); biezacy [2] = new StanKonta ("A.Moraw", 34.75 ); biezacy [3] = new StanKonta ("K.Milski", -46.95 ); biezacy [4] = new StanKonta ("L.Podly", -134.14 ); biezacy [5] = new StanKonta ("A.Bakow", 14.75 ); for (int i=0 ; i<6 ; i++) biezacy[ i ].pokaz ( ); } J.Schmidt: -56.12 zl K.Milski: -46.95 zl L.Podly: -134.14 zl
13
Jak nazywać pakiety? Nazwy pakietów skonstruowane są podobnie jak ścieżki dostępu do plików. Na przykład klasa Date znajdująca się w pakiecie java.util ma pełną nazwę: java.util.Date, co oznacza: - java - pakiet należy do zestawu standardowych pakietów Javy - util - to różnego typu klasy użytkowe (pomocnicze) - Date - konkretna nazwa klasy. Firma Sun zaleca, by w nazewnictwie klas niestandardowych przed właściwą nazwą pakietu stosować odwróconą nazwę domeny internetowej autora pakietu. Np. pl.wroc.pwr.kmeif.mylibrary (odwrócona kolejność!) Dzięki takiemu systemowi nazwy klas są niepowtarzalne, co pozwala uniknąć niejednoznaczności.
14
Korzystanie z pakietów Klasa może używać wszystkich klas ze swojego pakietu oraz wszystkich klas publicznych należących do innych pakietów. Istnieją dwa sposoby dostępu do klasy publicznej innego pakietu: 1) Możemy dołączyć pełną nazwę pakietu na początku każdej nazwy klasy, na przykład: java.util.Date dzisiaj = new java.util.Date(); Jest to jednak bardzo niepraktyczny sposób. 2) Możemy zaimportować konkretną klasę albo cały pakiet korzystając ze słowa kluczowego import.
15
Importowanie pakietów Słowo kluczowe import umożliwia bezpośrednie odwołanie się do klasy przez jej nazwę. Możemy zaimportować cały pakiet albo konkretną klasę. Umieszczamy w tym celu słowo import na początku pliku źródłowego (ale pod słowem package ), na przykład: import java.util.*; - cały pakiet java.util import java.util.Date; - konkretna klasa Nie trzeba importować pakietu java.lang, gdyż kompilator dołącza go automatycznie. Po zaimportowaniu możemy już używać Date dzisiaj = new Date();
16
Konflikty nazw Jeśli klasa o tej samej nazwie występuje w dwóch różnych importowanych do programu pakietach (np.klasa Date w poniższych pakietach): import java.util.*; import java.sql.*; to jeżeli użyjemy teraz klasy Date, otrzymamy błąd kompilacji, gdyż procesor nie potrafi określić której klasy Date chcemy użyć. Można rozwiązać ten problem stosując jeszcze jedno polecenie import java.util.Date; lub przez użycie pełnej nazwy pakietu, na przykład Java.util.Date termin = new java.util.Date();
17
package mojpakiet; public class StanKonta { String nazwa; double stankonta; public StanKonta (String n, double s) { nazwa = n; stankonta = s; } public void pokaz() { if (stankonta < 0) System.out.println (nazwa + ": " + stankonta + " zl"); } Importowanie klas: przykład
18
import mojpakiet.*; public class Imporotwanie { public static void main ( String args[] ) { StanKonta test = new StanKonta ("T.Biały",-12.57); test.pokaz( ); } T.Biały: -12.57 zl
19
Literatura Patrick Naughton - Podręcznik języka programowania Java Bruce Eckel – Thinking in Java
20
Koniec Dziękuję za uwagę.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.