it-swarm-es.com

Caracteres válidos en un nombre de clase Java

¿Qué caracteres son válidos en un nombre de clase de Java? ¿Qué otras reglas rigen los nombres de clase de Java (por ejemplo, los nombres de clase de Java no pueden comenzar con un número)?

67
Zach

Puedes tener casi cualquier personaje, ¡incluyendo la mayoría de los personajes de Unicode! La definición exacta se encuentra en la Especificación del lenguaje Java en la sección 3.8: Identificadores .

Un identificador es una secuencia de longitud ilimitada de letras de Java y dígitos de Java, el primero de los cuales debe ser un letra de Java. ...

Se pueden extraer letras y dígitos de todo el conjunto de caracteres de Unicode, ... Esto permite a los programadores usar identificadores en sus programas que están escritos en sus idiomas nativos.

Un identificador no puede tener la misma ortografía (secuencia de caracteres Unicode) que una palabra clave (§3.9), literal booleano (§3.10.3) o el literal nulo (§3.10.7), o se produce un error de compilación.

Sin embargo, vea esta pregunta para saber si debe o no hacer eso.

56
Jason Cohen

Cada lenguaje de programación tiene su propio conjunto de reglas y convenciones para los tipos de nombres que puede usar, y el lenguaje de programación Java no es diferente. Las reglas y convenciones para nombrar sus variables se pueden resumir de la siguiente manera:

  • Los nombres de las variables distinguen entre mayúsculas y minúsculas. El nombre de una variable puede ser cualquier identificador legal: una secuencia de longitud ilimitada de letras y dígitos de Unicode, que comienza con una letra, el signo de dólar "$" o el carácter de subrayado "_". La convención, sin embargo, es comenzar siempre los nombres de sus variables con una letra, no "$" o "_". Además, el carácter de signo de dólar, por convención, nunca se usa en absoluto. Puede encontrar algunas situaciones en las que los nombres generados automáticamente contengan el signo de dólar, pero los nombres de sus variables siempre deben evitar su uso. Existe una convención similar para el carácter de subrayado; Si bien es técnicamente legal comenzar el nombre de su variable con "_", se desaconseja esta práctica. No se permite el espacio en blanco.

  • Los caracteres subsiguientes pueden ser letras, dígitos, signos de dólar o caracteres de subrayado. Las convenciones (y el sentido común) también se aplican a esta regla. Al elegir un nombre para sus variables, use palabras completas en lugar de abreviaturas crípticas. Hacerlo hará que su código sea más fácil de leer y entender. En muchos casos también hará que su código se autodocumente; los campos denominados cadencia, velocidad y engranaje, por ejemplo, son mucho más intuitivos que las versiones abreviadas, como s, c y g. También tenga en cuenta que el nombre que elija no debe ser una palabra clave o una palabra reservada.

  • Si el nombre que elige consta de una sola palabra, deletree esa palabra en letras minúsculas. Si consta de más de una palabra, escribe con mayúscula la primera letra de cada palabra subsiguiente. Los nombres gearRatio y currentGear son ejemplos principales de esta convención. Si su variable almacena un valor constante, como static final int NUM_GEARS = 6, la convención cambia ligeramente, mayúscula cada letra y separa las palabras subsiguientes con el carácter de subrayado. Por convención, el carácter de subrayado nunca se utiliza en otros lugares.

Desde el tutorial oficial de Java .

16
Ivan Bosnic

Además de las respuestas anteriores, vale la pena señalar que:

  1. Java permite cualquier símbolo de moneda Unicode en los nombres de los símbolos, por lo que todo lo siguiente funcionará:

$ var1 £ var2 € var3

Creo que el uso de símbolos de moneda se origina en C/C++, donde las variables agregadas a su código por el compilador empezaron convencionalmente con '$'. Un ejemplo obvio en Java son los nombres de los archivos '.class' para las clases internas, que por convención tienen el formato 'Outer $ Inner.class'

  1. Muchos programadores de C # y C++ adoptan la convención de colocar 'I' delante de las interfaces (también conocidas como clases virtuales puras en C++). Esto no es necesario, y por lo tanto no se hace, en Java porque la palabra clave implementa deja muy claro cuando algo es una interfaz.

Comparar:

clase Empleado: public IPayable // C++

con

empleado de clase: IPayable // C #

y

clase Employee implementa Payable // Java

  1. Muchos proyectos utilizan la convención de colocar un guión bajo delante de los nombres de los campos, para que puedan distinguirse fácilmente de las variables y parámetros locales, por ejemplo.

salario doble privado;

Una pequeña minoría coloca el guión bajo después del nombre del campo, p. Ej.

doble salario privado_;

10
Garth Gilmour

Como ya lo dijo Jason Cohen, la Especificación del lenguaje Java define qué es un identificador legal en la sección 3.8:

"Un identificador es una secuencia de longitud ilimitada de letras Java y dígitos Java, el primero de los cuales debe ser una letra Java. Una [...]" letra Java "es un carácter para el cual el método Character.isJavaIdentifierStart (int) devuelve Un 'letra o dígito de Java' es un carácter para el cual el método Character.isJavaIdentifierPart (int) devuelve true ".

Esperemos que esto responda a su segunda pregunta. Respecto a tu primera pregunta; Tanto los maestros como (hasta donde puedo recordar) me enseñaron a los compiladores de Java que un nombre de clase de Java debería ser un identificador que comience con una letra mayúscula A-Z, pero no puedo encontrar ninguna fuente confiable sobre esto. Al intentarlo con OpenJDK, no hay advertencias al comenzar nombres de clase con letras minúsculas o incluso con un signo $. Sin embargo, cuando usa un signo $, tiene que escapar de él si compila desde un shell bash.

4
EriF89

Me gustaría agregar a la respuesta de bosnic que cualquier carácter de moneda válido es legal para un identificador en Java. th € is es un identificador legal, al igual que € this, y € también. Sin embargo, no puedo averiguar cómo editar su respuesta, por lo que me veo obligado a publicar esta adición trivial.

2
MetroidFan2002

¿Qué otras reglas rigen los nombres de clase de Java (por ejemplo, los nombres de clase de Java no pueden comenzar con un número)?

  • Los nombres de las clases de Java generalmente comienzan con una letra mayúscula.
  • Los nombres de clase de Java no pueden comenzar con un número.
  • si hay varias palabras en el nombre de la clase como "MyClassName", cada palabra debe comenzar con una letra mayúscula. por ejemplo, "MyClassName". Esta convención de denominación se basa en CamelCase Type.
1
Deepak Kumar

Los nombres de las clases deben ser nombres en UpperCamelCase, con la primera letra de cada palabra en mayúscula. Use palabras completas: evite los acrónimos y las abreviaturas (a menos que la abreviatura sea mucho más utilizada que la forma larga, como URL o HTML). Las convenciones de nomenclatura se pueden leer aquí:

http://www.Oracle.com/technetwork/Java/codeconventions-135099.html

0
Sachin Tiwari

Los identificadores se utilizan para nombres de clase, nombres de métodos y nombres de variables. Un identificador puede ser cualquier secuencia descriptiva de letras mayúsculas y minúsculas, números o caracteres de signos de dólar y de puntuación baja. No deben comenzar con un número, para que no se confundan con un literal numérico. Una vez más, Java distingue entre mayúsculas y minúsculas, por lo que VALUE es un identificador diferente al valor. Algunos ejemplos de identificadores válidos son:

AvgTemp, cuenta a4, $ test, this_is_ok

Los nombres de variables no válidos incluyen:

2 cuentas, alta temperatura, No/ok

0
navneet kumar