2020. november 24., kedd

Java-nyelv néhány összetett adattípusa

Az egyszerű adattípus egyik legfontosabb tulajdonsága, hogy mérete már keletkezésekor,  létrehozásakor egzakt módon behatárolható. Például egy int típusú változó deklarálása pontosan 32 bitet fog lefoglalni a műveleti memóriában, nem többet, nem kevesebbet. Ám egy leírt mondat ("Rossz adatbevitel! Kérem próbálja újra!") vajon mennyi bitet igényel?

Természetesen ez alapjában véve szintén gyorsan megoldható, ám a mondatot már nem lehet belegyömöszölni a memóriába egyszerű adattípusként vagy ha megkíséreljük, akkor programozás-technikailag rossz úton járunk. A megoldás a Java alkotói számára az összetett adattípusok bevezetése volt, amelyek több feltételt is teljesítenek:

előre megszabható nagyságú memóriaterületet foglalnak le (például 10 elemű tömb esetében int[] tomb = new int[10]), vagy van lehetőség dinamikus memóriaterület-foglalásra is (amikor nem látjuk előre, hogy mekkora lesz a tárolandó adatmennyiség).

míg az egyszerű adattípusok csakis 1 db elemet tárolnak (például egy számot: int a = 23), addig az összetett adattípusok képesek több elemet is, még pedig rendszerezetten és könnyen visszakereshető módon.

Kezdők szintjén a legfontosabb összetett adattípusok:

String

StringBuilder és StringBuffer

Tömb

Kétdimenziós tömb

Tömbök tömbje

A csomagoló osztályok (wrapper classes)


Ismétlés:

http://www.informatika-programozas.hu/informatika_java_programozas_elmelet_technologia.html
Metódus

A metódus (method) bemeneti adato(ka)t és legtöbbször több műveletet foglal magába, általában 1, de a műveletnél magasabb szintű probléma megoldására hivatott. Ilyen lehet például a százalékszámítás, amely során 2, esetleg 3 bemeneti adat és több művelet felhasználásával osztanunk és szoroznunk is kell (lásd az alábbi kódot).  A metódus további fontos tulajdonsága, hogy lehet 1 visszatérési értéke (return), amely voltaképpen a metódus egyetlen kimeneti adata. (A metódusnak lehet több kimeneti adata is, ha összetett típusba, például tömbbe van csomagolva.) Ezzel valójában nem mondtunk újat, mert a cél mindig is a helyes kimeneti adat produkálása volt, de ha megtesszük, hogy a metódust egyetlen, kívülről nem, vagy csak nagyon szabályozott feltételekkel módosítható egységbe zárjuk, akkor programozás-technikailag nagyot léptünk egy új, még fejlettebb irányba, ez pedig az objektumorientált programozás.
Az újfajta metódusszemlélet azonban még tovább fokozható: számos metódust előre megírhatunk és később könnyen felhasználhatjuk őket, ha pedig rendszerezve lesznek, akkor egy elképesztően praktikus „programozási közkönyvtárrá” fognak válni. Például átnevezni sem tudjuk a Main osztálynevet, mert szintén fordítási hibát kapunk (ekkor az osztálynév és a kódot tartalmazó .java szövegfájl, azaz a forrásállomány neve nem lesz azonos), helyette refaktorálnunk kell (Gyorsan tanuljuk meg: a refaktorálás című fejezet). Deklarációs alkotóelemeit majd fokozatosan fedjük fel, illetve A main() tulajdonságai az osztályok környezetében című fejezetben fejtjük ki bővebben, hiszen nem kezdők szintje a void, a static vagy a public megértése. Azonban fel kell hívnom a figyelmet 2 fontos szeparátorra, amely a különböző kódblokkokat választja el egymástól. Legyen bármennyi soros is a megírt alkalmazásunk, mindenképpen 2 nyitó és 2 záró kódblokk-szeparátor fogja közre: {{ }}

 


Nincsenek megjegyzések:

Megjegyzés küldése