Widziałem wiele kodów z deklaracją, na przykład Class clazz
, skąd się to bierze? Czy to jakaś konwencja? Myślę, że „clazz” nie jest nawet angielskim słowem, nie ma żadnego znaczenia, jak tak wielu programistów może przypadkowo nazwać błędną nazwę?
java
naming-conventions
Tracz
źródło
źródło
сlass
pisowni z cyrylicąс
.Odpowiedzi:
clazz
jest używany w Javie zamiast zarezerwowanego słowa „klasa” od JDK 1.0. „Klasa” jest tym, czego chcesz, ale skracanie lub wstawianie śmieci („a”, „the”, „_” itp.) zmniejsza przejrzystość.clazz
po prostu mówi klasa. „Międzynarodowi” użytkownicy języka angielskiego (ci, którzy czytają zarówno brytyjski, jak i amerykański język angielski) są przyzwyczajeni do transpozycji „s” i „z”.Ponieważ Java od samego początku ujawniła źródło i odpowiednią kulturę, wartościowy kod Java i samouczki mają te same konwencje. To jedna z największych zalet ekosystemu Java, która moim zdaniem była ważną częścią jego sukcesu.
źródło
Foo
zdefiniowane w zakresie klasy ifoo
w zakresie lokalnej zmiennej powinny być legalne, ale wszystkie odniesienia do zmiennej klasy zakres, w zakresie lokalnego powinny wymagaćthis.Foo
. Taka zasada ...someThing
w niektórych miejscach isOmEtHiNg
w innych.fnord
i pole wywoływanefnord
bez żadnych problemów, wielkich liter i bezsensownych słów. Myślę, że to wystarczy jako kontrprzykład.Ponieważ nie mogą użyć słowa, którego chcą użyć, którym jest
class
. To jest zarezerwowane.źródło
Po prostu dlatego, że „class” jest zastrzeżonym słowem kluczowym, dlatego
Class class
nie jest dozwolone. Dlatego zobaczyszClass clazz
lubClass cls
.źródło
Class
ponieważ w danym projekcie jest tak wiele klas, że nazywanie klasy THE klasą wydaje się bezcelowe. Nie przychodzi mi też doclass
ClassInformation
lubClassMetadata
lub coś podobnego. Każda klasa jest klasą, ale nie nazywa się ich wszystkichClass
, tylko ich główną funkcją.Sprowadza się do faktycznego kompilatora i jego zdolności do rozróżnienia, co oznacza token w swoim kontekście. Jednak w tym konkretnym przypadku to niezdolność kompilatora do rozróżnienia, co
class
oznacza token w innym kontekście. Jest to twarda i szybka reguła, któraclass
niezależnie od kontekstu jest używana do oznaczenia deklaracji klasy i jako taka jest słowem zastrzeżonym . To jest tak proste i tak niskie, jak to tylko możliwe.Jeśli czujesz się zmuszony, możesz napisać własny kompilator języka Java, aby zawierał regułę kontekstową, która pozwoli ci użyć
class
jako nazwy zmiennej. Chociaż myślę, że dużo lepsze byłoby wykorzystanie twojego czasu po prostuclazz
lubklass
- prawdopodobnie byłoby to również dobre dla twojego zdrowia.źródło
Najpierw zobaczyłem to u łamigłówek Josha Blocha. Ale jestem prawie pewien, że był używany znacznie wcześniej przez innych programistów. Josh Bloch właśnie uczynił go bardziej znanym.
źródło
Java nie ma funkcji umożliwiającej użycie słowa kluczowego jako identyfikatora, w przeciwieństwie do C # z jego
@
prefiksem (np.@class
Jest prawidłowym identyfikatorem).źródło
class
i$class
oba są prawidłowymi (ale różnymi) identyfikatorami w JVM. Nie ma identyfikatora, który można zapisać w pliku źródłowym Java, który można przetłumaczyć"class"
na maszynie wirtualnej.Jest to po prostu angielskie słowo zastąpione (Równoważne) słowem kluczowym klasy, aby ludzie zrozumieli, że jest to klasa. i prawie ma na celu zwiększenie czytelności Kodeksu
Nie ma w tym nic wielkiego logiki
źródło
Deklaracja
Class clazz
jest popularna w świecie Java, ale może być niewygodna dla nowicjuszy i osób sprawdzających pisownię. Słyszałem, jak niektórzy mówili, że należy tego unikać zgodnie z zasadą najmniejszego zdziwienia .Ponieważ można powiedzieć, że
Class
obiekt reprezentuje typ , ja osobiście wolę deklarować takie zmienne jakClass type
.źródło
Używamy clazza, ponieważ class jest nagłówkiem typu. Na przykład używasz tutaj class:
i tu:
Więc niestety musimy używać alternatywnych nazw, takich jak clazz.
źródło
Mówiąc najprościej,
class
ma klasę, którejclazz
nie ma.źródło