Pregunta

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

¿Fue útil?

Solución

Puedes tener casi cualquier carácter, ¡incluidos la mayoría de los caracteres Unicode!La definición exacta está en la Especificación del lenguaje Java en la sección 3.8:Identificadores.

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

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

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

Sin embargo, ver esta pregunta sobre si deberías hacer eso o no.

Otros consejos

Cada lenguaje de programación tiene su propio conjunto de reglas y convenciones para los tipos de nombres que puedes 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 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 las variables con una letra, no con "$" o "_".Además, el carácter del signo de dólar, por convención, nunca se utiliza en absoluto.Es posible que encuentre 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 la variable con "_", se desaconseja esta práctica.No se permiten espacios en blanco.

  • Los caracteres siguientes 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, utilice palabras completas en lugar de abreviaturas crípticas.Hacerlo hará que su código sea más fácil de leer y comprender.En muchos casos, también hará que su código se autodocumente;Los campos llamados cadencia, velocidad y marcha, por ejemplo, son mucho más intuitivos que las versiones abreviadas, como s, cy g.También ten en cuenta que el nombre que elijas no debe ser una palabra clave o 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, escriba en mayúscula la primera letra de cada palabra posterior.Los nombres gearRatio y currentGear son excelentes ejemplos de esta convención.Si su variable almacena un valor constante, como static final int NUM_GEARS = 6, la convención cambia ligeramente, poniendo en mayúscula cada letra y separando las palabras siguientes con el carácter de subrayado.Por convención, el carácter de subrayado nunca se utiliza en ningún otro lugar.

De el tutorial oficial de Java.

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 funcionará lo siguiente:

$ var1 £ var2 € var3

Creo que el uso de símbolos de moneda se origina en C/C++, donde las variables agregadas al código por el compilador convencionalmente comenzaban con '$'.Un ejemplo obvio en Java son los nombres de los archivos '.class' para clases internas, que por convención tienen el formato 'Exterior$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 implements deja muy claro cuándo algo es una interfaz.

Comparar:

clase Empleado:IP pública pagable //C++

con

clase Empleado:IPpagable //C#

y

clase Empleado implementa Pagadero //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, p.

doble salario privado;

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

doble salario privado_;

Como ya afirmó 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 de Java' es un carácter para el cual el método Character.isJavaIdentifierStart(int) devuelve verdadero.Una 'letra o dígito de Java' es un carácter para el cual el método Character.isJavaIdentifierPart(int) devuelve verdadero."

Con suerte, esto responde a su segunda pregunta.Respecto a tu primera pregunta;Tanto los profesores como (hasta donde puedo recordar) los compiladores de Java me han enseñado que el nombre de una clase de Java debe ser un identificador que comience con una letra mayúscula de la A a la Z, pero no puedo encontrar ninguna fuente confiable sobre esto.Al probarlo con OpenJDK, no hay advertencias al comenzar los nombres de clases con letras minúsculas o incluso con el signo $.Sin embargo, cuando utiliza un signo $, debe escapar de él si compila desde un shell bash.

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

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

  • Los nombres de clases de Java suelen comenzar con una letra mayúscula.
  • Los nombres de clases 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 nomenclatura se basa en El caso de Carmel Tipo.

Los nombres de las clases deben ser sustantivos en UpperCamelCase, con la primera letra de cada palabra en mayúscula.Utilice palabras completas: evite acrónimos y abreviaturas (a menos que la abreviatura se utilice mucho más 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

Los identificadores se utilizan para nombres de clases, 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 guión bajo y signo de dólar.No deben comenzar con un número, para que no se confundan con un literal numérico.Nuevamente, Java distingue entre mayúsculas y minúsculas, por lo que VALOR es un identificador diferente de Valor.Algunos ejemplos de identificadores válidos son:

AvgTemp, cuenta a4, $prueba, this_is_ok

Los nombres de variables no válidos incluyen:

2 cuentas, alta temperatura, No/bien

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top