Hirdetés

Keresés

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

  • Zsu_
    senior tag

    Kiegészíteném a nem-static belső class-ról mondottakat azzal, hogy példányosíthatóak kívülről, amennyiben a new operátor egy kevéssé szokásos szintaxisát használjuk.
    pl. legyen:


    class A {
    int a;

    class B {
    void ezmuxik() {
    // itt hivatkozunk a kulso osztalyra! Ehelyett irhatunk a++;-t, ha az egyertelmu.
    A.this.a++;
    }
    }
    }

    Van egy másik osztály, mely ezt csinálja:

    class C {
    void f() {
    // hibas! ''no enclosing instance of A''
    new A.B();
    // gyartunk egy A-t
    A a_peldany=new A();
    // explicit megadhato az enclosing instance!
    A.B ab_peldany=a_peldany.new B();
    }
    }


    Na kezd teljes lenni a dolog. Remélem érthető.

    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 :)

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