it-swarm-eu.dev

Platné znaky ve jménu třídy Java

Jaké znaky jsou platné v názvu třídy Java? Jaká další pravidla upravují názvy tříd Java (například názvy tříd Java nemohou začínat číslem)?

64
Zach

Můžete mít téměř jakýkoli znak, včetně většiny znaků Unicode! Přesná definice je v Java Language Specification v sekci 3.8: Identifikátory .

Identifikátor je neomezená sekvence znaků Java písmen a číslic Java, z nichž první musí být písmeno Java. ...

Písmena a číslice mohou být kresleny z celé znakové sady Unicode, ... To umožňuje programátorům používat identifikátory ve svých programech, které jsou napsány v jejich rodných jazycích.

Identifikátor nemůže mít stejný pravopis (posloupnost znaků Unicode) jako klíčové slovo (§3.9), boolean literál (§3.10.3) nebo nulový literál (§3.10.7), nebo nastane chyba kompilace.

Viz tato otázka pro to, zda byste to měli udělat.

54
Jason Cohen

Každý programovací jazyk má vlastní sadu pravidel a konvencí pro druhy názvů, které můžete používat, a programovací jazyk Java se neliší. Pravidla a konvence pro pojmenování proměnných lze shrnout takto:

  • Názvy proměnných rozlišují velká a malá písmena. Název proměnné může být jakýkoliv právní identifikátor - sekvence neomezené délky písmen a číslic Unicode, začínající písmenem, znak dolaru "$" nebo znak podtržítka "_". Konvence je však vždy začít s názvy proměnných s písmenem, ne "$" nebo "_". Navíc znak znaku dolaru podle úmluvy se nikdy nepoužívá vůbec. Můžete najít některé situace, kdy automaticky generované názvy budou obsahovat znak dolaru, ale názvy proměnných by se měly vždy vyhnout jeho použití. Podobná konvence existuje pro znak podtržení; zatímco je technicky legální začít s názvem proměnné "_", tato praxe je odrazována. Bílý prostor není povolen.

  • Následující znaky mohou být písmena, číslice, znaky dolaru nebo znaky podtržítka. Konvence (a zdravý rozum) platí také pro toto pravidlo. Při volbě názvu proměnných použijte namísto kryptografických zkratek plná slova. Pokud tak učiníte, bude váš kód jednodušší a srozumitelnější. V mnoha případech bude váš kód také dokumentovat sám; pole s názvem kadence, rychlost a rychlost, například, jsou mnohem intuitivnější než zkrácené verze, například s, c a g. Nezapomeňte také, že zvolené jméno nesmí být klíčové slovo ani vyhrazené slovo.

  • Pokud zvolený název obsahuje pouze jedno slovo, hláskujte slovo ve všech malých písmenech. Pokud se skládá z více než jednoho slova, zadejte velké písmeno každého následujícího slova. Názvy gearRatio a currentGear jsou hlavními příklady této konvence. Pokud vaše proměnná ukládá konstantní hodnotu, jako je static final int NUM_GEARS = 6, úmluva se mírně změní, kapitalizuje každé písmeno a odděluje následující slova znakem podtržítka. Podle konvence se znak podtržení nikdy nepoužívá jinde. 

Z oficiální Java Tutorial .

16
Ivan Bosnic

Kromě předchozích odpovědí stojí za zmínku, že:

  1. Java povoluje jakýkoli symbol měny Unicode v názvech symbolů, takže všechny budou fungovat:

$ var1 £ var2 € var3

Věřím, že použití symbolů měn pochází z C/C++, kde proměnné přidané do vašeho kódu kompilátorem běžně začínaly s '$'. Zřejmým příkladem v jazyce Java jsou názvy souborů „.class“ pro vnitřní třídy, které mají podle konvencí formát „Outer $ Inner.class“

  1. Mnozí programátoři C # a C++ přijali konvenci umístění „I“ před rozhraní (tzv. Čisté virtuální třídy v C++). Toto není vyžadováno, a proto ne hotový, v Javě protože klíčové slovo implementuje to velmi jasné když něco je rozhraní.

Porovnat:

class Zaměstnanec: public IPayable // C++

s

třída Zaměstnanec: IPayable // C #

class Zaměstnanec implementuje Payable // Java

  1. Mnoho projektů používá konvenci umístění podtržítka před názvy polí, takže mohou být snadno odlišeny od lokálních proměnných a parametrů, např.

private double _salary;

Malá menšina umístí podtržítko za název pole, např.

soukromý dvojitý plat_;

9
Garth Gilmour

Jak již uvedl Jason Cohen, Java Language Specification definuje, co je právní identifikátor v sekci 3.8:

"Identifikátor je neomezená posloupnost písmen Java a číslic Java, z nichž první musí být písmeno Java. [...]" Písmeno Java "je znak, pro který metoda Metoda. isJavaIdentifierStart (int) vrátí hodnotu true. Písmeno 'Java nebo číslice' je znak, pro který metoda Character.isJavaIdentifierPart (int) vrací hodnotu true. "

To snad odpoví na vaši druhou otázku. Pokud jde o vaši první otázku; Učili mě učitelé a (pokud si vzpomínám) kompilátory jazyka Java, že název třídy Java by měl být identifikátor, který začíná velkým písmenem A-Z, ale nemohu na něm najít žádný spolehlivý zdroj. Když to zkoušíte s OpenJDK, neexistují žádná varování, když začínáte názvy tříd s malými písmeny nebo dokonce znakem $. Pokud používáte znak $, musíte ho uniknout, pokud kompilováte z bash Shell.

4
EriF89

Chtěl bych přidat k bosnicím odpověď, že jakýkoli platný znak měny je legální pro identifikátor v Javě. € € je právní identifikátor, stejně jako €. Nicméně nemohu přijít na to, jak upravit jeho odpověď, takže jsem nucen tento triviální doplněk dodat.

2
MetroidFan2002

Jaká další pravidla upravují názvy tříd Java (například názvy tříd Java nemohou začínat číslem)?

  • Jména třídy Java obvykle začínají velkým písmenem.
  • Jména třídy Java nemohou začínat číslem.
  • pokud existuje více slov ve jménu třídy jako "MyClassName", každé slovo by mělo začínat velkým písmenem. např. "MyClassName". Tato jmenná konvence je založena na CamelCase Type.
1
Deepak Kumar

Názvy tříd by měly být substantiva v UpperCamelCase, s prvním písmenem každého Wordu. Používejte celá slova - vyhněte se zkratkám a zkratkám (pokud zkratka není mnohem širší než dlouhá forma, například URL nebo HTML). Konvence pojmenování si můžete přečíst zde:

http://www.Oracle.com/technetwork/Java/codeconventions-135099.html

0
Sachin Tiwari

Identifikátory se používají pro názvy tříd, názvy metod a názvy proměnných. Identifiermay je jakákoliv popisná posloupnost velkých a malých písmen, čísel nebo znaku znaku a znaku dolaru. Nesmí začínat číslem, aby se neshodovali s číselným literálem. Java opět rozlišuje velká a malá písmena, takže VALUE je odlišný identifikátor než hodnota Některé příklady platných identifikátorů jsou:

AvgTemp, count a4, $ test, this_is_ok

Neplatné názvy proměnných zahrnují:

2Kunt, high-temp, Not/ok

0
navneet kumar