Domanda

Quali caratteri sono validi nel nome di una classe Java?Quali altre regole governano i nomi delle classi Java (ad esempio, i nomi delle classi Java non possono iniziare con un numero)?

È stato utile?

Soluzione

Puoi avere quasi tutti i caratteri, inclusa la maggior parte dei caratteri Unicode!La definizione esatta è in la specifica del linguaggio Java nella sezione 3.8:Identificatori.

UN identificatore è una sequenza di lunghezza illimitata di Lettere di Giava E Cifre Java, il primo dei quali deve essere a Lettera di Giava. ...

Lettere e cifre possono essere ricavate dall'intero set di caratteri Unicode, ...Ciò consente ai programmatori di utilizzare identificatori nei loro programmi scritti nella loro lingua madre.

Un identificatore non può avere la stessa ortografia (sequenza di caratteri Unicode) di una parola chiave (§3.9), di un letterale booleano (§3.10.3) o di un letterale null (§3.10.7), altrimenti si verifica un errore in fase di compilazione.

Tuttavia, vedi questa domanda per sapere se dovresti farlo o meno.

Altri suggerimenti

Ogni linguaggio di programmazione ha il proprio insieme di regole e convenzioni per i tipi di nomi che è consentito utilizzare e il linguaggio di programmazione Java non è diverso.Le regole e le convenzioni per denominare le variabili possono essere riepilogate come segue:

  • I nomi delle variabili fanno distinzione tra maiuscole e minuscole.Il nome di una variabile può essere qualsiasi identificatore legale: una sequenza di lettere e cifre Unicode di lunghezza illimitata, che inizia con una lettera, il simbolo del dollaro "$" o il carattere di sottolineatura "_".La convenzione, tuttavia, è di iniziare sempre i nomi delle variabili con una lettera, non con "$" o "_".Inoltre, il carattere del simbolo del dollaro, per convenzione, non viene mai utilizzato.Potresti trovare alcune situazioni in cui i nomi generati automaticamente conterranno il simbolo del dollaro, ma i nomi delle tue variabili dovrebbero sempre evitare di usarlo.Esiste una convenzione simile per il carattere di sottolineatura;sebbene sia tecnicamente legale iniziare il nome della variabile con "_", questa pratica è scoraggiata.Lo spazio bianco non è consentito.

  • I caratteri successivi possono essere lettere, cifre, simboli del dollaro o caratteri di sottolineatura.Anche a questa regola si applicano le convenzioni (e il buon senso).Quando scegli un nome per le tue variabili, usa parole complete invece di abbreviazioni criptiche.In questo modo il codice sarà più facile da leggere e comprendere.In molti casi renderà anche il tuo codice autodocumentante;i campi denominati cadenza, velocità e marcia, ad esempio, sono molto più intuitivi rispetto alle versioni abbreviate, come s, c e g.Tieni inoltre presente che il nome che scegli non deve essere una parola chiave o una parola riservata.

  • Se il nome che scegli è composto da una sola parola, scrivi quella parola in tutte lettere minuscole.Se è composto da più parole, scrivere in maiuscolo la prima lettera di ogni parola successiva.I nomi gearRatio e currentGear sono ottimi esempi di questa convenzione.Se la tua variabile memorizza un valore costante, come ad esempio static final int NUM_GEARS = 6, la convenzione cambia leggermente, mettendo in maiuscolo ogni lettera e separando le parole successive con il carattere di sottolineatura.Per convenzione, il carattere di sottolineatura non viene mai utilizzato altrove.

Da il tutorial ufficiale di Java.

Oltre alle risposte precedenti, vale la pena notare che:

  1. Java consente qualsiasi simbolo di valuta Unicode nei nomi dei simboli, quindi funzionerà tutto quanto segue:

$ var1 £ var2 € var3

