Convenzioni di denominazione variabili in Java?
-
03-07-2019 - |
Domanda
In PHP, noi (almeno i bravi programmatori) iniziamo sempre nomi di variabili generali con una lettera minuscola, ma classifichiamo variabili / oggetti con una lettera maiuscola per distinguerli. Allo stesso modo iniziamo i nomi di file generali con una lettera minuscola, ma i file che contengono Classi con una lettera maiuscola.
per esempio:
<?php
$number=123;
$string="a string";
$colors_array=array('red','blue','red');
$Cat=New Cat();
?>
Le convenzioni sono le stesse in java, ovvero gli oggetti che iniziano con lettere maiuscole ma il resto con lettere minuscole o tutto inizia con lettere minuscole come ho letto in altri posti?
Soluzione
In generale, tutte le variabili iniziano con le lettere minuscole:
int count = 32;
double conversionFactor = 1.5d;
Ad alcune persone piace mettere costanti statiche in ogni caso:
public static final double KILOGRAM_TO_POUND = 2.20462262;
Le cose diventano più fastidiose quando si hanno a che fare con gli acronimi e non esiste uno standard reale sull'opportunità di utilizzare:
HTMLHandler myHtmlHandler;
o
HTMLHandler myHTMLHandler.
Ora, in entrambi i casi, nota che i nomi delle classi (Object, String, HTMLHandler) iniziano sempre con una lettera maiuscola, ma le singole variabili dell'oggetto iniziano in minuscolo.
Altri suggerimenti
Puoi trovare la denominazione nelle Convenzioni del codice Java .
Un breve riepilogo:
- Per le classi, utilizzare
UpperCamelCase
. - Per i membri della classe e le variabili locali utilizzare
lowerCamelCase
- Per i pacchetti, utilizzare URI inverso, ad es.
org.acme.project.subsystem
- Per le costanti, utilizzare
ALL_CAPS
.
- variablesAndMethodsLikeThis
- ClassesLikeThis
- CONSTANTS_LIKE_THIS
La convenzione è che i nomi delle classi iniziano con la lettera maiuscola. I nomi delle variabili sono camelCase. Anche se la variabile fa riferimento a un oggetto, inizia comunque con lettere minuscole.
Questa pagina dovrebbe aiutare.
Cosa pensi dell'utilizzo di camelCase per i metodi di istanza e PascalCase per i dati statici? Penso che potrebbe essere molto utile, perché non ci sarebbero problemi durante la verifica di quale metodo è statico. È la mia proposta
Le convenzioni dipendono davvero dal singolo posto per cui stai codificando.
In generale, da quello che ho visto le classi sono CamelCased (prima con le maiuscole), i metodi iniziano con lettere minuscole e le variabili che ho visto dappertutto (alcune CamelCased, altre camelCase con la prima lettera inferiore (EDIT : come detto sopra, questa è la norma), alcuni anche con notazione ungherese). Dipende dal tuo stile e dallo stile adottato dal progetto a cui stai lavorando.
Ad alcune persone (che non sono io) piace differenziare le variabili del metodo dalle variabili dell'istanza anteponendo le variabili dell'istanza con " questo. " Questo risolve anche il problema che si verifica quando si assegna un parametro a una variabile Instance con lo stesso nome:
public ConstructorMethod(MyVar variable) {
this.variable=variable;
}
Ma poi alcune persone pensano che dovresti sempre usare quel modello - ma non ne sono pazzo - penso che sia eccessivo se mantieni piccoli i tuoi metodi e le tue classi.
Inoltre, alcune persone usano un modello di denominazione per i parametri. Questo (di nuovo) è utile quando si assegna da un costruttore a una variabile di istanza:
public ConstructorMethod(MyVar pVariable) {
variable=pVariable;
}
Di solito il modello è pVariable
o _variable
. Di tanto in tanto lo uso perché lo trovo più leggibile di così, ma ha lo svantaggio di rendere meno leggibile il tuo Javadocs.
In ogni caso, non mi piace molto l'idea di utilizzare SEMPRE uno di questi schemi, sono fantastici da sapere, ma se hai davvero bisogno di aiuto per differenziarli attraverso il tuo codice, dì a Eclipse di mostrarli in diversi colori.