Hirdetés

Keresés

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

  • Lortech
    addikt

    Sziasztok,

    Van egy HTML formom és ehhez szeretnék egy JSP feldolgozót, ami annyit csinál, hogy menti a formba begépelt adatokat egy txt fileba a szerverre.

    Tud valaki segíteni?

    Köszi!

    Mi okozza a gondot?
    Szerver oldalon a request.getParameter() fv-vel megkapod a formban postolt paramétereket, kiírod fájlba.
    szerk: Ja most látom, már tegnapi.

  • cybear
    csendes tag

    Sziasztok!

    Nincs valakinek egy kis java progija (esetleg kivételkezeléssel), ami bekér a felhasználótól pár adatot és azt menti egy egyszerű txt fileba.
    Át tudna nekem küldeni valaki ilyesmi kis programocskát?

    Köszi!

    Hello,

    Átküldök e-mailben valami hasonlót.

  • köszönöm a kielégítő választ :)
    Kérdezhetnék még egy konkrétat is? :U


    1.
    Mi a hiba az alábbi forráskódban?
    public class Application {
    class Vector { double m_x, m_y; Vector(double x, double y) { m_x = x; m_y = y; } }
    public static void main (String[] args) { Vector v = new Vector(0.0, 0.0); }
    }

    Fordítóval kipróbáltam, hogy az a hiba, hogy a class Vector elé kell a static szó.
    De miért? nem igazán értem. :(


    2.
    Mi a hiba az alábbi forráskódban?
    class A { int a;
    static class B {
    B(int aa) { a = aa; }
    }
    }

    Itt pedig az a hiba, hogy nem kell a static a class B elé. De ennek sem igazán értem a miértjét...
    Hálás lennék, ha elmagyaráznád!
    Előre is köszi :)

    Nyugodtan :D
    Bár úgy látom, hogy a kérdéseidre kifejtettem már a választ, csak nem pont ezekkel a példákkal... na lássuk:

    1. A hiba valóban az, hogy oda kell a static, ugyanis (ahogy már leírtam): tetszőleges osztályban definiált static függvény osztálypéldány nélkül hívható. Ez azt jelenti, hogy nem tud hozzáférni (nem ''látható'' a függvény törzséből) semmilyen nem-static osztályváltozó. A nem-static belső osztályokra ez a szabály azért vonatkozik (tehát nem tud létrehozni olyan belső osztály típusú objektumot), mert a nem-static belső osztályok példányainak alapból rendelkezniük kell referenciával a külső osztályuk (amiben definiáltad a belső osztályt) egy példányára. Méghozzá pontosan arra, amely teremtette őket.
    A belső osztály példány referenciája a külsőre úgy néz ki, hogy A.this (ha A a külső osztály neve). Remélem összeállt...

    2. két lehetőség: nem kell static a B osztály elé, vagy éppen static kell az int a elé.
    A szabály ugyanaz, mint az előbb: mivel a belső osztály statikus, nem kötődik külső oszályhoz, így a belső példány nem is rendelkezik információval (referenciával) az ő bennfoglaló objektumáról, ami ha a staticot eltöröljük, az A osztály egy példánya lenne.
    Így a
    a = aa;
    sorban nem tud hozzáférni az 'a' változóhoz, ugyanis a szimbólumtáblázat látható részében (hogymondják szépen magyarul azt, hogy scope? :) ) nincs ilyen változó!

    Ugye amikor azt írod hogy 'a', ebben az esetben prioritási sorrendben így tud feloldódni a jelentése:

    1) lokális blokkban ({ } közötti utasítások) lévő változók
    2) szülő blokkban lévők
    3) rekurzívan a függvény fejlécig, itt a fgv paraméterek jönnek be
    4) osztályváltozók (ez az ami ilyen bonyi szabályokkal írható le, ahogy eddig tettem)

    Az utóbbinál az 'a' szimbólum ekvivalens a 'this.a'-val, amennyiben a belső rendelkezik nem-static 'a' nevű változóval; továbbá ekvivalens 'Belsoosztaly.a'-val, ha rendelkezik static 'a' nevű változóval.

    Van egy ''5.'' szint, amennyiben egy belső osztályban használt változóról van szó. Ilyenkor az 1-es ponttól oldjuk fel ismét rekurzívan attól a helytől kezdve, ahol az osztályt definiáltad... így lesz az 'a'-ból 'Kulsoosztaly.this.a', ha a belső osztály nem static és a a Kulsoosztaly rendelkezik nem static 'a' változóval, a static szintaxis meg egyenlő a fentivel, tehát a 'Kulsoosztaly.a' static(!) változó mindenhonnan hozzáférhető, akár static, akár nem a belső osztály.

    Hmmm... remélem érthető :U

    [Szerkesztve]

  • Zsu_
    senior tag

    köszönöm a kielégítő választ :)
    Kérdezhetnék még egy konkrétat is? :U


    1.
    Mi a hiba az alábbi forráskódban?
    public class Application {
    class Vector { double m_x, m_y; Vector(double x, double y) { m_x = x; m_y = y; } }
    public static void main (String[] args) { Vector v = new Vector(0.0, 0.0); }
    }

    Fordítóval kipróbáltam, hogy az a hiba, hogy a class Vector elé kell a static szó.
    De miért? nem igazán értem. :(


    2.
    Mi a hiba az alábbi forráskódban?
    class A { int a;
    static class B {
    B(int aa) { a = aa; }
    }
    }

    Itt pedig az a hiba, hogy nem kell a static a class B elé. De ennek sem igazán értem a miértjét...
    Hálás lennék, ha elmagyaráznád!
    Előre is köszi :)

    up
    sürgős lenne :U
    csak mert holnap zh...

  • Sziasztok!
    A ''static'' kulcsszóról mit tudtok?
    Mikor kell, mikor használjuk, stb...?

    Tehát pl
    - static class Name

    Előre is köszi az infókat!

    Ez egy picit összetett dolog, biztosan ki is fogok felejteni valamit.
    Használat módjai:

    - static osztály változók: nem keletkeznek objektumonként, hanem az osztály összes példánya közösen használja a változót
    pl.
    class A { static int count; A() {count++;} }
    esetén minden egyes konstruktorhívásnál inkrementálódik a count.

    - static tagfüggvények: az előbbihez kapcsolódik, ugyanis ilyen függvényhez nem tartozik objektum. Ezt úgy értem, hogy a class A { static void fgv() {} } oszály fgv függvénye így hívható: A.fgv(); Természetesen ennél fogva nincs az fgv-ben definiálva ''this'' változó és ezért nem-static osztály változók/függvények sem használhatók, viszont static-kel jelöltek igen. (Persze ha átadsz paraméterben bármilyen objektumot, azzal azt csinálsz amit akarsz.)

    - static belső osztályok: olyan osztályon belül definiált osztályok, melyek nem kapcsolódnak a külső osztályhoz példányszinten. Huh, ez bonyi :)
    Na szóval:
    class A { static int count; int local; static class B { }}
    ilyenkor az A.B osztály példányosítható A-n kívülről. Egyébként nem! Továbbá az A.B osztály nem fér hozzá az A.local változóhoz, de az A.counthoz igen.

    Ööö van még valami?! :)

    [Szerkesztve]

  • beeboy
    addikt

    JedPlus-ban tudsz feljeszteni.
    Compilernek meg használhatod a java sdk-t. sun honlapjáról leölthető

    van olyan compiler ami exe-t készít?
    bocs ha tök láma kérdés

  • andriscs
    aktív tag

    Írt valaki javaban snake játékot? (application)

    Hi!

    Valahol a topic elején írta egy srác, hogy ő egy snake applet-et írt, szerintem vedd fel vele a kapcsolatot, applet-ből nem nehéz application-t csinálni.

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

Hirdetés