Elméleti alapozás
Az adatok, metódusok elnevezésének problémái
Programozás során az általunk generált összes változónak, adatnak, metódusnak, osztálynak nekünk kell nevet adni. Alapértelmezésben ez nem nehéz, bár hanyag elnevezések esetén komoly problémákba futhatunk bele. Az alábbi összefoglalóban tiltott vagy nem ajánlott elnevezések pirossal lesznek jelölve.
Először is vannak a Java-nyelv által lefoglalt szavak, szótöredékek, ezek használata tiltott, ezért egyetlen komolyabb programfejlesztő platform sem engedi.
Ezek a következők:
-
abstract
-
assert
-
boolean
-
break
-
byte
-
case
-
catch
-
char
-
class
-
const
-
continue
-
default
-
do
-
double
-
else
-
enum
-
extends
-
false
-
final
-
finally
-
float
-
for
-
goto
-
if
-
implements
-
import
-
instanceof
-
int
-
interface
-
long
-
native
-
new
-
null
-
package
-
private
-
protected
-
public
-
return
-
short
-
static
-
strictfp
-
super
-
switch
-
synchronized
-
this
-
throw
-
throws
-
transient
-
true
-
try
-
void
-
volatile
-
while
A változók-metódusok-osztályok elnevezésének belső logikát és rendszerezettséget kell tükröznie, ráadásul bizonyos nem szabványosított, de programozói környezetben elvárt konvencióknak is meg kell felelnie. Ha ezt sikerül elérnünk, akkor –mivel maga a Java-nyelv is gondolatközpontú-, megírt kódunk jól olvashatóvá és átláthatóvá fog válni.
Programozói körökben ezt úgy is szokták mondani, hogy a az elnevezések legyenek mindig beszédesek.
Ugyanakkor kerüljük az alábbi egyéb tiltásokat:
-
= + - / . % ! @ # % ^ & * ( ) ' „ ” : ; [] /\ {} → tiltott karakterek
-
int 7lepes = 7; → név nem kezdődhet számmal (0-9)
-
int LEPES-SZAMLALO = 30; → név nem tartalmazhat kötőjelet (-)
Továbbá kerüljük az alábbi belső, zavaró önellentmondásokat:
-
int hat = 7; → ellentmondás: hat nem lehet 7
-
boolean igazNemIgaz; → ellentmondás: a név mindkét választást tartalmazza
-
boolean bucoMaci; → értelmetlenség: nem tiltott, de nehezen képzelhető el, hogy az adattípus és elnevezése között lenne bármilyen kapcsolat,
-
String autoszin és String autoSzin → megengedett, de a 2 változó között csak 1 betűnyi különbség van és ez zavart okozhat
-
String ¥kac£go$¢ → megengedett, de meglehetősen furcsa
Hosszabb távon magunknak kedvezünk, ha a következő nem szabályos, de hallgatólagosan, a programozók közössége által elvárt névelnevezési konvenciókat követjük:
-
a Java-nyelv már képes magyar ékezetes betűket is megjeleníteni, ám a magam részéről ettől a lehetőségtől a biztonságos névmegjelenítés érdekében eltekintek;
-
a változók elnevezése logikusan, jól beazonosítható módon tükrözze a modellezett körülményeket → int eredmeny = 0;
-
a változók neveit kisbetűvel kezdjük → int tarolo = 0;
-
ha a változónév összetett, akkor az összetétel 2. szavának kezdőbetűje legyen nagybetű (ezt nevezik camel case-nek) → String valtozoNev = ”valami”;
-
ha változó egy állandó, azaz nem változó értéket képvisel, akkor írjuk ki folyamatos nagybetűvel → final double PI = 3.1415;
-
a fentiek érvényesek a metódus-elnevezésekre is → double szazalekSzamitas(); (Egyes szakkönyvek szerint a metódusneveket igével kell elneveznünk, például szazalekSzamitas() helyett szazalekSzamit(). A magam részéről ezt a konvenciót nem követem, jobban szeretem a főneves elnevezéseket.);
-
az osztályneveket mindig nagybetűvel kezdjük → class Felhasznalo {}.