6. this түйінді сөзі Тәсілдің ол өңдеуге тиіс объект өрісімен жұмыс істеуін қамтамасыз ету үшін, сол тәсі
лге автоматты түрде this жасырын параметрі беріледі, ол функцияны шақырған объектіге сілт
еме жасап тұрады.
this сөзін нақты түрде пайдалану
this параметрі тікелей түрде мынадай жағдайларда қолданылады:
// тәсілден оны шақырған объектіге сілтеме қайтару үшін:
class Demo
{ double y;
public Demo T() { return this;
} // аты тәсіл параметрі атымен бірдей өрісті идентификациялауүшін:
public void Sety( double y ) { this.y = y; }
}
7. Конструкторлар Конструктор объектіні инициалдау үшін қажет. Ол класс объектісін жасау кезінде new
операциясы арқылы шақырылады. Конструктор аты класс атымен бірдей болады.
Конструкторлар қасиеттері:
Конструктор ешқандай мән (тіпті void типін де) қайтармайды. Кластың, инициалдауд
ың әр түрлері үшін әртүрлі параметрлері бар, бірнеше конструкторлары болуы мүмкін.
38
Егер программалаушы бірде-
бір конструкторды көрсетпесе немесе кейбір өрістер инициалданбаса, мәндік типтегі өрістер
ге — нөл, ал сілтемелік типтегі өрістерге — null мәні меншіктеледі.
Параметрсіз шақырылатын конструктор
(үнсіз) келісім бойынша алынған конструктор деп аталады.
Конструкторы бар класс мысалы
using System;
namespace Listing5_6 {
class Demo { public Demo( int a, double y ) // конструктор
{ this.a = a; this.y = y; }
int a; double y;
}
class Class1
{
static void Main()
{
Demo a = new Demo( 300, 0.002 ); // конструкторды шақыру
Console.WriteLine( a.Gety() ); // нәтиже: 0,002
Demo b = new Demo( 1, 5.71 ); // конструкторды шақыру
Console.WriteLine( b.Gety() ); // нәтиже : 5,71
} } }
Екі конструкторы бар класс мысалы
class Demo
{
public Demo( int a ) // 1 конструктор
{
this.a = a;
this.y = 0.002;
}
public Demo( double y ) // 2 конструктор
{
this.a = 1;
this.y = y;
}
...
}
...
Demo x = new Demo( 300 ); // 1 конструкторды шақыру
Demo y = new Demo( 5.71 ); // 2 конструкторды шақыру
Жалпы класс мысалы
class Monster {
public Monster() // конструктор
{
this.name = "Noname";
this.health = 100;
this.ammo = 100;
} public Monster( string name ) : this() { this.name = name;
} public Monster( int health, int ammo, string name )
{ this.name = name; this.health = health; this.ammo = ammo;
}
public int GetName() // тәсіл { return name;
39
} public int GetAmmo() // тәсіл { return ammo;
}
8. Қасиеттер Қасиеттер класс өрістерімен қатынас құру үшін пайдаланылады. Көбінесе, қасиет жаб
ық өрістермен қатынас құру тәсілдерін анықтайды.
Қасиет синтаксисі: