Utilizzo delle convenzioni di denominazione Java

Una convenzione di denominazione è una regola da seguire quando decidi come nominare i tuoi identificatori (ad es. Classe, pacchetto, variabile, metodo, ecc.).

Perché usare le convenzioni di denominazione?

Diversi programmatori Java possono avere stili e approcci diversi al modo in cui programmano. Usando convenzioni di denominazione Java standard, rendono il loro codice più facile da leggere per se stessi e per altri programmatori. La leggibilità del codice Java è importante perché significa che si impiega meno tempo a cercare di capire cosa fa il codice, lasciando più tempo per ripararlo o modificarlo.

Per illustrare il punto vale la pena ricordare che la maggior parte delle società di software disporrà di un documento che delinea le convenzioni di denominazione che i loro programmatori devono seguire. Un nuovo programmatore che acquisisce familiarità con tali regole sarà in grado di comprendere il codice scritto da un programmatore che potrebbe aver lasciato l'azienda molti anni prima.

Scegliere un nome per il tuo identificatore

Quando si sceglie un nome per un identificatore, assicurarsi che sia significativo. Ad esempio, se il tuo programma si occupa degli account dei clienti, scegli i nomi che hanno senso per trattare con i clienti e i loro account (ad es. CustomerName, accountDetails). Non preoccuparti della lunghezza del nome. Un nome più lungo che riassume perfettamente l'identificatore è preferibile a un nome più breve che potrebbe essere veloce da digitare ma ambiguo.

Qualche parola sui casi

L'uso della lettera maiuscola è la chiave per seguire una convenzione di denominazione:

  • Minuscolo è dove tutte le lettere in una parola sono scritte senza maiuscole (ad es. mentre, se, mypackage).
  • Maiuscolo è dove tutte le lettere in una parola sono scritte in maiuscolo. Quando ci sono più di due parole nel nome usa i trattini bassi per separarli (ad es. MAX_HOURS, FIRST_DAY_OF_WEEK).
  • CamelCase (noto anche come Upper CamelCase) è il punto in cui ogni nuova parola inizia con una lettera maiuscola (ad es. CamelCase, Account cliente, PlayingCard).
  • Caso misto (noto anche come Lower CamelCase) è uguale a CamelCase, tranne per il fatto che la prima lettera del nome è in minuscolo (ad es. hasChildren, customerFirstName, customerLastName).

Convenzioni di denominazione Java standard

L'elenco seguente delinea le convenzioni standard di denominazione Java per ciascun tipo di identificatore:

  • Pacchetti: I nomi dovrebbero essere in minuscolo. Con piccoli progetti che hanno solo pochi pacchetti, va bene solo dare loro nomi semplici (ma significativi!):
     pacchetto pokeranalyzer pacchetto mycalculator 
    Nelle società di software e grandi progetti in cui i pacchetti potrebbero essere importati in altre classi, i nomi verranno normalmente suddivisi. In genere questo inizierà con il dominio dell'azienda prima di essere suddiviso in livelli o funzionalità:
     pacchetto com.mycompany.utilities pacchetto org.bobscompany.application.userinterface 
  • Classi: I nomi dovrebbero essere in CamelCase. Prova a usare i nomi perché una classe normalmente rappresenta qualcosa nel mondo reale:
     classe Classe cliente Conto 
  • interfacce: I nomi dovrebbero essere in CamelCase. Tendono ad avere un nome che descrive un'operazione che una classe può fare:
     interfaccia Interfaccia comparabile Enumerabile 
    Si noti che ad alcuni programmatori piace distinguere le interfacce iniziando il nome con una "I":
     interfaccia IComparable interfaccia IEnumerable 
  • metodi: I nomi devono essere in maiuscolo. Usa i verbi per descrivere cosa fa il metodo:
     void compareTax () stringa getSurname () 
  • variabili: I nomi devono essere in maiuscolo. I nomi dovrebbero rappresentare ciò che rappresenta il valore della variabile:
     stringa firstName int orderNumber 
    Usa nomi molto brevi solo quando le variabili hanno vita breve, come in per i loop:
     per (int i = 0; i<20;i++)    //i only lives in here  
  • costanti: I nomi devono essere in maiuscolo.
     int finale statico DEFAULT_WIDTH int finale statico MAX_HEIGHT