2013-07-22 17 views
12

In primo luogo, sto cercando di imparare Java con Java, Guida per principianti, 4a edizione. Io uso Ubuntu come sistema operativo e Netbeans come IDE. Ho bisogno di creare un progetto per creare una classe quando si usa netbeans.devo usare il termine "pacchetto" in ogni classe

Ecco l'app my my world.

class First{ 
    public static void main(String args[]) 
    { 
     System.out.println("Hello!"); 
    } 
} 

Ma questo restituisce molti errori. Quando inserisco la riga package first; nella riga superiore della mia classe java che esegue. Ma il libro non usa il termine del pacchetto. È una regola di netbeans o di cosa ho bisogno di sapere su questo?

+1

È una dichiarazione di namespace, specifica di Java, non un requisito di Netbeans. http://en.wikipedia.org/wiki/Java_package –

+1

Ok, ho capito. Quando sposto la mia classe fuori dal pacchetto, non ho bisogno di usare il termine del pacchetto. – Yusuf

risposta

15

Non è mai necessario per inserire una classe in un pacchetto. Tuttavia, è quasi sempre una buona idea. Questo è qualcosa che Netbeans cerca aggressivamente di incoraggiarti a fare.

Per progetti di piccole dimensioni, l'utilizzo del pacchetto predefinito (ovvero, nessun pacchetto) è OK. Tuttavia, una volta che il tuo progetto cresce e inizia ad aggiungere librerie esterne, possono accadere cose brutte. Che cosa succede se qualcun altro ha deciso di utilizzare il pacchetto predefinito e ha avuto una classe con lo stesso nome? Ora, dato che siete entrambi nello stesso pacchetto, possono verificarsi collisioni!

La struttura del file dovrebbe riflettere anche il pacchetto. Cioè, un file in package com.myurl.helloworld dovrebbe trovarsi in una cartella chiamata com/myurl/helloworld. Questo è per gli stessi motivi di cui sopra.

Inoltre, e probabilmente non si è ottenuto qui nei propri studi, non è possibile importare classi dal pacchetto predefinito o utilizzare il modificatore di visibilità pacchetto-privato in una classe di pacchetto predefinita.

10

Questo perché l'autore di Java, guida per principianti, 4 ° Edizione molto probabilmente utilizzato il "pacchetto di default". In questo modo, non è necessario includere alcun pacchetto. Un pacchetto è una dichiarazione dello spazio dei nomi.

Che diamine è una dichiarazione di spazio dei nomi !? Una dichiarazione dello spazio dei nomi è semplicemente un pacchetto creato per organizzare le classi. Per un'istanza, se hai intenzione di avere più classi per, diciamo la tua GUI e più classi per algoritmi, unirle insieme è sempre un po 'confusa. Ordinandoli in pacchetti diversi, tuttavia, è una soluzione superiore.

C'è anche una convenzione di denominazione da seguire se altre persone stanno guardando il tuo codice. I pacchetti dovrebbero essere nominati dopo un dominio di primo livello. Io tendo a creare progetti di SourceForge e poi io alla fine con qualcosa di simile:

net.sourceforge.softwarename.security, net.sourceforge.softwarename.gui, ecc ...

Si noti inoltre che non si dovrebbe mai usare maiuscolo quando chiamare il vostro pacchetto. Maggiori informazioni here.

Stai per incontrare molte situazioni come queste quando si apprende a programmare. Sono tutti parte del gioco. Devi solo capire un po 'da solo.

Il meglio che posso fare per voi è quello di raccomandare Eclipse. Inoltre, quando apprendo Java, ti suggerirei di non utilizzare un IDE a TUTTI! Questo perché imparerai a codificare in modo indipendente. Dipende da te, però.

+1

Hai scritto una bella risposta, ma in realtà non hai spiegato al povero ragazzo come funzionano i pacchetti. I pacchetti sono stati in Java fin dall'inizio, quindi il libro che lo omette non è il problema del libro vecchio e obsoleto. E non sarà risolto magicamente passando a Eclipse (né a nessun altro IDE). –

+1

Potresti considerare di rimuovere l'antipatia ora? – Scientious

+0

Preferirei usare lo stesso IDE che userete per il motivo per cui state imparando Java, in questo modo non siete solo una scimmia bloccata con il blocco note mentre tutti gli altri sono altamente produttivi. – ProfK

1

Il pacchetto rappresenta una directory che contiene un gruppo correlato di classi e interfacce.

Un pacchetto è uno spazio dei nomi che organizza un set di classi correlate e interfacce . Concettualmente puoi pensare che i pacchetti siano simili alle cartelle sul tuo computer. È possibile mantenere le pagine HTML in una cartella , le immagini in un'altra e gli script o le applicazioni in un'altra. Poiché il software scritto nel linguaggio di programmazione Java può essere composto da centinaia o migliaia di singole classi, rende sensato per mantenere le cose organizzate inserendo classi correlate e interfacce nei pacchetti.

Qui di seguito potete trovare alcune buone discussioni riguardanti i pacchetti Java:

1

No non c'è bisogno di mettere in un pacchetto in la tua classe A MENO CHE tu voglia importarla in un'altra classe che sarà nel suo stesso file. È qui che entrano in gioco le variabili di tipo protetto quando non vuoi renderle private, ma vuoi solo che le sottoclassi (o le classi figlio) accedano a loro. Ti manca anche la tua dichiarazione pubblica per la tua classe quindi dovrebbe apparire come

public class First{ 
    public static void main(String[] args){ 
      System.out.println("Hello!"); 
     } 


}