Eu já vi muitos códigos com uma declaração como Class clazz
, de onde isso se origina? Isso é algum tipo de convenção? Eu acho que 'clazz' não é nem mesmo uma palavra em inglês, não tem sentido algum, como tantos programadores podem nomear um nome errado por coincidência?
java
naming-conventions
Serrador
fonte
fonte
сlass
grafia com um cirílicoс
como alternativa.Respostas:
clazz
foi usado em Java no lugar da palavra reservada "class" desde o JDK 1.0. "class" é o que você deseja, mas abreviar ou inserir lixo eletrônico ("a", "the", "_" etc.) reduz a clareza.clazz
apenas diz classe. Os falantes de inglês "internacionais" (aqueles que lêem inglês britânico e americano) estão acostumados a transpor 's' e 'z'.Desde que o Java divulgou a origem e uma cultura adequada desde o início, os valiosos códigos e tutoriais Java adotam as mesmas convenções. Essa é uma das grandes coisas do ecossistema Java, que eu acho que foi uma parte importante do seu sucesso.
fonte
Foo
definição no escopo da classe efoo
no escopo da variável local deve ser legal, mas todas as referências à variável do escopo da classe no escopo do local devem exigirthis.Foo
. Essa regra seria ... #someThing
em alguns lugares esOmEtHiNg
em outros.fnord
e um campo chamadofnord
sem problemas, maiúsculas ou palavras sem sentido. Eu acho que isso será suficiente como um contra-exemplo.Porque eles não podem usar a palavra que desejam usar
class
. Está reservado.fonte
É simplesmente porque 'class' é uma palavra-chave reservada, portanto,
Class class
não é permitido. Portanto, você veráClass clazz
ouClass cls
.fonte
Class
pois existem tantas classes em qualquer projeto que chamar uma classe de A classe parece meio inútil. Eu também não posso pensar em uma razão para chamar uma variávelclass
...ClassInformation
,ClassMetadata
ou algo semelhante. Toda classe é uma classe, mas você não nomeia todos elesClass
, nomeia-os pela função principal deles.Tudo se resume ao compilador real e sua capacidade de distinguir o que um token significa dentro de seu contexto. No entanto, nesse caso em particular, é incapacidade do compilador distinguir o que o token
class
significa em um contexto diferente. É uma regra rígida e rápida queclass
, independentemente de seu contexto, é usada para denotar a declaração de uma classe e, como tal, é uma palavra reservada . Isso é tão simples e tão baixo quanto possível.Se você se sentir compelido, poderá escrever seu próprio compilador Java para incluir uma regra contextual que permitirá que você use
class
como um nome de variável. Embora eu ache que seria muito melhor usar seu tempo apenas para usarclazz
ouklass
- provavelmente seria bom para sua saúde também.fonte
Vi pela primeira vez nos enigmas de Josh Bloch. Mas tenho certeza de que foi usado muito antes por outros desenvolvedores. Josh Bloch apenas tornou mais famoso.
fonte
Java não possui um recurso que permita o uso de uma palavra-chave como identificador, diferente do C # com seu
@
prefixo (por exemplo,@class
é um identificador válido).fonte
class
e$class
são identificadores válidos (mas diferentes) na JVM. Não há identificador para o qual você possa escrever em um arquivo de origem Java que seja traduzido"class"
na VM.É apenas uma palavra em inglês substituída (Equavalente) por Keyword Class Keyword, para que as pessoas entendam que é uma classe. e é quase para aumentar a legibilidade do Código
Nada grande lógica envolvida neste
fonte
A declaração
Class clazz
é popular no mundo Java, mas pode ser estranha para iniciantes e corretores ortográficos. Ouvi algumas pessoas dizendo que isso deve ser evitado de acordo com o princípio de menor espanto .Como é possível dizer que um
Class
objeto representa um tipo , eu pessoalmente prefiro declarar variáveis comoClass type
.fonte
Usamos clazz porque class é um cabeçalho de tipo. Por exemplo, você usa a classe aqui:
e aqui:
Infelizmente, temos que usar nomes alternativos, como clazz.
fonte
Simplificando,
class
tem classe queclazz
não.fonte