SlideShare une entreprise Scribd logo
1  sur  38
Лекц №6
Хичээлийн агуулга:
ОХП-ын ухагдахуунууд
Класс – аливаа зүйлийн төсөөлөл юм.
Объект – төсөөллөөс үүссэн бөгөөд дотооддоо далдалсан
өгөгдөл ба тэдгээр өгөгдөлтэй ажиллах үйлдлүүдээс бүтсэн нэгэн
зүйл юм.
Класс тодорхойлох
 [attributes] [modifiers] class identifier [:baselist] {class body}
Класс тодорхойлох
Атрибут нь тодорхой нэг зүйлийн талаар
нэмэлт мэдээлэл хавсаргахад хэрэглэгддэг.
Жишээлбэл:
классын
тухай
нэмэлт
мэдээлэл оруулж болно.
Атрибутуудыг дөрвөлжин хаалтан дотор
таслалаар тусгаарлан бичнэ.
[ClassDesc(Author="Knuth"), ClassDesc(Author="Ja
mes")]
Класс тодорхойлох
Классын хандалт хувиргагч нь класс руу
бусад ассемблей, ижил ассемблей, түүнээс
удамшсан классаас яаж хандаж болохыг
заана.
Классын хандалтыг заагаагүй бол үндсэн
internal хандалттай хандалттай болдог.
Класс тодорхойлох
Хандалт

Тайлбар

public

Класс руу дурын ассемблейгаас хандаж болно.

protected

Класс дотор тодорхойлогдсон класст
хэрэглэгдэнэ. Хандалт нь агуулагч класс эсвэл
агуулагчаас удамшсан классаар хязгаарлагдана.

internal

Ижил ассемблей дэх классудаас хандаж болно.

private

Класс дотор тодорхойлогдсон класст
хэрэглэгдэнэ. Хандалт нь агуулагч классаар
хязгаарлагдана.
Классын гишүүд
Үл өөрчлөгдөх утга.
Нэг const түлхүүр үгээр
тогтмолыг зарлаж болно.

хэд

хэдэн

Тогтмолыг зарлахдаа үндсэн төрлүүдийг
ашиглана.
Объектоор
болохгүй

дамжуулан

Тогтмолын
оноогддог.

утга

нь

тогтмолд

хандаж

хөрвүүлэлтийн

үед
Классын гишүүд
using System;
class Conversions {
public const double Cm = 2.54;
public const double Grams = 454.0 , km =
.62 ;
public const string ProjectName =
"Metrics";
}
Классын гишүүд
class ShowConversions{
static void Main() {
double pounds, gramWeight;
gramWeight = 1362;
pounds = gramWeight / Conversions.Grams;
Console.WriteLine("{0}
Grams=
Pounds", gramWeight,pounds);
Console.WriteLine("Cm per inch {0}", Conversions.Cm);
Conversions c= new Conversions(); // Create class
// This fails to compile. Cannot access const from object
Console.WriteLine("Cm per inch {0}", c.Cm);
}
}

{1}
Классын гишүүд
Өгөгдөл хадгалах хувьсагч
Утга нь ажиллах горимын үед өөрчлөгдөнө.
Талбарын төрлүүд нь үндсэн төрлүүдээр
хязгаарлагдахгүй
Талбарын хувиргагчид
static

Талбар нь объектод биш класст хамаарна.

readonly

Ийм талбарын утга нь зөвхөн байгуулагчаар буюу
зарлалтын үед тодорхойлогдоно.
Классын гишүүд
public class Upholstery{
public static readonly Upholstery silk = new Upholstery(15.00, 8);
public static readonly Upholstery wool = new Upholstery(12.00, 6);
public static readonly Upholstery cotton = new Upholstery(9.00, 6);
private double yardPrice;
private int deliveryWeeks;
private Upholstery ( double yrPrice, int delWeeks)
{
yardPrice = yrPrice;
deliveryWeeks = delWeeks;
}
Классын гишүүд
public double FabCost(double yards)
{
return yards * this.yardPrice;
}
public int DeliveryTime
{get { return deliveryWeeks;}}
public double PricePerYard
{get {return yardPrice;}}
}
Классын гишүүд
Класс дахь утгуудад хандах боломж олгоно.
Классын өгөгдлүүдрүү унших болон бичих
хандалтыг удирдахад ашиглагдана.

Синтакс:
[attributes] <modifier> <data type> <property name>
{
[access modifier] get
{ ...
return(propertyvalue)
}
[access modifier] set
{ ... Code to set a field to the keyword value }
}
Классын гишүүд
Value нь пропертид дамжуулсан утгыг заах
далд параметр
Get блок дахь код нь хандагч методын
үүргийг гүйцэтгэнэ. Энэ блокийг орхивол
зөвхөн бичих проперти болно.
Set блок дахь код нь өөрчлөгч методын
үүргийг гүйцэтгэнэ. Энэ блокийг орхивол
зөвхөн унших проперти болно.
Классын гишүүд
public class Upholstery {
private double yardPrice;
public double PricePerYard {
get {return yardPrice;}
set {
if ( value <= 0 )
throw new ArgumentOutOfRangeException("Price
must be greater than 0.");
yardPrice = value
}
}
…
}
Классын гишүүд
public class Upholstery {
private double yardPrice;
public double PricePerYard {
get {return yardPrice;}
set {
if ( value <= 0 )
throw new ArgumentOutOfRangeException("Price
must be greater than 0.");
yardPrice = value
}
}
…
}
Классын гишүүд
Тооцоолол үйлдэл хийх зорилго бүхий
класстай холбогдсон функц
Методуудын цуглуулга
төрхийг тодорхойлно.

нь

классын

зан

Методууд нь өөр хоорондоо толгойн
мэдээлэл болох методын нэр, параметрийн
нэр, төрлөөр ялгагдана.

Метод нь мөн буцах
хувиргагчтай байна.

утга,

хандалт
Классын гишүүд
Үзэгдэл
гэдэг
нь
объектын
төлөв
өөрчлөгдсөн тухай бусад класс буюу
объектод мэдээлэх арга
Ө.х. Прогармын ямар нэг функцийг өдөөх нь
үзэгдэл болдог. (хулганы товч дарах, Enter
товч дарах г.м)
Аливаа классын үзэгдлүүд нь хэрэглэгч
програмтай харьцахад үүсдэг үйлдлүүдийг
мэдээлдэг.
Үйлдлүүд нь үзэгдэл болон үзэгдлийг
боловсруулах методуудтай байдаг.
Классын гишүүд

Үзэгдлийн өдөөж байгаа нь нийтлэгч, түүнийг
барьж байгаа метод нь захиалагч, эдгээрийг
холбож байгаа объектыг төлөөлөгч гэж нэрлэдэг.
Классын гишүүд
Төлөөлөгч
• public delegate void EventHandler(object sender, EventArgs e);

Захиалагч
• this.button1.Click += new System.EventHandler(this.button1_Click);
Нийтлэгч

• private void button1_Click(object sender, EventArgs e) { }

 Object төрлийн sender параметр нь үзэгдэл үүсгэгчийг
заана.
 EventArgs төрлийн e параметр нь үзэгдэлтэй холбоотой
өгөгдлийг агуулна.
Классын гишүүд

Проперти:
•
•
•
•
•

өнгө
диаметр
өндөр
өргөн
хийлсэн, хийлээгүй

Метод :
• хий дүүргэх
• хийг нь гаргах

Үзэгдэл:
• цоолоход
хийгээ
алдана,
• амыг нь суллахад
агаарт дээшилнэ.
Классын гишүүд
Объекттой ажиллах
Объектыг үүсгэх хамгийн нийтлэг загвар нь
үйлдвэрийн арга юм. Энэ нь FCL-д
ашиглагддаг.
Энэ арга нь объектыг
объектыг тодорхойлно.

үйлдвэрлэдэг

Объект үүсгэх бүх нарийн ширийнийг
үйлдвэрлэгч хариуцна, захиалагч нь зөвхөн
ямар объект үүсгэх хүсэлтээ байгаа
үйлдвэрлэгчид хэлнэ.
Үйлдвэрийн загварыг хэрэглэх хэд хэдэн
тохиолдол байдаг.
Объекттой ажиллах

Нэг “үйлдвэр” класстай үйлдвэр
Объекттой ажиллах

Олон “үйлдвэр” класстай үйлдвэр
Объекттой ажиллах
Эксепшен боловсруулалтын гол утга нь
тооцоолоогүй нөхцөл үүссэн ч тасралтгүй
ажиллах найдвартай код бүтээхэд оршино.
.NET нь алдааны нөхцөлүүдтэй тэмцэхэд
Эксепшен боловсруулалт (SEH) гэсэн
техникийг ашигладаг.

багш: В.Нямсүрэн
Объекттой ажиллах
Алдааны нөхцөл (файл систем, техник эд
анги, фреймворкийн сангаас) үүсэх
Эксепшен
объект
(програмд
тооцоолоогүй онцгой нөхцөл үүсэн
тухай мэдээллийг агуулах объект)
үүсгэж
Урьдчилан бэлдсэн, алдаа боловсруулах
хэсэгрүү дамжуулна. (.NET орчинд
эксепшен объект нь кодын нэг хэсэгт
үүсэж нөгөө хэсэгрүү шидэгддэг. )
багш: В.Нямсүрэн
Объекттой ажиллах
Эксепшен нь объект байдлаар програмд дамжуулагдах бөгөөд энэ
объект нь эксепшений тухай мэдээлэл, түүнийг үүсгэсэн ассемблей,
дамжсан замын мэдээллүүдийг агуулна.
Хэрэв шидэгдсэн Эксепшенийг програм барихгүй бол CLR барьж
програмыг тасалдаг.
Эксепшен гарч болзошгүй болон гарсан үед боловсруулах код нь
заавал цуг байх албагүй. Эксепшен боловсруулах код нь тусдаа өөр
класс дотор байж болно.
Эксепшенүүд нь програмын, системийн аль ч түвшинд хэрэглэгддэг.

багш: В.Нямсүрэн
Объекттой ажиллах
Эксепшен бол объект юм
Бүх эксепшен объектууд System.Exception
классаас удамшдаг.

багш: В.Нямсүрэн
Объекттой ажиллах
C#-д
эксепшен
боловсруулахад
try/catch/finally бүтцийг ашиглана.

багш: В.Нямсүрэн
Объекттой ажиллах

catch

try

Энэ блок нь ямар төрлийн эксепшен барихыг
заасан шүүлтүүр илэрхийлэл, түүний араас
кодын биеийн хамт тодорхойлогдоно.

Энэ блок дотор бичигдсэн кодыг хамгаалалттай
муж гэж үздэг бөгөөд энэ мужид үүссэн
эксепшенийг
catch
эсвэл
finally
блокт
боловсруулна

Finally

Энэ блок нь эксепшен үүссэн, эс үүссэнээс үл
хамааран төгсгөлийн цэвэрлэгээ хийх кодууд
байрлана.

багш: В.Нямсүрэн
Удамшил,полиморфизм,
нэрийн орон зай

Удамшил
Полиморфизм
Класс болон бүтэц
Нэрийн орон зай
Удамшил гэж юу вэ?
Удамшил бол “is-a-kind-of” харьцааг
заадаг.
Олон классууд ижил аттрибут, үйл
ажиллагаатай байснаар кодын дахин
ашиглалт үр дүнтэй болно.
Жишээ нь:
 Үйлчлүүлэгч бол “is-a-kind-of” хүн
 Ажилчин бол “is-a-kind-of” хүн
Классаас хэрхэн удамшуулах
вэ?
Удамшсан класс нь суурь классаас
удамшина.
Шинж байдал,функц,өгөгдөл,үйл
ажиллагаа, үйл явц баригч эд бүгд
удамшиж болно.
Түлхүүр үг
 Inherits-Суурь классаас удамшиж буй
 Notinheritable-Удамшиж болохгүй
 Mustinherit-Классын объект үүсэх ѐсгүй.
Зөвхөн удамшуулж л болно.
Полиморфизм гэж юу вэ?
Суурь классаас хамааралтай.
Суурь классын функц нь удамшсан
класст очоод өөрчлөгдөнө
(сайжирна).
Basetex
calculateTex()

Basetex

Basetex

calculateTex()

calculateTex()
Класс болон бүтцийг харьцуулах
Класс

Бүтэц

Гишүүн өгөгдөл,функц, шинж
байдал

Гишүүн өгөгдөл,функц, шинж
байдал

Байгуулагч функцтэй

Байгуулагч функц байхгүй

Устгагч функцтэй

Устгагч функцгүй

Удамшуулан сайжирдаг

Удамшил байхгүй

Заалтат төрөл

Утгат төрөл
Классыг нэрийн орон зайд
байршуулах
Namespace бол байгууллагын систем
Namespace нь бүрэн заагддаг.
 Жишээ нь: system.windows.forms.button

Namespace оруулж ирэхдээ:
 Прожектын түвшинд Namespace агуулж буй
DLL файлыг заалтаар оруулж ирснээр
хэрэгжинэ.
 Imports түлхүүр үгийг ашиглана.

Contenu connexe

Tendances

Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
Баярсайхан Л
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
Turuu Tsogt
 

Tendances (20)

Лекц 9(Заагч)
Лекц 9(Заагч)Лекц 9(Заагч)
Лекц 9(Заагч)
 
Sw203 Lecture6 Inheritance
Sw203 Lecture6 InheritanceSw203 Lecture6 Inheritance
Sw203 Lecture6 Inheritance
 
Systemiin shinjilgee ba zohiomj lekts
Systemiin shinjilgee ba zohiomj lektsSystemiin shinjilgee ba zohiomj lekts
Systemiin shinjilgee ba zohiomj lekts
 
Sw203 Lecture8 Interface
Sw203 Lecture8 InterfaceSw203 Lecture8 Interface
Sw203 Lecture8 Interface
 
Лекц-3
Лекц-3Лекц-3
Лекц-3
 
массив
массивмассив
массив
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
 
5 algorithm
5 algorithm5 algorithm
5 algorithm
 
7 8
7 87 8
7 8
 
алгоритм
алгоритмалгоритм
алгоритм
 
Rdbms 300 test
Rdbms 300 testRdbms 300 test
Rdbms 300 test
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
 
C cons
C consC cons
C cons
 
Pp Lect1 1
Pp Lect1 1Pp Lect1 1
Pp Lect1 1
 
өгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсөгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэс
 
Sw203 Lecture10 Polymorphism
Sw203 Lecture10 PolymorphismSw203 Lecture10 Polymorphism
Sw203 Lecture10 Polymorphism
 
Pl lecture3
Pl lecture3Pl lecture3
Pl lecture3
 
It101 lect9
It101 lect9It101 lect9
It101 lect9
 
It101 lec6 10.06
It101 lec6 10.06It101 lec6 10.06
It101 lec6 10.06
 
мэдээллийн технологи 1 хичээлийн хөтөлбөр
мэдээллийн технологи 1 хичээлийн хөтөлбөрмэдээллийн технологи 1 хичээлийн хөтөлбөр
мэдээллийн технологи 1 хичээлийн хөтөлбөр
 

En vedette (12)

Oop lect 10
Oop lect   10Oop lect   10
Oop lect 10
 
Sedev 1
Sedev 1Sedev 1
Sedev 1
 
Lec1
Lec1Lec1
Lec1
 
Java lecture5
Java lecture5Java lecture5
Java lecture5
 
Java lecture3
Java lecture3Java lecture3
Java lecture3
 
001 c++ class охп
001 c++ class охп001 c++ class охп
001 c++ class охп
 
Java лекц8
Java лекц8Java лекц8
Java лекц8
 
Microsoft access 2007
Microsoft access 2007Microsoft access 2007
Microsoft access 2007
 
Auto cad программын монгол ном
Auto cad программын монгол номAuto cad программын монгол ном
Auto cad программын монгол ном
 
C# hicheelin lekts
C# hicheelin lektsC# hicheelin lekts
C# hicheelin lekts
 
Diplomnii etsii huvilbar
Diplomnii etsii huvilbarDiplomnii etsii huvilbar
Diplomnii etsii huvilbar
 
Gosexem asuult 09
Gosexem asuult 09Gosexem asuult 09
Gosexem asuult 09
 

Similaire à Лекц 6 - 7 (20)

3
33
3
 
33
3333
33
 
SW203 Lab9
SW203  Lab9SW203  Lab9
SW203 Lab9
 
Cs203 lecture 14 reflection
Cs203 lecture 14  reflectionCs203 lecture 14  reflection
Cs203 lecture 14 reflection
 
Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
Lecture4
Lecture4Lecture4
Lecture4
 
Ood lesson12.1 ---------
Ood lesson12.1  ---------Ood lesson12.1  ---------
Ood lesson12.1 ---------
 
Lec5 angi
Lec5 angiLec5 angi
Lec5 angi
 
Pl lecture7
Pl lecture7Pl lecture7
Pl lecture7
 
Lecture3 4
Lecture3 4Lecture3 4
Lecture3 4
 
Sw203 Lecture7 Method Override
Sw203 Lecture7  Method OverrideSw203 Lecture7  Method Override
Sw203 Lecture7 Method Override
 
Dsi lec5
Dsi lec5Dsi lec5
Dsi lec5
 
001cclass 120926194905-phpapp02
001cclass 120926194905-phpapp02001cclass 120926194905-phpapp02
001cclass 120926194905-phpapp02
 
Lec04
Lec04Lec04
Lec04
 
Pl lecture6
Pl lecture6Pl lecture6
Pl lecture6
 
Лаборатор-3
Лаборатор-3Лаборатор-3
Лаборатор-3
 
Ood lesson5
Ood lesson5Ood lesson5
Ood lesson5
 
Lecture5 6
Lecture5 6Lecture5 6
Lecture5 6
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 

Plus de Chinzorig Undarmaa (20)

Лабораторийн ажил 12
Лабораторийн ажил 12Лабораторийн ажил 12
Лабораторийн ажил 12
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Лекц 2
Лекц 2Лекц 2
Лекц 2
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4
 
Лекц 4
Лекц 4Лекц 4
Лекц 4
 
Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6
 
Лекц 5 - 6
Лекц 5 - 6Лекц 5 - 6
Лекц 5 - 6
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 
Лекц 7
Лекц 7Лекц 7
Лекц 7
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 

Лекц 6 - 7

  • 3. ОХП-ын ухагдахуунууд Класс – аливаа зүйлийн төсөөлөл юм. Объект – төсөөллөөс үүссэн бөгөөд дотооддоо далдалсан өгөгдөл ба тэдгээр өгөгдөлтэй ажиллах үйлдлүүдээс бүтсэн нэгэн зүйл юм.
  • 4. Класс тодорхойлох  [attributes] [modifiers] class identifier [:baselist] {class body}
  • 5. Класс тодорхойлох Атрибут нь тодорхой нэг зүйлийн талаар нэмэлт мэдээлэл хавсаргахад хэрэглэгддэг. Жишээлбэл: классын тухай нэмэлт мэдээлэл оруулж болно. Атрибутуудыг дөрвөлжин хаалтан дотор таслалаар тусгаарлан бичнэ. [ClassDesc(Author="Knuth"), ClassDesc(Author="Ja mes")]
  • 6. Класс тодорхойлох Классын хандалт хувиргагч нь класс руу бусад ассемблей, ижил ассемблей, түүнээс удамшсан классаас яаж хандаж болохыг заана. Классын хандалтыг заагаагүй бол үндсэн internal хандалттай хандалттай болдог.
  • 7. Класс тодорхойлох Хандалт Тайлбар public Класс руу дурын ассемблейгаас хандаж болно. protected Класс дотор тодорхойлогдсон класст хэрэглэгдэнэ. Хандалт нь агуулагч класс эсвэл агуулагчаас удамшсан классаар хязгаарлагдана. internal Ижил ассемблей дэх классудаас хандаж болно. private Класс дотор тодорхойлогдсон класст хэрэглэгдэнэ. Хандалт нь агуулагч классаар хязгаарлагдана.
  • 8. Классын гишүүд Үл өөрчлөгдөх утга. Нэг const түлхүүр үгээр тогтмолыг зарлаж болно. хэд хэдэн Тогтмолыг зарлахдаа үндсэн төрлүүдийг ашиглана. Объектоор болохгүй дамжуулан Тогтмолын оноогддог. утга нь тогтмолд хандаж хөрвүүлэлтийн үед
  • 9. Классын гишүүд using System; class Conversions { public const double Cm = 2.54; public const double Grams = 454.0 , km = .62 ; public const string ProjectName = "Metrics"; }
  • 10. Классын гишүүд class ShowConversions{ static void Main() { double pounds, gramWeight; gramWeight = 1362; pounds = gramWeight / Conversions.Grams; Console.WriteLine("{0} Grams= Pounds", gramWeight,pounds); Console.WriteLine("Cm per inch {0}", Conversions.Cm); Conversions c= new Conversions(); // Create class // This fails to compile. Cannot access const from object Console.WriteLine("Cm per inch {0}", c.Cm); } } {1}
  • 11. Классын гишүүд Өгөгдөл хадгалах хувьсагч Утга нь ажиллах горимын үед өөрчлөгдөнө. Талбарын төрлүүд нь үндсэн төрлүүдээр хязгаарлагдахгүй Талбарын хувиргагчид static Талбар нь объектод биш класст хамаарна. readonly Ийм талбарын утга нь зөвхөн байгуулагчаар буюу зарлалтын үед тодорхойлогдоно.
  • 12. Классын гишүүд public class Upholstery{ public static readonly Upholstery silk = new Upholstery(15.00, 8); public static readonly Upholstery wool = new Upholstery(12.00, 6); public static readonly Upholstery cotton = new Upholstery(9.00, 6); private double yardPrice; private int deliveryWeeks; private Upholstery ( double yrPrice, int delWeeks) { yardPrice = yrPrice; deliveryWeeks = delWeeks; }
  • 13. Классын гишүүд public double FabCost(double yards) { return yards * this.yardPrice; } public int DeliveryTime {get { return deliveryWeeks;}} public double PricePerYard {get {return yardPrice;}} }
  • 14. Классын гишүүд Класс дахь утгуудад хандах боломж олгоно. Классын өгөгдлүүдрүү унших болон бичих хандалтыг удирдахад ашиглагдана. Синтакс: [attributes] <modifier> <data type> <property name> { [access modifier] get { ... return(propertyvalue) } [access modifier] set { ... Code to set a field to the keyword value } }
  • 15. Классын гишүүд Value нь пропертид дамжуулсан утгыг заах далд параметр Get блок дахь код нь хандагч методын үүргийг гүйцэтгэнэ. Энэ блокийг орхивол зөвхөн бичих проперти болно. Set блок дахь код нь өөрчлөгч методын үүргийг гүйцэтгэнэ. Энэ блокийг орхивол зөвхөн унших проперти болно.
  • 16. Классын гишүүд public class Upholstery { private double yardPrice; public double PricePerYard { get {return yardPrice;} set { if ( value <= 0 ) throw new ArgumentOutOfRangeException("Price must be greater than 0."); yardPrice = value } } … }
  • 17. Классын гишүүд public class Upholstery { private double yardPrice; public double PricePerYard { get {return yardPrice;} set { if ( value <= 0 ) throw new ArgumentOutOfRangeException("Price must be greater than 0."); yardPrice = value } } … }
  • 18. Классын гишүүд Тооцоолол үйлдэл хийх зорилго бүхий класстай холбогдсон функц Методуудын цуглуулга төрхийг тодорхойлно. нь классын зан Методууд нь өөр хоорондоо толгойн мэдээлэл болох методын нэр, параметрийн нэр, төрлөөр ялгагдана. Метод нь мөн буцах хувиргагчтай байна. утга, хандалт
  • 19. Классын гишүүд Үзэгдэл гэдэг нь объектын төлөв өөрчлөгдсөн тухай бусад класс буюу объектод мэдээлэх арга Ө.х. Прогармын ямар нэг функцийг өдөөх нь үзэгдэл болдог. (хулганы товч дарах, Enter товч дарах г.м) Аливаа классын үзэгдлүүд нь хэрэглэгч програмтай харьцахад үүсдэг үйлдлүүдийг мэдээлдэг. Үйлдлүүд нь үзэгдэл болон үзэгдлийг боловсруулах методуудтай байдаг.
  • 20. Классын гишүүд Үзэгдлийн өдөөж байгаа нь нийтлэгч, түүнийг барьж байгаа метод нь захиалагч, эдгээрийг холбож байгаа объектыг төлөөлөгч гэж нэрлэдэг.
  • 21. Классын гишүүд Төлөөлөгч • public delegate void EventHandler(object sender, EventArgs e); Захиалагч • this.button1.Click += new System.EventHandler(this.button1_Click); Нийтлэгч • private void button1_Click(object sender, EventArgs e) { }  Object төрлийн sender параметр нь үзэгдэл үүсгэгчийг заана.  EventArgs төрлийн e параметр нь үзэгдэлтэй холбоотой өгөгдлийг агуулна.
  • 22. Классын гишүүд Проперти: • • • • • өнгө диаметр өндөр өргөн хийлсэн, хийлээгүй Метод : • хий дүүргэх • хийг нь гаргах Үзэгдэл: • цоолоход хийгээ алдана, • амыг нь суллахад агаарт дээшилнэ.
  • 24. Объекттой ажиллах Объектыг үүсгэх хамгийн нийтлэг загвар нь үйлдвэрийн арга юм. Энэ нь FCL-д ашиглагддаг. Энэ арга нь объектыг объектыг тодорхойлно. үйлдвэрлэдэг Объект үүсгэх бүх нарийн ширийнийг үйлдвэрлэгч хариуцна, захиалагч нь зөвхөн ямар объект үүсгэх хүсэлтээ байгаа үйлдвэрлэгчид хэлнэ. Үйлдвэрийн загварыг хэрэглэх хэд хэдэн тохиолдол байдаг.
  • 27. Объекттой ажиллах Эксепшен боловсруулалтын гол утга нь тооцоолоогүй нөхцөл үүссэн ч тасралтгүй ажиллах найдвартай код бүтээхэд оршино. .NET нь алдааны нөхцөлүүдтэй тэмцэхэд Эксепшен боловсруулалт (SEH) гэсэн техникийг ашигладаг. багш: В.Нямсүрэн
  • 28. Объекттой ажиллах Алдааны нөхцөл (файл систем, техник эд анги, фреймворкийн сангаас) үүсэх Эксепшен объект (програмд тооцоолоогүй онцгой нөхцөл үүсэн тухай мэдээллийг агуулах объект) үүсгэж Урьдчилан бэлдсэн, алдаа боловсруулах хэсэгрүү дамжуулна. (.NET орчинд эксепшен объект нь кодын нэг хэсэгт үүсэж нөгөө хэсэгрүү шидэгддэг. ) багш: В.Нямсүрэн
  • 29. Объекттой ажиллах Эксепшен нь объект байдлаар програмд дамжуулагдах бөгөөд энэ объект нь эксепшений тухай мэдээлэл, түүнийг үүсгэсэн ассемблей, дамжсан замын мэдээллүүдийг агуулна. Хэрэв шидэгдсэн Эксепшенийг програм барихгүй бол CLR барьж програмыг тасалдаг. Эксепшен гарч болзошгүй болон гарсан үед боловсруулах код нь заавал цуг байх албагүй. Эксепшен боловсруулах код нь тусдаа өөр класс дотор байж болно. Эксепшенүүд нь програмын, системийн аль ч түвшинд хэрэглэгддэг. багш: В.Нямсүрэн
  • 30. Объекттой ажиллах Эксепшен бол объект юм Бүх эксепшен объектууд System.Exception классаас удамшдаг. багш: В.Нямсүрэн
  • 32. Объекттой ажиллах catch try Энэ блок нь ямар төрлийн эксепшен барихыг заасан шүүлтүүр илэрхийлэл, түүний араас кодын биеийн хамт тодорхойлогдоно. Энэ блок дотор бичигдсэн кодыг хамгаалалттай муж гэж үздэг бөгөөд энэ мужид үүссэн эксепшенийг catch эсвэл finally блокт боловсруулна Finally Энэ блок нь эксепшен үүссэн, эс үүссэнээс үл хамааран төгсгөлийн цэвэрлэгээ хийх кодууд байрлана. багш: В.Нямсүрэн
  • 34. Удамшил гэж юу вэ? Удамшил бол “is-a-kind-of” харьцааг заадаг. Олон классууд ижил аттрибут, үйл ажиллагаатай байснаар кодын дахин ашиглалт үр дүнтэй болно. Жишээ нь:  Үйлчлүүлэгч бол “is-a-kind-of” хүн  Ажилчин бол “is-a-kind-of” хүн
  • 35. Классаас хэрхэн удамшуулах вэ? Удамшсан класс нь суурь классаас удамшина. Шинж байдал,функц,өгөгдөл,үйл ажиллагаа, үйл явц баригч эд бүгд удамшиж болно. Түлхүүр үг  Inherits-Суурь классаас удамшиж буй  Notinheritable-Удамшиж болохгүй  Mustinherit-Классын объект үүсэх ѐсгүй. Зөвхөн удамшуулж л болно.
  • 36. Полиморфизм гэж юу вэ? Суурь классаас хамааралтай. Суурь классын функц нь удамшсан класст очоод өөрчлөгдөнө (сайжирна). Basetex calculateTex() Basetex Basetex calculateTex() calculateTex()
  • 37. Класс болон бүтцийг харьцуулах Класс Бүтэц Гишүүн өгөгдөл,функц, шинж байдал Гишүүн өгөгдөл,функц, шинж байдал Байгуулагч функцтэй Байгуулагч функц байхгүй Устгагч функцтэй Устгагч функцгүй Удамшуулан сайжирдаг Удамшил байхгүй Заалтат төрөл Утгат төрөл
  • 38. Классыг нэрийн орон зайд байршуулах Namespace бол байгууллагын систем Namespace нь бүрэн заагддаг.  Жишээ нь: system.windows.forms.button Namespace оруулж ирэхдээ:  Прожектын түвшинд Namespace агуулж буй DLL файлыг заалтаар оруулж ирснээр хэрэгжинэ.  Imports түлхүүр үгийг ашиглана.