ÓZBEKSTAN RESPUBLÍKASI JOQARI BÍLÍMLENDÍRÍW,PÁN HÁM INNOVACIYALAR MÍNÍSTRLÍGÍ
BERDAQ ATINDAǴI
QARAQALPAQ MÁMLEKETLÍK UNIVERSÍTETÍ
MATEMATÍKA FAKULTETÍ
Algoritmlestiriw hám programmalastırıw texnologiyaları
kafedrası
“Algoratimlik tiller hám programalastırńw”
páninen
Ózbetinshe jumısı
Orınladı: 2 - K1 topar studenti Atanazarov Qaharman
Qabılladı: Ámetova Gúlsara
Óz betinshe jumıs.
Initializatsiya sintaksisi járdeminde maǵlumatlardı iske túsiriw
Obyekt hám kolleksiyanı jumısqa túsiriw C# tiliniń qızıqlı hám júdá paydalı ózgesheligi bolıp tabıladı. Bul ózgeshelik klass yamasa kollekciya obyektin jumısqa túsiriwdiń basqa usılın usınıs etedi. Bul ózgeshelik C# 3.0 yamasa odan joqarı versiyalarında kiritilgen. Olardan paydalanıwdıń tiykarǵı abzallıqları kodıńızdı jáne de oqılıwın ańsat qılıwı múmkin, kollekciyalarǵa elementler qosıwdıń ańsat jolin támiyinlew hám tiykarınan kóp tarmaqlı islewde qollanıladı. Obyektti jumısqa túsiriwde siz konstruktordı shaqırmastan obyektti jaratıw waqtında klasstıń maydanları yamasa qásiyetlerine bahanı jumısqa túsiriwińiz múmkin. Bul sintaksiste siz obyekt jaratpawıńız múmkin hám keyin bul sintaksis jańa jaratılǵan Obyektti óz qásiyetleri menen, tapsırmadaǵı ózgeriwshige iske túsiredi. Sonıń menen birge, ol maydanlar hám ayrıqshalıqlardı jumısqa túsiriw ushın indekserlardı jaylastırıwı múmkin, bul ózgeshelik C# 6. 0 de kiritilgen.
Mısal : Tómendegi mısalda Geeks klasında hesh qanday konstruktor joq, biz ápiwayıǵana Obyektti jaratamız hám bir waqtıniń ózinde tiykarǵı usılda buyra qawıslar járdeminde bahanı jumısqa túsiremiz. Bul bahalardı jumısqa túsiriw Obyektti jumısqa túsiriw retinde belgili.
class Geeks {
public string author_name{ get; set;}
public int author_id { get; set; }
public int total_article { get; set;}
}
class GFG {
// Main metodı
static public void Main()
{
// Maydanlardı iske túsiriw
// obyektlerdi iske túsiriw
Geeks obj = new Geeks() {
author_name = "Ankita Saini",
author_id = 102,
total_article = 178};
Console.WriteLine("Author Name: {0}", obj.author_name);
Console.WriteLine("Author Id: {0}", obj.author_id);
Console.WriteLine("Total no of articles: {0}",obj.total_article);
}
}
Bul kodımız natiyjesi bolsa tomendegishe boladı:
Author Name: Ankita Saini
Author Id: 102
Total no of articles: 178
1.Ózgeriwshilerdi baslanǵısh bahaları menen toltırıw :
C# ta, ózgeriwshilerdi baslanǵısh bahaları menen toltırıw ushın sistema tómendegi sintaksisni qollap -quwatlaydı :
int number = 10 ;
string name = " John";
Massivlerdi baslanǵısh bahaları menen toltırıw :
Massivti baslanǵısh bahaları menen toltırıw ushın tómendegi sintaksisni isletiw múmkin:
int[] numbers = {1, 2, 3, 4, 5};
string[] names = {" John", " Doe", " Alice" };
Obyektlerdi baslanǵısh bahaları menen toltırıw :
Obyektlerdi baslanǵısh bahaları menen toltırıw ushın, obyektti jaratıw jáne onıń qásiyetlerin óz ishine alıwshı sistemanı isletiwińiz múmkin:
Person person = new Person
{
Name = " John",
Age = 30,
Gender = Gender. Male
};
Bul mısallar C# ta maǵlumatlardı baslanǵısh bahaları menen jumısqa túsiriw ushın ápiwayı usıllardan geyparaların kórsetedi. Cifrlı maǵlıwmatlar ushın int, tekstler ushın string, hám ob'ektler ushın uyqas túrde isletiletuǵın baslanǵısh bahalar isletiledi.
using System;
class Program
{
static void Main(string[] args)
{
// 1. Pútin sanlar massivi
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
// 2. Qatarlar massivi
string[] names = {"John", "Doe", "Alice", "Bob", "Emily", "Charlie", "Emma", "Oliver", "Sophia", "James", "Ella", "William", "Ava", "Daniel", "Mia"};
// 3. Boolean (logikalıq manisler) massivi
bool[] flags = {true, false, true, false, true, true, false, true, false, true, true, false, true, false, true};
// 4. Pútin sanlar hám qatarlar massivleri
Tuple[] pairs = {
Tuple.Create(1, "One"),
Tuple.Create(2, "Two"),
Tuple.Create(3, "Three"),
Tuple.Create(4, "Four"),
Tuple.Create(5, "Five")
};
// 5. Pútin sanlardan ibarat 2 ólshemli massiv
int[,] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Maǵlumatlardı iske túsiriw
Console.WriteLine("Pútin sanlar massivi:");
foreach (int num in numbers)
{
Console.Write(num + " ");
}
Console.WriteLine();
Console.WriteLine("\Qatarlar massivi:");
foreach (string name in names)
{
Console.Write(name + " ");
}
Console.WriteLine();
Console.WriteLine("\nBoolean massivi:");
foreach (bool flag in flags)
{
Console.Write(flag + " ");
}
Console.WriteLine();
Console.WriteLine("\Pútin sanlar va qatarlar massivi:");
foreach (var pair in pairs)
{
Console.WriteLine($"({pair.Item1}, {pair.Item2})");
}
Console.WriteLine();
Console.WriteLine("\nQatarlar tablicası:");
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
}
Bul mısalda, biz bir neshe qıylı túrlerdegi maǵlumatlardı baslanǵısh bahalar menen toldırdıq hám olardı konsolga shıǵardıq. Bul kod qayta paydalanılıwı múmkin hám sizge kerekli maǵlıwmatlar túrin qollap -quwatlaw ushın tiykarǵı bir qádem bolıwı múmkin.
C# tiline obyektti jumısqa túsirgish klass ózgeriwshisine bahalardı belgilew imkaniyatın beredi. Eger siz C# tiline obyektti jumısqa túsiriw jardeminen paydalansańız, biz konstruktordan klass aǵzası ózgeriwshisiniń bahaların belgilewdi talap etpeymiz. Biz klass mısalın jaratıwda ózgeriwshige baha belgilewimiz múmkin. Ol konstruktordan ayrıqsha sintaksisga iye. Qısqa etip aytqanda, bul C# de Obyektti jumısqa túsiriw ushın jańa forma ; Keyingi bólimde biz jaqsılaw túsiniw hám paydalanıw ushın Obyektti jumısqa túsiriw hám olardı ámelge asırıwdı tolıq talqılaw etemiz. Atalǵanı sıyaqlı, onı C# de klass obyektin jumısqa túsiriw ushın isletiwdi usınıs etiń. Bul ańsatlaw hám ápiwayılastırılgan ; C# de qosımshanı jaratıwda jaqsılaw túsiniw hám odan paydalanıw ushın onıń sintaksisini kórip shıǵayıq, tómende kóriń;
Class_name std = new Class_name() {
};
Joqarıdaǵı sintaksisda kórip turǵanıńız siyaqlı, biz klass ob'ektin jaratılıwma háreket qılıp atırmız, keyin bolsa Obyektti jaratıw ushın C# de tez-tez isletip turatuǵın jańa gilt sózdi kiritemiz. Sonnan keyin, biz '{}' buyra qawıslar ishindegi obyektti bahalardı belgilewge háreket etemiz. Keling, jańa baslanuvchilar ushın demde ámelge asırıw ushın bir ámeliyat sintaksisini kórip shıǵayıq, tómende kóriń;
Demo d = new Demo() { name = "demo sample"
};
Joqarıdaǵı sintaksis qatarlarında biz programmalastırıwda odan qanday paydalanıwdı kórsetdik. Kelesi bólimde biz qosımshanı jaqsılaw ushın onıń ishki jumısın tolıqlaw talqılaw etemiz.
Biz qashannan berli ekenin aytıw kerek, Obyektti jumısqa túsiriw - bul klass yamasa jıynaq ob'ektin jaratıw procesi, biraq ámelde bunı qılıwdıń taǵı bir abzallıǵı bar. Obyektti jaratıwda biz C# de konstruktordan paydalanmastán baha belgilewimiz yamasa klass ózgeriwshisi yamasa klass aǵzasın jumısqa túsiriwimiz múmkin. Obyektti jaratıwda bizde tap sonday jol bar, lekin olardı jumısqa túsiriw ushın bizde C# de azmaz basqasha sintaksis bar. Obyektti jaratıw ushın biz ele da " jańa" gilt sózinen paydalanamız. Bul bólimde biz Obyektti jumısqa túsiriw sintaksisini tolıqlaw hám tolıqlaw talqılaw etemiz. Bunnan tısqarı, jańa baslanuvchilar ushın programmalastırıw waqtında odan paydalanıw ushın bir ámeliy mısal.
Demo d = new Demo() { name = "dummy name",
roll_num = "200",
city = "some city"
};
Joqarıdaǵı úlginde biz Obyektti jumısqa túsiriwde kiritilgen birpara ózgerislerden tısqarı " jańa" gilt sózden paydalanmoqdamiz. C# de Obyektti jumısqa túsiriwden paydalanıw ushın biz tómendegi qaǵıydalarǵa ámel etiwimiz kerek:
1. Ádetde C# de etkenimizdek, áwele biz qálegen klass yamasa kolleksiya obiektin jaratılıwmasımız kerek. C# de jańa ob'ekt jaratıw ushın biz " jańa" gilt sózinen paydalanamız.
2. Obyektti jaratıwdan keyin, C# de Obyektti jumısqa túsiriwdi ámelge asırmoqchi bolsańız, biz klass ózgeriwshisine bahalardı belgilewimiz kerek.
3. Onıń ushın biz C# de '{}' qawıslardan paydalanıwımız kerek. Bul {} qawıslar ishinde biz baha bermekshi bolǵan ózgeriwshimizni ótkeziwimiz múmkin. Obyektti jumısqa túsiriw ushın barlıq ózgeriwshilerge bahalardı ótkeriw yamasa belgilew májburiy emes; talapǵa baylanıslı. Biz bul erda kúsh berdik, sebebi biz olarǵa bahalardı belgilew ushın bul erda hesh qanday konstruktordan paydalanmayapmiz.
4. Obyektti jumısqa túsiriw ózgeriwshin jumısqa túsiriw ushın zárúr bolǵan kod qatarların da qısqartiradi. Bunnan tısqarı, biz onıń ushın standart hám parametrlengen konstruktordı jaratıwdı talap etpeymiz. Sonıń menen birge, ol biziń kodimizni jáne de o'qilishi hám qatarlar sanın kemrek etedi.
5. Sonnan keyin biz oǵan qálegen túrdegi ózgeriwshilerdi belgilewimiz múmkin. Bul qatar, nomer yamasa basqa zat bola ma.
6. Sonıń menen birge, {} qawıslar aqırında t dıń islewi ushın ';' noqatlı útir menen tamamlawımız kerek. Keri jaǵdayda, bul bizge kompilyatsiya waqtında qátelikti beredi, aqırında etiwmey atırǵan yamasa kutilgan “;”.
Endi biz jańa baslanuvchilar ushın onıń ishki islewi hám haqıyqıy stsenariyde ámelge asırılıwın túsiniw ushın bir mısal mısalın kóremiz;
public class Employee
{
public int EmployeeId { get; set; }
public string Employeecity { get; set; }
}
class Demo
{
static void Main(string[] args)
{
System.Console.WriteLine();
Employee emp = new Employee() { EmployeeId = 100,
Employeecity = "indore"
};
}
}
Joqarıdaǵı mısalda biz " Xızmetker" atlı bir klass jaratmoqdamiz, ol jaǵdayda jazıw ushın xızmetkerler maǵlıwmatları bar. Bunıń ishinde biz eki ózgeriwshi " EmployeeId" hám " Employeecity" ni klass ishinde saqlaymiz. Sonnan keyin biz bul ózgeriwshige kiramiz; Bizde " Demo" atlı taǵı bir klass ámeldegi bolıp, ol Main () usılın óz ishine aladı. Bul usıl ishinde biz C# de Obyektti jumısqa túsiriwden paydalanamız, odan paydalanıw arqalı biz joqarıda qarang.. Sonnan keyin, biz olardı JDB-de saqlawımız yamasa konsol jurnalı járdeminde ápiwayıǵana baspadan shıǵarıwımız múmkin.
C# de Obyektti jumısqa túsirgish járdeminde xızmetkerler maǵlıwmatların kórsetiwge urınıw. Bul jańa baslanuvchilar ushın onı ámelge asırıwdı túsiniw ushın úlgi bolıp tabıladı. Obyektti jumısqa túsiriw hám maǵlıwmatlardı saqlawdan paydalanıp, qálegen muǵdardaǵı ob'ektlerdi jaratılıwmasımız múmkin.
public class Employee
{
public int EmployeeId { get; set; }
public string Employeecity { get; set; }
public int Employeesalary { get; set; }
public string Employeename { get; set; }
public string Employeeaddress { get; set; }
public string Employeedepartment { get; set; }
}
class Demo
{
static void Main(string[] args)
{
System.Console.WriteLine("Demo to show object initializer in C# !!");
Employee emp = new Employee() { EmployeeId = 100,
Employeecity = "indore",
Employeesalary = 15000,
Employeename = "Amit vyas" ,
Employeeaddress = "1009 strre",
Employeedepartment = "Account"
};
System.Console.WriteLine("Prinitg the values from the object ::::");
System.Console.WriteLine("emp id is:: " + emp.EmployeeId);
System.Console.WriteLine("emp city is:: " + emp.Employeecity);
System.Console.WriteLine("emp salary is:: " + emp.Employeesalary);
System.Console.WriteLine("emp name is:: " + emp.Employeename);
System.Console.WriteLine("emp address is:: " + emp.Employeeaddress);
System.Console.WriteLine("emp department is:: " + emp.Employeedepartment);
}
}
Obyektti jumısqa túsiriwden paydalanıp, biz C# de konstruktorlardan paydalanmastán ózgeriwshige ápiwayıǵana baha belgilewimiz múmkin. Biz olarǵa bahanı tek Obyektti jaratıwda belgilewimiz múmkin. onıń sintaksisi konstruktor ushın bizde ámeldegi bolǵanınan azmaz parıq etedi. Bul kod qatarın kemrek o'qilishi yamasa túsinikli etedi.
Biz buǵan Obyektti jumısqa túsiriw sintaksisi járdeminde erisemiz, bul erda biz ornatıwshı bolǵan ayrıqshalıqlardı hám olardıń uyqas bahaların anıqlaw ushın {} buyra qawıslardan paydalanamız.
Bul konstruktorlardan paydalanıwdan kóre ob'ekt jaǵdayın jumısqa túsiriwdiń qısqalaw hám qolay usılı bolıwı múmkin. Keling, birdey Obyektti jaratıw konstruktor menen qanday kórinisin kórip shıǵayıq :
var product = new Product();
product.Name = "Book";
product.Quantity = 15;
product.UnitPrice = 17.99m;
Obyektti jumısqa túsiriw menen salıstırǵanda, konstruktorlar járdeminde Obyektti jaratıw hám jumısqa túsiriw ushın biz talap etetuǵın kod tolıqlaw bolıwı múmkin. Bul parq ishki klasslar menen islewde jáne de anıqlaw boladı.
Sonı atap ótiw kerek, klasstıń ózgeshelikin jumısqa túsiriw ushın Obyektti jumısqa túsirgichdan paydalanǵande, Obyektti jumısqa túsiriw úskenesinen paydalanıp atırǵan kontekstten ózgeshelikke ele da kirisiw múmkin bolıwı kerek. Mısal ushın, eger múlktiń jeke sazlagichi bolsa, biz onı tek klasstıń ózinden baslawımız múmkin.
Obyektti jumısqa túsiriwdiń tiykarǵı abzallıqlarınan biri ápiwayılastırılgan ob'ekt jaratıw bolıp tabıladı. Olar biz jazıwımız kerek bolǵan kod muǵdarın kemeytiwi múmkin.
Obyektti jáne onıń qásiyetlerin jumısqa túsiriw ushın bir neshe qatar kodların jazıw ornına, biz bir bayanatda birdey nátiyjege jetiwimiz múmkin. Bul biziń kodimizni jáne de ıqsham etiwge járdem beredi.
Bunnan tısqarı, taǵı bir ábzallıq sonda, olar koddıń o'qilishini jaqsılawı múmkin.
Obyektti initsializatorlardan paydalanǵande, biziń kodimizni oqıtıp atırǵan hár bir kisi ushın biz qanday ayrıqshalıqlardı jumısqa túsirayotganimiz hám olardıń bahaları qanday ekenligi ayan boladı. Bul qáteler múmkinshiligın kemeytiwge járdem beredi.
Obyektti jumısqa túsiriwshiler de jaqsılanǵan texnikalıq xizmet kórsetiwimizga járdem beredi.
Obyektti jumısqa túsiruvchilardan paydalanǵande, konstruktorlardı yamasa koddıń basqa bólimlerin ózgertirmesten ayrıqshalıqlardı qosıw, ózgertiw yamasa óshiriw ańsatlaw boladı. Bul qátelerdi kirgiziw yamasa ózgerislerdi buzıw múmkinshiligın azaytadı hám kodlar bazasın jáne de turaqlı etedi.
Aqır-aqıbetde, olar Obyekttiń dáslepki jaǵdayın ózgertiwdi ańsatlashtirib, koddıń maslasıwshılıǵın jaqsılaydı.
Eger obyektti jańa ózgeshelik qosılsa, onı konstruktordı ózgertiwge hájet qaldırmasdan Obyektti jumısqa túsiriw quralı járdeminde ańsatǵana jumısqa túsiriw múmkin. Bul, ásirese, kóp sanlı ayrıqshalıqlar yamasa qálegen ayrıqshalıqlarǵa iye bolǵan klasslar menen islewde paydalı bolıp tabıladı. Obyektti jumısqa túsiriwshiler bizge tek kerekli ayrıqshalıqlardı jumısqa túsiriwge múmkinshilik beredi, bul bolsa jáne de maslasıwshı kodqa alıp keledi.
Keling, olardıń hár túrlı túrdegi ob'ektler menen qanday islewin kórip shıǵayıq.
Basqasha etip aytqanda, bul ishki ornatılǵan ob'ekt tiykarǵı Obyekttiń aǵzası ekenligin hám biz oǵan tiykarǵı ob'ekt mısalı arqalı kiriwimiz múmkinligin ańlatadı. Olar bizge bir ob'ekt ishinde tiyisli funksionallıqtı shólkemlestiriw hám koddıń modulliligi hám turaqlılıǵındı jaqsılaw imkaniyatın beredi.
Keling, ishki klass ierarxiyasini jaratıw arqalı bunı jaqsılaw tushunaylik:
public class Order
|