A Java olyan, mint a C?

Dehogy! Kérem szépen ezt elfelejteni, a végén még megsértődik a Java! :) A repülő és a traktor közt van különbség, annak ellenére, hogy mindkettőben hasonlóan van "vezetőfülke", meg "kormány".

A Java és a C közt sok apró hasonlóságot fogunk találni! Mivel a DM trail miatt a C már egész jól megy, ezért könnyű dolgunk lesz!

Eddig így néz ki a programunk:

package hello;

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

De valójában csak ezt az egyetlen sort írtuk mi:

System.out.println("Hello world");

Nos, ebben zárójelek vannak - tehát ez egy függvényhívás, remek! Vannak benne pontok is (azaz a "systemnek az outjának a println függvénye", tehát valami objektum-orientált dolog is van benne. A szövegeket idézőjelbe kell tenni. Láttunk kapcsos zárójeleket is - tehát itt is utasításblokkok vannak. Ok, mindent tudunk!

De mi az a package, meg a public class Hello, meg a többi? Sort kerítünk rá, de nem ez a legfontosabb. A részletes magyarázkodás helyett csináljunk valamit ami működik!

Feladat: Csinál egy programot, ami verset ír a képernyőre!

Ha nincs ötleted, használd a következőt:

Egy, megérett a meggy!
Kettő, csipkeborok vessző!
Három, te vagy azt én párom!

Okés! Szóval ez ugyanúgy megy mint a C, amit egymás után írsz az utasításblokkon belül, az egymás után végrehajtódik. Remek!

Az adattípusok

Javaban jó sok adattípus van, és ráadásul könnyűszerrel mi is csinálhatunk ilyeneket! A legyakoribbak:

A for-ciklus

Ez pont ugyanúgy megy, mint C-ben!

for (int a=0;a<10;a++) {
    // valamit csinalunk
}

Feladat: Csinál egy programot, ami 0..9 között kiírja az egész számokat a képernyőre!

A System.out.println képes számot is kiírni. Még a C-ből emlékszel, hogy ahova számot írhatsz, oda írhatsz változónevet is, és a változó értéke automatikusan behelyettesítődik.

A műveleti jelek (operátorok)

A C nyelvben tanult összehasonlító műveletek és matematikai műveletek itt is használhatók:

A C és Java nyelvekben is vannak érdekes további műveletek:

Ezeket persze nem muszáj használni, de igazándiból félni sem kell tőlük. Bár furán néznek ki, csak egy egyszerűsített írásmód az egész.

Feltétel

Ez nem-pont ugyanúgy megy, mint C-ben, de szándékosan nem mutattam meg, hogy C-ben másképp is lehet írni a feltételeket. Szóval nem fogod észrevenni a különbséget:

if (a<5) {
    // valamit csinalunk ha igaz a feltetel
}
else {
    // valamit csinalunk ha nem igaz a feltetel
}

Feladat: Csinál egy programot, ami 0..9 között kiírja a páros egész számokat a képernyőre!

Ne trükkölj azzal, hogy kettesével növeled a for ciklus változóját, hanem használj feltételt!

Vajon hogyan lehet megállapítani egy számról, hogy párps? A páros számok kettővel oszthatók. Magyarul ha kettővel elosztod, 0 lesz a maradék... ugye többet nem kell segíteni? :)

A nyomi programok világa

Nos, mindent tudsz, hogy tetszőleges klasszikus nyomi programokat meg tudj csinálni!

Mondjuk egy klasszikus, a téglalap területe:

package hello;

public class Hello {
    public static void main(String[] args) {
        int a=12;
        int b=25;
        int area=a*b;
        int circumfence=a+b;
        System.out.println("A teglalap kerulete="+circumfence);
        System.out.println("A teglalap terulete="+area);
    }
}

Ilyen programozási feladatból egy csomó van! Elrettentésül csináld meg a következőket:

Vajon ki tudod találni első ránézésre, hogy mit "rajzol" az alábbi program?

package hello;

public class Hello {
    public static void main(String[] args) {
        String line="*";
        for (int a=0;a<10;a++) {
            System.out.println(line);
            line=line+"*";
        }
    }
}

Mit tanultunk ebből?

Nos, semmi újat! Úgy tűnik, hogy ez azért erősen hasonít a C-re, és ha valaki C-ben tud programot írni, akkor Java-ban is tud. Ezt a félreértést fogjuk a következő részben tisztázni :)