CATEGORII DOCUMENTE |
Spatii ale numelor in Java
Un spatiu de nume ('namespace') este un domeniu de valabilitate pentru un nume simbolic ales de programator. In cadrul unui spatiu nu pot exista doua sau mai multe nume identice (exceptie fac metodele supradefinite dintr-o aceeasi clasa). Pot exista nume identice in spatii diferite.
Fiecare clasa creeaza un spatiu de nume pentru variabilele si metodele clasei; ca urmare numele metodelor sau datelor publice dintr-o clasa trebuie precedate de numele clasei, atunci cand se folosesc in alte clase. Exemple:
Main.writeln ('abc'); // clasa Main, metoda writeln
Math.sqrt(x); // clasa Math, metoda sqrt
System.out // clasa System, variabila out
Clasele inrudite ca rol sau care se apeleaza intre ele sunt grupate in 'pachete' de clase ('package'). Instructiunea package se foloseste pentru a specifica numele pachetului din care vor face parte clasele definite in fisierul respectiv; ea trebuie sa fie prima instructiune din fisierul sursa Java. In lipsa unei instructiuni package se considera ca este vorba de un pachet anonim implicit, situatia unor mici programe de test pentru depanarea unor clase. Un nume de pachet corespunde unui nume de director, cu fisierele de tip "class" corespunzatoare claselor din pachet.
Numele unui pachet poate avea mai multe componente, separate prin puncte. Numele de pachete cu clase predefinite, parte din JDK, incep prin java sau javax. Exemple :
java.io , java.util.regex , java.awt, javax.swing.tree
Un pachet este un spatiu al numelor pentru numele claselor din acel pachet.
In general numele unei clase (publice) trebuie precedat de numele pachetului din care face parte, atunci cand este folosit intr-un alt pachet.
De observat ca un fisier sursa nu creeaza un spatiu de nume; este posibil si chiar uzual ca in componenta unui pachet sa intre clase aflate in fisiere sursa diferite, dar care au la inceput aceeasi instructiune 'package'. Exemplu:
// fisierul IOException.java
package java.io;
public class IOException extends Exception
// fisierul EOFException.java
package java.io;
public class EOFException extends IOException
Pachetul cu numele 'java.lang' ('language') este folosit de orice program Java si de aceea numele lui nu mai trebuie mentionat inaintea numelui unei clase din java.lang. Clasele String,Integer,Object,System s.a. fac parte din pachetul java.lang.
Exemplu care ilustreaza utilizarea unei clase dintr-un alt pachet decat java.lang :
public static void main (String arg[])
Variabila cu numele 'rand' este de tipul Random, iar clasa Random este definita in pachetul 'java.util'. Notatia 'rand.nextFloat()' exprima apelul metodei 'nextFloat' din clasa 'Random' pentru obiectul adresat de variabila 'rand'.
Instructiunea import permite simplificarea referirilor la clase din alte pachete si poate avea mai multe forme. Cea mai folosita forma este:
import pachet.* ;
Instructiunea anterioara permite folosirea numelor tuturor claselor dintr-un pachet cu numele 'pachet', fara a mai fi precedate de numele pachetului. Exemplul urmator ilustreaza folosirea instructiunii 'import':
import java.util.*; // sau import java.util.Random;
class R
}
Uneori se prefera importul de clase individuale, atat pentru documentare cat si pentru evitarea ambiguitatilor create de clase cu acelasi nume din pachete diferite. Exemplu care arata riscurile importului tuturor claselor dintr-un pachet:
import java.util.*;
import java.awt.*;
class test
}
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1056
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved