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

сlassortografía con un cirílicoсcomo alternativa.Respuestas:
clazzse 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.clazzsolo 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
Foodefinición en el alcance de la clase yfooen 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 ...someThingen algunos lugares ysOmEtHiNgen otros.fnordy un campo llamadofnordsin 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 classlo tanto, no está permitida. Por lo tanto, veráClass clazzoClass cls.fuente
Classya 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,ClassMetadatao 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
classsignifica 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
classcomo nombre de variable. Aunque creo que sería mucho mejor usar su tiempo para usarloclazzoklass, 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,@classes un identificador válido).fuente
classy$classson 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 clazzes 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
Classobjeto 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,
classtiene una clase queclazzno.fuente