„Hé, fiatal toborzó, aki nap mint nap egy rakás hibát követ el, még a legegyszerűbb programokban is!
"Öhm... Szia, Diego. Fiú, te tényleg tudod, hogyan kell felvidítani az embereket!"
"Természetesen igen! Tanuld meg kimondani, amit mondani kell. Mint mondtam, "minden nap". Udvariasabban fogalmazva az üdvözletem azt jelenti, hogy "a jövő sikeres programozója, ha természetesen nem rontja el" ."
"Ó, hát akkor köszönöm, legmetálosabb tanárom !
"Ezt a leckét követően meg fogod köszönni. Itt felsorolom a fordító által feljegyzett legnépszerűbb hibákat. A te feladatod pedig az, hogy emlékezz. Az előre figyelmeztetés fegyveres.
Pontosvessző elfelejtése
"A Java programozók leggyakoribb hibája a pontosvessző. Vagy inkább annak hiánya ott, ahol lennie kellene."
– Az igazság az, hogy... többször is elkövettem ezt a vétket.
"A metódusokon belül minden utasításnak pontosvesszővel kell végződnie. A pontosvessző az, ami elválasztja az utasításokat vagy parancsokat: így mondjuk meg a Java fordítónak, hogy hol végződik az egyik parancs, és hol kezdődik a következő.
Példák a hibákra:
Hibás kód | Helyes kód |
---|---|
|
|
|
|
|
|
Elfelejtette bezárni az idézeteket
"A Java újoncainak második leggyakoribb hibája az, hogy beírnak egy karakterláncot a kódba, majd elfelejtik bezárni az idézetet.
A kódban minden karakterláncot mindkét oldalon dupla idézőjelbe (") kell zárni. A kezdő programozók nagyon gyakran tesznek idézőjeleket a szöveg elejére, de elfelejtik bezárni a végén.
Hibás kód | Helyes kód |
---|---|
|
|
|
|
|
|
A húrok összeragasztásánál elfelejtett pluszjelet adni
"A karakterláncokkal való munka során egy másik gyakori hiba az, hogy elfelejtenek pluszjelet írni, amikor a karakterláncokat összeragasztják. Ez a hiba különösen akkor fordul elő, ha a szöveg és a változók egy hosszú kifejezésben vannak összefűzve a kódban.
Íme néhány példa:
Hibás kód | Helyes kód |
---|---|
|
|
|
|
|
|
Elfelejtette bezárni a göndör fogszabályzót
"Ez egy nagyon gyakori hiba. Két olyan helyzet van, amikor ez jellemző:
- Úgy döntöttél, hogy kódot másolsz valahonnan, és véletlenül kihagytál néhány göndör zárójelet.
- Egyszerűen nem zavarja magát, hogy megbizonyosodjon arról, hogy minden nyitott zárójelhez egy záró zárójel párosul."
"A második lehetőség az, amit csinálok. Néha annyira elragadok, hogy elfelejtem!" .
"A hibák elkerülése érdekében a kezdő programozóknak általában azt javasolják, hogy a záró göndör kapcsos zárójelet írják a nyitó alá.
Példák:
Hibás kód | Helyes kód |
---|---|
|
|
|
|
Elfelejtett zárójelet adni
„Ezt a hibát leggyakrabban olyan fejlesztők követik el, akik olyan programozási nyelveket ismernek, amelyekhez hasonló helyzetekben nincs szükség zárójelekre.
Az egyik lehetőség az, hogy egyszerűen elfelejtenek zárójelet tenni a metódushívás végére:
if-else
Egy másik lehetőség, hogy elfelejtik zárójelbe tenni egy állítás feltételét .
Példák:
Hibás kód | Helyes kód |
---|---|
|
|
|
|
main
A metódus deklaráció írása helytelen
"Amint kihirdetik a véres main
módszert! Valószínűleg semmi sem botránkoztatja meg annyira az újoncokat, mint ez a rossz módszer. Fontos, hogy ilyenkor mindig meglepődnek, és csodálkoznak, miért nem indul el a programjuk? És persze a programozó sem az. Nem hibáztatható, hanem a program, a fordító, a kódellenőrző, a Java gép stb. A bűnbakok listája végtelen.
Példák:
Hibás kód | Magyarázat |
---|---|
|
public hiányzik |
|
static hiányzik |
|
void hiányzik |
|
public és static hiányoznak |
|
[] hiányzik |
|
String[] args hiányzik |
|
Nekünk int van helyettevoid |
A fájl neve eltér az osztály nevétől
"A Java szabvány szerint minden Java osztályt az osztálynévvel megegyező nevű fájlban kell tárolni. És ahogy korábban említettük, itt a betűk kis- és nagybetűje számít:
Fájl név | Osztály név | jegyzet |
---|---|---|
Solution.java | Megoldás | Minden rendben |
A megoldás .java | Megoldás | A fájl neve felesleges "s" betűként |
s megoldás.java | Megoldás | A fájl neve kisbetűvel kezdődik |
Megoldás. txt | Megoldás | A fájl kiterjesztése .txt a .java helyett |
Solution.java | megoldás | Az osztály neve kisbetűvel kezdődik |
"Valójában több osztály is deklarálható egy .java kiterjesztésű fájlban, de ezek közül csak az egyiknek lehet szó public
az osztálynév előtt. És ennek a névnek meg kell egyeznie a fájl nevével.
"A .java fájlban mindig rendelkeznie kell egy osztálynak, amelynek neve megegyezik a fájlnévvel, és ennek az osztálynak rendelkeznie kell a public
módosítóval. Példa:
Solution.java |
---|
|
"Emellett a Java nyelv lehetővé teszi, hogy osztályokat írjon az osztályokon belül. Ez egy másik módja a fenti korlátozás megkerülésének. Ha egy nyilvános osztály (egy osztály a módosítóval public
) deklarálva van egy fájlban, és ugyanaz a neve, mint a fájlnév, akkor tetszőleges számú osztályt deklarálhat ezen a nyilvános osztályon belül. Ezek azonban többé nem lesznek közönséges osztályok. Ehelyett belső vagy beágyazott osztályok lesznek. Példa:
Solution.java |
---|
|
Elfelejtett írnipackage
"Mivel a programok általában több ezer osztályt tartalmaznak, nehéz lehet mindegyiknek egyszerű, érthető és egyedi nevet találni. Éppen ezért a Java-ban szokás az osztályokat a kulcsszó használatával csomagokba csoportosítani. Pontosan a fájlok csoportosításának package
módja mappákba."
"Ah-ha, ezért minden osztálynak a csomag megjelölésével kell kezdődnie, amelyhez tartozik."
"Pontosan. Íme egy példa:
Kód csomag nélkül | Helyesbített példa |
---|---|
|
|
Elfelejtett hozzátenniimport
import
"Ha valaki más osztályát szeretnénk használni a programunkban, két lehetőségünk van: a kódunkban mindenhol a csomag nevét is be kell írnunk az osztály neve elé. Alternatív megoldásként a teljes képzésű osztálynevet egyszer beírhatjuk a kulcsszóval. . Példa:
Import használata nélkül | Importálás használata |
---|---|
|
|
"Mindkét opció működik, de ha egyszerűen beírod Scanner
a kódot anélkül, hogy hozzáadnád a -t import
, akkor a fordító nem fogja tudni, hogy melyik csomagból kell átvennie az Scanner
osztályt, és a programod nem fog lefordítani."
– Köszönöm, Diego. Ez a lecke arra késztet, hogy jobban odafigyeljek.
"Ez az, amire számítottam. Sok szerencsét!"
GO TO FULL VERSION