Credo che l'uso dei simboli di valuta abbia origine in C/C++, dove le variabili aggiunte al codice dal compilatore convenzionalmente iniziavano con "$".Un esempio ovvio in Java sono i nomi dei file '.class' per le classi interne, che per convenzione hanno il formato 'Outer$Inner.class'

  1. Molti programmatori C# e C++ adottano la convenzione di posizionare la "I" davanti alle interfacce (ovvero classi virtuali pure in C++).Ciò non è richiesto, e quindi non viene eseguito, in Java perché la parola chiave implements rende molto chiaro quando qualcosa è un'interfaccia.

Confrontare:

Dipendente della classe:public IPagabile //C++

con

Dipendente della classe:Pagabile //C#

E

la classe Employee implementa Payable //Java

  1. Molti progetti utilizzano la convenzione di posizionare un carattere di sottolineatura davanti ai nomi dei campi, in modo che possano essere facilmente distinti dalle variabili e dai parametri locali, ad es.

doppio_stipendio privato;

Una piccola minoranza inserisce il carattere di sottolineatura dopo il nome del campo, ad es.

doppio stipendio privato_;

Come già affermato da Jason Cohen, la specifica del linguaggio Java definisce cosa sia un identificatore legale nella sezione 3.8:

"Un identificatore è una sequenza di lunghezza illimitata di lettere Java e cifre Java, la prima delle quali deve essere una lettera Java.[...] Una 'lettera Java' è un carattere per il quale il metodo Character.isJavaIdentifierStart(int) restituisce true.Una 'lettera o cifra Java' è un carattere per il quale il metodo Character.isJavaIdentifierPart(int) restituisce true."

Si spera che questo risponda alla tua seconda domanda.Per quanto riguarda la tua prima domanda;Mi è stato insegnato sia dagli insegnanti che (per quanto posso ricordare) dai compilatori Java che il nome di una classe Java dovrebbe essere un identificatore che inizia con una lettera maiuscola A-Z, ma non riesco a trovare alcuna fonte affidabile al riguardo.Quando lo provi con OpenJDK non ci sono avvisi quando i nomi delle classi iniziano con lettere minuscole o anche con il segno $.Tuttavia, quando si utilizza un segno $, è necessario eseguire l'escape se si compila da una shell bash.

Vorrei aggiungere alla risposta di bosnic che qualsiasi carattere di valuta valido è legale per un identificatore in Java.this€is è un identificatore legale, così come €this e anche €.Tuttavia, non riesco a capire come modificare la sua risposta, quindi sono costretto a pubblicare questa banale aggiunta.

Quali altre regole governano i nomi delle classi Java (ad esempio, i nomi delle classi Java non possono iniziare con un numero)?

  • I nomi delle classi Java solitamente iniziano con una lettera maiuscola.
  • I nomi delle classi Java non possono iniziare con un numero.
  • se ci sono più parole nel nome della classe come "MyClassName", ciascuna parola dovrebbe iniziare con una lettera maiuscola.ad esempio: "MyClassName". Questa convenzione di denominazione è basata su CamelCase Tipo.

I nomi delle classi dovrebbero essere sostantivi in ​​UpperCamelCase, con la prima lettera di ogni parola in maiuscolo.Utilizza parole intere: evita acronimi e abbreviazioni (a meno che l'abbreviazione non sia molto più utilizzata della forma lunga, come URL o HTML).Le convenzioni di denominazione possono essere lette qui:

http://www.oracle.com/technetwork/java/codeconventions-135099.html

Gli identificatori vengono utilizzati per nomi di classi, nomi di metodi e nomi di variabili.Un identificatore può essere qualsiasi sequenza descrittiva di lettere maiuscole e minuscole, numeri o caratteri di sottolineatura e simbolo del dollaro.Non devono iniziare con un numero, per evitare di essere confusi con un valore letterale numerico.Ancora una volta, Java fa distinzione tra maiuscole e minuscole, quindi VALUE è un identificatore diverso da Value.Alcuni esempi di identificatori validi sono:

AvgTemp, conta a4, $test, questo_è_ok

I nomi delle variabili non validi includono:

2conteggio, alta temperatura, non/ok

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top