2013-01-18 5 views
7

La mia domanda è: perché le persone creano strutture di directory con almeno una cartella denominata edu, e quindi un'altra singola cartella denominata mit (ad esempio), seguita da tutto il loro codice in una sottocartella?Perché le persone creano strutture di directory come edu.mit.stk in Java?

È una sorta di identificatore?

La struttura è effettivamente utilizzata dal computer per qualsiasi motivo o è utilizzata solo per aiutare il lettore?

Se sì, in che modo aiuta il lettore?

+0

http://docs.oracle.com/javase/tutorial/java/package/index.html –

+0

Ecco il diluvio di risposte doppie ... –

+0

@SteveKuo Stanno tutti bene, aspettando solo il timer ora. – sdasdadas

risposta

8

Questo viene fatto per evitare conflitti di nome. La regola predefinita consiste nell'utilizzare il retro del nome di dominio come struttura del pacchetto

Così Google manterrebbe tutto il codice nei pacchetti com.google.* mentre Microsoft manterrà il proprio codice nei pacchetti com.microsoft.*. Quindi, se entrambe le società implementano una classe SearchEngine, non si verificherà una collisione di denominazione.

istituti di istruzione fanno la stessa cosa, in modo da sapere che qualsiasi codice in un edu.mit.* subpackage è stato probabilmente sviluppato da un gruppo a MIT

4

La convenzione Java consiste nell'ordinare le directory di origine in modo che corrispondano alla gerarchia dei pacchetti. Vedi per es. Managing Source and Class Files.

Quindi se si dispone di una classe edu.mit.stk.Foo, verrà individuata come edu/mit/stk/Foo.java.

2

È uno spazio dei nomi. Impedisce collisioni tra nomi di classi e pacchetti. In genere è il nome di dominio dell'azienda al contrario (ad esempio com.ibm.PackageName), ma il suo valore è arbitrario e può essere qualsiasi cosa.

0

Per convenzione I nomi dei pacchetti Java seguono la convenzione di denominazione dei domini in ordine inverso. Pertanto, edu.mit è un prefisso appropriato per un pacchetto sviluppato a mit.edu.

0

pacchetti sono chiamati con i loro nomi di dominio Internet invertita per evitare conflitti di nomi. Quindi un calss da ecliplse può essere in una package com.eclipse.XYZClass

Da Naming a package:

Le aziende usano il loro inverso nome di dominio Internet per iniziare la loro nomi per il pacchetto di esempio, com.example.mypackage per un pacchetto chiamato mypackage creato da un programmatore su example.com.

Per essere identificato correttamente, un pacchetto deve essere in un fiammato con lo stesso nome. Quindi, se si dispone di una classe in com.madbreaks.MyClass, si avrà la struttura di cartelle come

com 
| 
+--madbreaks 
    | 
    +---MyClass 

Vedi anche: il Java tutorial on packages.

Problemi correlati