Gyakorlati alapok I.
Kommentelés
A kommentelés, azaz a forráskód jegyzetekkel való ellátása általában cégenként-személyenként különböző szintű elvárás. Én láttam már viszonylag nehezen értelmezhető kódot nevetségesen bárgyú, azaz lényegében használhatatlan kommenteléssel, ám a programozók többsége a kódot érthetően és logikusan kommenteli, több okból:
-
elsősorban önmagunk számára szükséges a kommentelés, hiszen egyáltalán nem biztos, hogy a kódra hónapokkal később is fogunk emlékezni,
-
másrészről az utánunk jövő programozó érdekében, ebből következően sok cégnél egyszerűen alapkövetelmény,
-
ráadásként bizonyos fajta kommentből dokumentáció is készíthető, amely már abszolút megéri a beléfektetett energiát.
Ha maximalisták vagyunk, akik nem engedünk ki kezeink közül semmilyen virtuális szemetet, akkor a kommentelésre éppúgy odafigyelünk, mint magára a forráskódra, ez tehát míg egyeseknél külső kényszer, másoknál belülről jövő, spontán minőségbiztosítás.
Kommentet a forráskódban sokféle célból készíthetünk:
-
copyright és egyéb adatok közlésére,
-
nehezen érthető forráskód-részletek magyarázatára,
-
a programozandó probléma, például a matematikai apparátus előzetes felvázolására,
-
egyéb, belső üzenetek közlésére,
-
dokumentáció készítésére.
1 soros komment - //
//Ezen 2 jel után 1 sorban már bármit írhatunk…
…nincs hatással a programvégrehajtásra. A rövid kommentek gyors lehetősége.
Az 1 soros kommentet használhatjuk akár több sorban is:
//Ide bármit írhatunk
//sőt ide is
Több soros komment (blokk komment) - /* */
/*
Ide aztán tényleg
bármilyen terjedelemben
írhatunk
*/
A 2 jel közé tehát bármennyi szöveget írhatunk bármennyi terjedelemben.
Néha hosszú, egységes kódszakaszokat kell ideiglenesen kikommentelnünk, hogy egy másik kódot próbáljunk ki és addig ne zavarjanak minket. Az alábbi képen egy ilyen kisebb, félkész projektet láthatunk, ahol az éppen nem használatos függvények kommenteléssel "ki vannak takarva", hogy futásuk ne zavarja az éppen tesztelteket:
A kódkitakarás műveletét az Eclipse-en belül automatizálni is tudjuk. Jelöljük ki a szakaszt, majd adjuk ki a Source → Toggle Comment parancsot és az Eclipse minden egyes sorát 1 soros kommentjellel ki fogja kommentezni.
//public class Main {
// public static void main(String[] args) {
// System.out.println("Hello World!");
// }
//}
A parancs meg is fordítható ugyanilyen módon: kijelölés → parancskiadás.
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Végerdmény:
Hello World!
A fentiekhez hasonló funkciójú és hatású a Source → Add Block Comment is…
/*public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}*/
…megszüntetése a Remove Block Comment paranccsal lehetséges.
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Végerdmény:
Hello World!
Dokumentációs komment - /** */
A Source → Generate Element Comment parancs hatására az Eclipse több soros, üres, de dupla csillaggal kezdődő kommentmezőt illeszt az aktuális forráskód fejlécébe (első soraiba):
/**
* @author user
*
*/
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Végerdmény:
Hello World!
Ha ezt azonos csomagban lévő osztályban tesszük meg, akkor később, az osztályra történő hivatkozáskor -ha a kurzort a kommentelt osztálymetódus fölé helyezzük-, a kommentszöveg sárga szövegtéglalap formájában meg fog jelenni. (Belátom, hogy kezdők ebből semmit nem értenek és sajnos még lefotózni se tudtam.)
Konkrétan: a 2 fenti osztály (Teszt és Main) azonos projektben, azonos csomagon belül helyezkedik el. A Main osztály main() függvényében hivatkozás van a Teszt osztály javadocs metódusára (Teszt.javadocs()). A kurzort föléje helyezve, a kommentszöveg meg fog jelenni sárga téglalapban.
Ami még ennél is lényegesebb: a dupla csillaggal kezdődő, dokumentációs kommentek bekerülhetnek a program dokumentációjába, mert a fejlesztő környezet képes ebből további dokumentumokat generálni. Ezt a Projekt → Generate Javadocs parancs kiadásával, valamint további paraméterek beállításával tudjuk megtenni: