Hirdetés

Keresés

Új hozzászólás Aktív témák

  • usergefi
    csendes tag

    Sziasztok!

    Találtam egy mintapéldát az osztály és példánytagok inicializáló blokkjaival kapcsolatosan:

    package hallgato;
    public class Hallgato {
    static int alapTandij;
    double atlag;
    int tandij;
    // Osztályinicializáló blokk
    static {alapTandij=2000;}
    // Példányinicializáló blokk
    { atlag=7.5;
    tandij=alapTandij+(int)Math.round(3000*(10-atlag));
    }
    public void prrint(){
    System.out.println("Tandíj: "+tandij);
    }
    }

    Próbáltam futtatni, úgy hogy a main-t betettem a Hallgató osztályba, de csak úgy éri el a függvényt és a változókat, ha azok mind statikusak.
    Benéztem valamit? Mindennek static-nak kell lennie és az értékadások (példányinicializálás) csak a példányoknál mutatkoznak?

    Mivel a main függvény static, ezért abból csak statikus változókat és függvényeket tudsz elérni. Ha nem akarod azzá tenni őket, akkor példányosítani kell a Hallgato osztályt és azon keresztül hívni a függvényt:
    Hallgato h = new Hallgato();
    h.prrint();

  • usergefi
    csendes tag

    Sima tömbre találtam ilyet:
    Allat[] pelda1 = new Allat[3];
    pelda1[0] = new Allat(... változók...) ;
    pelda1[1] = new Dog(...) ;

    Nekem csak a gyerek példányok kellenének, szülő nem.
    Ellenőrizni is kell az egyes változók tartalmát (setter).
    Még a kiolvasás is fontos lenne (println), ciklussal.

    Csak közös ős típusú listába tudod bepakolni minkét gyereket:
    Arraylist<Animal> pelda1 = new ArrayList<Animal>;
    Dog dog = new Dog();
    //dog setterek
    Cat cat = new Cat();
    //cat setterek
    pelda1.add(dog);
    pelda1.add(cat);

    Aztán kiolvasásnál:
    foreach (Animal a : pelda1) {
    if (a instanceof Dog) {
    Dog thedog = (Dog) a;
    }
    }
    Ugyanígy a macskákkal...

  • usergefi
    csendes tag

    A 8.feladatot se értem, amikor megnézi, hogy melyik prím számot nem húzták ki. Hogy megy végig a tömbön? Miért az a feltétel, hogy if( szamokDb[sz-1] == 0 )? A java-t pont ezért nem szerettem sose, mert nem látom át. De hát ez a legkeresettebb nyelv, szóval kénytelen leszek megszeretni. :)

    A szamokDb tömbben az szerepel, hogy az adott számot hányszor húzták ki:

    szamokDb[szamok[i][j]-1]++

    A szamok[I][j] az egyes számok lesznek, a fájlban elindulva pl. 37, 42, 44, 61, 62, 18, 42 stb...
    Kivon még belőle egyet, hogy 0-tól induljon a tömb indexelése (erre mondjuk nem vágom, miért van szükség), így aztán például a legelső esetben a fenti kódrész: szamokDb[37-1]++, a második számnál: szamokDb[47-1]++ és így tovább. Tehát a szamokDb azt fogja tárolni, hogy melyik számot hányszor húzták ki, a tömb indexe lesz a szám-1, amit kihúztak, az értéke pedig hogy hányszor.

    Aztán a kérdéses résznél 2-esével ugrálunk 0-tól kezdve. Mivel -1-et kivontunk, ezért a 0-ás index igazából az 1-es szám, a 2-es a 3-as, a 4-es az 5-ös és így tovább. Majd az értékeket hozzáadjuk a páratlan szám számlálóhoz. Ha mondjuk 1-esből volt 3, 5-ösből 2, akkor eddig 5 páratlan számod lesz.

    A 8-as feladatnál az általad kérdezett 0-e feltételnek is a fentiekben találod meg az értelmét, ha az érték 0, az azt jelenti, hogy egyszer sem húzták ki. Ugyanúgy végigmegyünk a szamokDb tömb prímszámos idexein (megint -1), és megnézzük, hogy kihúzták-e (>0 az értéke), vagy sem (==0).

    A te megoldásod is tökéletes lenne, a fenti megvalósítás nekem is túl absztrakt :)

    Amúgy meg ha ezt a nyelvet fogod használni, akkor sosem kell ilyen kódot írnod majd, vagy max nagyon specifikus esetekben. Ez tipikus magyar oktatásbeli hülyeség, hogy egy olyan nyelvet, amiben az objektum orientáltságot, beépített könyvtárakat és függvényeket, skálázhatóságot, több szálúságot kéne használni (mert erre való), arra kényszerítünk, hogy több dimenziós primitív tömbökkel szivassuk a jónépet :(

  • usergefi
    csendes tag

    Sziasztok!

    Jelenleg egyetemre járok és olyan szakirányon vagyok ahol nem vettem Java-t.
    Szeretnék jelentkezni munkára, viszont lehet hogy Java-t is kellene tudnom hozzá
    (illetve egy tesztet kellene kitöltenem).

    Egy olyan kérdésem lenne hogy van-e valami jó összefoglaló (akár diák, jegyzet, könyv stb...) ami kifejezetten a nyelvről szól? Mivel C++ -t tanultam főleg ezért van fogalmam a dolgokról (függvény túlterhelés, öröklődés, mutatók (ami Java-ban úgy tudom nincs) ), viszont jó lenne valami amiből megtanulhatnám ezt a nyelvet is. :R

    Ha a google-be beírod, hogy java tutorial, vagy java course, biztos találsz ezer meg egy ingyeneset is. Igaz, hogy angol nyelvűek, de ezen a szakterületen arra is szükség lesz. Pár dollárért udemy-n, lynda.com-on is biztos találsz korrekten felépített tananyagokat. Én ezeket javasolnám.

Új hozzászólás Aktív témák

Hirdetés