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ę?
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ę?
Odpowiedzi:
clazzjest 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ść. clazzpo 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.
Foozdefiniowane w zakresie klasy i foow zakresie lokalnej zmiennej powinny być legalne, ale wszystkie odniesienia do zmiennej klasy zakres, w zakresie lokalnego powinny wymagać this.Foo. Taka zasada ...
someThingw niektórych miejscach i sOmEtHiNgw innych.
fnordi pole wywoływane fnordbez ż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.
Po prostu dlatego, że „class” jest zastrzeżonym słowem kluczowym, dlatego Class classnie jest dozwolone. Dlatego zobaczysz Class clazzlub Class cls.
Classponieważ w danym projekcie jest tak wiele klas, że nazywanie klasy THE klasą wydaje się bezcelowe. Nie przychodzi mi też do class
ClassInformationlub ClassMetadatalub coś podobnego. Każda klasa jest klasą, ale nie nazywa się ich wszystkich Class, 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 classoznacza token w innym kontekście. Jest to twarda i szybka reguła, która classniezależ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ć classjako nazwy zmiennej. Chociaż myślę, że dużo lepsze byłoby wykorzystanie twojego czasu po prostu clazzlub klass- prawdopodobnie byłoby to również dobre dla twojego zdrowia.
Java nie ma funkcji umożliwiającej użycie słowa kluczowego jako identyfikatora, w przeciwieństwie do C # z jego @prefiksem (np. @classJest prawidłowym identyfikatorem).
classi $classoba 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.
Deklaracja Class clazzjest 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 Classobiekt reprezentuje typ , ja osobiście wolę deklarować takie zmienne jak Class type.
Mówiąc najprościej, classma klasę, której clazznie ma.