Gyakorlati alapok
Ami már eddig is nagyon hiányzott: az adatbekérés
Az adatbekérés során a programot interaktívvá tesszük...
...azaz megengedjük a felhasználónak, hogy a program valamelyik pontján beavatkozzon a működésébe. A felhasználói programok többsége ilyen jellegű és ez a programfejlesztés irányai szempontjából fokozatosan döntő jelentőségűvé vált. Ezáltal a program jóval személyesebbé, testre szabhatóvá, ezáltal "emberbarátivá" válik, ám a felhasználói beavatkozás komoly biztonsági kockázatokat is hordoz magában. Ezzel ma már minden programozó tisztában van...
...alapkövetelmény tehát a programok "bolondbiztossá" tétele, amely során körültekintő módon lekezeljük, hogy felhasználói beavatkozás során ne kerülhessen rossz vagy káros adat a rendszerbe.
Az alapszintű, adatbekéréses algoritmusoknál azonban erre még nem fogunk törekedni, mert ez feleslegesen megterhelné a tananyag elsajátítását. A későbbiekben ezzel akkor fogunk foglalkozni, amikor ezeket a rutinokat külön metódusokba tudjuk majd illeszteni.
Az adatfogadásért felelős rutingyűjtemény a java.util csomagban található (import java.util.Scanner;). Mivel fontos (manapság már alapkövetelmény) a felhasználóval történő folyamatos kommunikáció, üzenetek, egyéb jelzések formájában mindig tájékoztatni kell őt a történtekről. Először üdvözöljük a felhasználót, majd kérjük be a nevét, hogy aztán kiírjuk azt a konzolra:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner (System.in);
System.out.println ("Üdvözlöm! \nKérem, hogy adja meg a
nevét!");
String nev = scanner.nextLine();
System.out.println (nev);
}
}
Végeredmény (például):
Üdvözlöm!
Kérem, hogy adja meg a nevét!
Kákonyi Monília
Kákonyi Monília
Persze valójában bármilyen karakterfüzért (stringet) vagy karakterkombinációt beadhatunk, mivel a beviteli karakterek figyelése már említett módon nincs lekezelve.
Osztálypéldányosítás után (Scanner scanner = new Scanner (System.in);) a scanner nevű objektum nextLine() metódusa gondoskodik az adatok billentyűzeten keresztül történő fogadásáról. A begépelt karakterfüzér a String nev objektumba kerül, a karakterbevitelt ENTER lenyomásával zárhatjuk le, a Java-kód csak ezután fut tovább, kiírva a bevitt nevet-karakterfüzért. A 2. üzenet közepén lévő \n szimbólum ("Üdvözlöm! \nKérem, hogy adja meg a nevét!") a szövegben sortörést okoz kiíráskor.
Ennyi a továbbiak folytatásához talán elég is; a kód gyorsan és pontosan, de még ellenőrizetlenül kér be valamilyen felhasználói adatot.