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

  • Lakers

    tag

    Sziasztok.

    public C(int f): this(f,10.0) { ... } értelmezésével van gondom

    class A
    {
    private int h;
    protected double g;
    public A() { ... }
    public A(int x) { ... }
    }

    class B:A
    {
    protected string s;
    public B() { ... }
    public B(int a) { ... }
    }

    class C:B
    {
    public bool l;
    public C(int f, int d) { ... }
    public C(int f):this(f,10.0) { ... }
    }

    Amelnyek a futása során ezeket a konstruktorokat hajtja végre.
    1. class A -> A()
    2. class B -> B()
    3. class C -> C(30,10.0)
    4. class C -> C(30)

    És én ezt olvastam, hogy: Ugyanahhoz az osztályhoz több, paraméterezésben különböző konstruktor is készülhet. Ekkor lehetőség van egyik konstruktorból valamely másik meghívására. A meghívásnak speciális szintaktikája van. A hívó konstruktor formális paraméterlistája mögé, a konstruktortörzs előtt kell egy kettőspont mögött feltüntetni.Amennyiben valamely másik saját osztálybeli konstruktort kell meghívni, akkor a használandó kulcsszó a this

    Ekkor a this-nek nem azt kéne csinálnia, hogy meghívja a public C(int f, int d) { ... } konstruktort, mert végül is két paramétre van.

    De én valamit félre értelmeztem, segítsetek korigálni, hogy akkor az a this.

    Habár most ahogy kezdem visszaolvasni... A public C(int f): this(f,10.0) { ... } meghívja a public C(int f, int d) { ... } konstruktort amelyben már meg van a 30,10.0 érték, és onnan public C(int f): this(f,10.0) { ... } "lemásolja", az első értéket, az az a 30-ast?

    Másik kérdésem, ezt gyakran alkalmazzák?

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