Constructors C-éles
Ebben a leckében fogunk beszélni egy ilyen fontos elem az osztály, mint a tervezők.
Designer - egy osztály módszer, amelyet inicializálni a tárgyat, amikor sozdanii.Initsializatsiya - ez a feladat kezdeti paraméterei tárgyak / változók, amikor azokat létrehozzák.
Az osztály, amely nem nyilvánították bármelyike designer, van egy implicit alapértelmezett konstruktor, hogy hívják, amikor egy objektum jön létre az új üzemben.
nyilvános [-name] ([argumentum])
// kivitelező szervezet
>
Például, van egy osztály autó. Létrehozása egy új jármű, a futás értéket és az összeg a tartályban lévő üzemanyag, akkor van értelme, hogy egyenlő nullával:
osztályban Autó
privát kétágyas futásteljesítmény;
privát kétágyas tüzelőanyag;
Anélkül, designer mi lett volna létrehozása után egy külön objektum értékeket rendelni a területen, ami nagyon kellemetlen.
A tervezők is paramétereit.
Példa ugyanazt az autót, csak most, amikor az objektum létrehozásakor, tudjuk meg a kezdeti értékek:
osztályban Autó
privát kétágyas futásteljesítmény;
privát kétágyas tüzelőanyag;
nyilvános Car (dupla kilométer, kettős üzemanyag)
this.mileage = futásteljesítmény;
this.fuel = üzemanyag;
>
>
osztály Program
static void Main (string [] args)
Car newCar = új Car (100, 50); // hívja a kivitelező paraméterekkel
>
>
A fenti példában, használja a this kulcsszó.
Pointer hogy ezt - ez egy mutató az objektum számára, amely egy nem-statikus módszerrel hívták. Az erre a kulcsszóra hozzáférést biztosít a jelenlegi esetben az osztály. A klasszikus példa erre. ez csak gépfejlesztö, ugyanezen osztály nevét mezők és konstruktorargumentum. Ez a kulcsszó olyasmi, mint a neve egy tárgy, amelyen keresztül férhetnek hozzá az aktuális objektumot.
Az osztály jelezheti egy csomó tervezők, a lényeg, hogy ők különböző aláírásokat. Az aláírás. abban az esetben, kivitelezők - egy sor érvet. Például nem hozhat létre két konstruktőrök, hogy vegyen két int típusú érveket.
Egy példa segítségével több konstruktorok:
osztályban Autó
privát kétágyas futásteljesítmény;
privát kétágyas tüzelőanyag;
nyilvános Car (dupla kilométer, kettős üzemanyag)
this.mileage = futásteljesítmény;
this.fuel = üzemanyag;
>
>
osztály Program
<
static void Main (string [] args)
Autó newCar = új autó (); // létrehoz egy autó az alapértelmezett beállításokat, 0, 0
Car newCar2 = új Car (100, 50); // egy olyan autót a megadott paraméterekkel
>
>
Ha az osztály definiálja egy vagy több konstruktőr paraméterekkel, nem tudunk létrehozni egy objektumot át implicit alapértelmezett konstruktor:
osztályban Autó
privát kétágyas futásteljesítmény;
privát kétágyas tüzelőanyag;
nyilvános Car (dupla kilométer, kettős üzemanyag)
this.mileage = futásteljesítmény;
this.fuel = üzemanyag;
>
>
osztály Program
<
static void Main (string [] args)
Car newCar = új Car (100, 50);
Autó newCar2 = új autó (); // hiba, az osztály nincs definiálva konstruktor paraméterei
>
>
Hozzon létre egy osztályt Student, definiálnunk kell mezők: név, persze, ha ő volt ösztöndíjas. Hozzon létre egy osztályt néhány tervezők adja lehetséges, ha az összes megadott paraméterek vagy több másolatot létrehozni.
Tulajdonságok C-éles. Get akcesszor és a készlet. automatikus tulajdonságok
Ebben a leckében továbbra is figyelembe veszi az osztály tagjai, és hogy a tulajdonságait a sorban.
[Access módosító] [típus] [property_name]
kap
// tartozék test olvasni a területen
>
készlet
// tartozék rögzítése test egy területén
>
>
Itt látható egy példa a tulajdonságok használatával. Van egy osztály tanulói. és van egy saját területén természetesen, ami nem lehet kevesebb, mint egy, és nagyobb, mint öt. Való hozzáférés szabályozására ezen a területen kerülnek felhasználásra ingatlan év:
Egyszerűen fogalmazva, a két módszer végrehajtását az ingatlan. A get tartozék test lehet bonyolultabb hozzáférés logikát, de végül vissza kell térnie a mező értékét, vagy más értéket a return utasítást. A jelen beállított elérési implicit paraméter értékét. amely tartalmaz egy értéket rendelt tulajdonság (a fenti példában, amikor a felvétel, znachenievalue „0”).
Ha például az imént tette a mező évben nyitva, és nem használ semmilyen módszerrel, illetve ingatlan elérni, mi lehetett volna beírni, hogy semmilyen értéket, beleértve a hibás, és így tudjuk ellenőrizni a írni és olvasni.
Beléptető tudtuk használni az egyszerű technikákat, de erre lenne szükségünk, hogy végre két különböző módszerekkel, különböző nevekkel, és elérheti őket, akkor kell használni, zárójelben, ami növeli a felesleges kényelmetlenséget. Itt van, hogy ugyanúgy néz ki, olyan technikák alkalmazásával programot (a gyakorlatban használható tulajdonságok):
osztály Student
private int év;
public int GetYear ()
visszatérés év
>
public void SetYear (int érték)
if (érték <1)
év = 1;
else if (érték> 5)
év = 5;
mást év = érték;
>
>
osztály Program
<
static void Main (string [] args)
Student ST1 = új Student ();
st1.SetYear (0);
Console.WriteLine (st1.GetYear ());
Console.ReadKey ();
>
>
Az ingatlan is biztosít hozzáférést csak olyan területen írni vagy olvasni csak. Ha például van szükségünk, hogy megtagadja a hozzáférést a rekordot, akkor egyszerűen nem jelzik az elérhetőségi beállítva. például:
osztály Student
private int év;
nyilvános Student (int y) // konstruktor
év = y;
>
public int év
kap
visszatérés év
>
>
>
osztály Program
<
static void Main (string [] args)
Student ST1 = új Student (2);
Console.WriteLine (st1.Year); // olvasni
st1.Year = 5; // hiba, a tulajdon csak olvasható
Console.ReadKey ();
>
>
Érdemes megjegyezni, hogy az ingatlan maga nem határozza meg a tárolóval a területen, és ezért kell külön állapítsa meg a területen, ahová a belépés kezeli az ingatlan.
[Access módosító] [típus] [property_name]
Ezek a tulajdonságok megvannak a tartozék nem a test. Használati példa:
osztály Student
public int év
>
osztály Program
<
static void Main (string [] args)
Student ST1 = új Student ();
st1.Year = 0;
Console.WriteLine (st1.Year);
Console.ReadKey ();
>
>
Automatikusan végrehajtott ingatlan, akkor van értelme használni, ha nincs szükség tartalmaznak korlátozásokat a lehetséges értékeket implicit mező tulajdonságai.
És akkor lehet kérni, és mi a különbség az egyszerű nyílt területeken és automatikus tulajdonságait. Ezekben tulajdonságok az a képesség, hogy azok csak olvasható vagy csak írható. Ehhez már használják egy hozzáférési módosítót saját neve előtt akcesszora:
public int év
public int év
Hozzon létre egy osztályt TV. állapítsa meg a mező kötetet. való hozzáférés ezen a területen, hajtsa végre a tulajdon. A térfogata lehet a tartományban 0-100.