He visto que muchos códigos tienen declaraciones como Class clazz
, ¿de dónde se origina esto? ¿Es esto algún tipo de convención? Creo que 'clazz' ni siquiera es una palabra en inglés, no tiene ningún significado, ¿cómo pueden tantos programadores nombrar un nombre incorrecto por coincidencia?
java
naming-conventions
Aserrador
fuente
fuente
сlass
ortografía con un cirílicoс
como alternativa.Respuestas:
clazz
se ha utilizado en Java en lugar de la palabra reservada "clase" desde JDK 1.0. "clase" es lo que desea, pero abreviar o insertar basura ("a", "el", "_", etc.) reduce la claridad.clazz
solo dice clase. Los hablantes de inglés "internacionales" (los que leen inglés británico y estadounidense) están acostumbrados a transponer 's' y 'z'.Dado que Java ha revelado la fuente y una cultura adecuada desde el principio, el código y los tutoriales de Java que valen la pena recogen las mismas convenciones. Esa es una de las mejores cosas del ecosistema de Java, que creo que ha sido una parte importante de su éxito.
fuente
Foo
definición en el alcance de la clase yfoo
en el alcance de la variable local debe ser legal, pero todas las referencias a la variable del alcance de la clase dentro del alcance del local deben requerirthis.Foo
. Tal regla sería ...someThing
en algunos lugares ysOmEtHiNg
en otros.fnord
y un campo llamadofnord
sin ningún problema, mayúsculas o palabras sin sentido. Creo que eso será suficiente como contraejemplo.Porque no pueden usar la palabra que quieren usar, que es
class
. Es reservadofuente
Es simplemente porque 'clase' es una palabra clave reservada, por
Class class
lo tanto, no está permitida. Por lo tanto, veráClass clazz
oClass cls
.fuente
Class
ya que hay tantas clases en un proyecto dado que llamar a una clase THE class parece algo inútil. Tampoco se me ocurre una razón para llamar a una VARIABLEclass
...ClassInformation
,ClassMetadata
o algo similar. Cada clase es una clase, pero no los nombra a todosClass
, los nombra por su función principal.Se trata del compilador real y su capacidad para distinguir lo que significa un token dentro de su contexto. Sin embargo, en este caso particular, es la incapacidad del compilador para distinguir lo que
class
significa el token en un contexto diferente. Es una regla dura y rápida queclass
, independientemente de su contexto, se utiliza para denotar la declaración de una clase y, como tal, es una palabra reservada . Eso es tan simple y de bajo nivel como se pone.Si se siente obligado, podría escribir su propio compilador de Java para incluir una regla contextual que le permita usar
class
como nombre de variable. Aunque creo que sería mucho mejor usar su tiempo para usarloclazz
oklass
, probablemente, también sería bueno para su salud.fuente
Lo vi primero en los rompecabezas de Josh Bloch. Pero estoy bastante seguro de que otros desarrolladores lo usaron mucho antes. Josh Bloch lo hizo más famoso.
fuente
Java no tiene una función que le permita usar una palabra clave como identificador, a diferencia de C # con su
@
prefijo (por ejemplo,@class
es un identificador válido).fuente
class
y$class
son identificadores válidos (pero diferentes) en la JVM. No hay un identificador que pueda escribir en un archivo fuente Java que se traduzca"class"
en la VM.Es solo una palabra en inglés reemplazada (Equavalent) por Keyword Class Keyword, para que la gente entienda que es una Clase. y es casi para aumentar la legibilidad del Código
Nada de gran lógica involucrada en esto
fuente
La declaración
Class clazz
es popular en el mundo de Java, pero puede ser incómodo para los recién llegados y los correctores ortográficos. He escuchado a algunas personas decir que debe evitarse de acuerdo con el principio de mínimo asombro .Como es posible decir que un
Class
objeto representa un tipo , personalmente prefiero declarar variables comoClass type
.fuente
Usamos clazz porque class es un tipo de encabezado. Por ejemplo, usa clase aquí:
y aquí:
Desafortunadamente, tenemos que usar nombres alternativos como clazz.
fuente
En pocas palabras,
class
tiene una clase queclazz
no.fuente