Tuesday, May 25, 2010

МТ 2-2 Б.Хуягбаатар

C# хэл ба Объект хандлагат технологи

Объект хандлагат технологийн түлхүүр ойлголтууд
• Abstraction
• Encapsulation
• Polymorphism
• Inheritance
Abstraction гэдэг нь хэд хэдэн өгөгдлийн төрлүүд болон хэд хэдэн функцийг нэгтгэн объект үүсгэх боломж юм. Класс нь объектын загвар болох ба объект нь классын бодит байдал болно.
Жишээ нь: хэрвээ хүн гэдэг нь класс бол Бат, Дорж, Дулам нь объект болох юм.
Объект нь өөрийн гэсэн төлөв болон үйлдэлтэй. Үүнийг тайлбарлавал объектын утга нь түүний төлөв болох ба функц нь түүний үйлдэл болдог юм. Жишээ нь Дорж ярих нь түүний үйлдэл болно.

Encapsulation буюу битүүмжлэл. Энэ нь классын гишүүн өгөгдөл эсвэл функцад ямар класс хандаж болохыг заасан буюу классыг халдлагаас сэргийлж байгаа юм. Класс нь өөрийн гэсэн харьцах хэсэг буюу interface-тэй ба үүгээр класс хоорондоо харилцана гэсэн үг. Жишээ нь Дорж хэдэн номтой вэ гэдгийг Дорж л мэдэх болохоос өөр хэн нэгэн түүний номын тоог өөрчлөх боломжгүй юм.

Классын ангилал: Классыг гишүүн өгөгдлийн нууцлал заах түлхүүр үгээр 3 ангилдаг.
Public: Гишүүн өгөгдөл бүгдэд харагдах ба заагч ашиглан хэрэглэж бас болдог. Удамшдаг.
Private: Гишүүн өгөгдөл нуугдсан байх ба зөвхөн класс өөрөө л буюу түүний функцууд утгандаа л хандалт хийнэ. Заагч ашиглан хандалт хийх нь боломжгүй юм. Удамшихгүй.
Protected: Гишүүн өгөгдөл private төрлийн гишүүн өгөгдөлтэй адил боловч ялгаа нь удамшиж болдог.
interface IMyInterface //класстай харицах хэсгийг зарлаж байна.
{
void MethodToImplement(); //классын үйлдэл зөвхөн зөрлөж байна.
}

class InterfaceImplementer : IMyInterface
{
public void MethodToImplement()
{
Console.WriteLine("MethodToImplement() called.");
}
}


Дотоод буюу найз класс. Энэ нь тухайн application-ы түвшинд public боловч application-ы гадаа бол private болдог класс юм. Үүгээр new оператор ашиглан шинэ заагч бүхий объект байгуулж болдог.
Protected дотоод класс нь дээрхийн адил боловч new оператор ашиглан шинэ заагч бүхий объект байгуулж болдоггүй.
SubType буюу polymorphism - эрлийзжилт нь классын хувилбар болдог. Жишээ нь хүн гэдэг классын хувьд хар арьстай цагаан арьстай гэх мэт. Мөн энэхүү ойлголт нь функц дээр бас биелэх ба үүнийг ашиглан функцыг дахин програмчилж болдог. Хэрэв Дорж монгол хэлээр ярьдаг бол Бат монгол бас англи хэлээр яридаг бол хүн классын ярих(); функц нь Батын хувьд илүү өргөн хүрээтэй болж ирж байна.
using System;
public class WebSite
{
public string SiteName;
public string URL;
public string Description;
public WebSite() { }
public WebSite( string strSiteName, string strURL, string strDescription )
{
SiteName = strSiteName;
URL = strURL;
Description = strDescription;
}
public override string ToString()
{
return SiteName + ", " +URL + ", " +Description;
}
}
2 дахь WebSite() функцыг дахин тодорхойлж параметр авдаг болгосон байна.
WebSite( string strSiteName, string strURL, string strDescription )
Inheritance Удамшил гэдэг нь нэг классын тодорхойлолтыг ашиглан шинэ класс үүсгэн өшиглах явдал юм. Жишээ нь хүн гэдэг классаас ажилчин гэдэг класс удамшуулан ашиглах нь хүн + ажилчин гэсэн нэмэлт төлөв мэдээлэл оруулж болох бас хүн гэдэг классын өгөгдөлтэй байх зэрэг боломж нээгдэж байна. C#-ийн хувьд дараахь 2 хандалттай
base хандалт нь үндсэн классын гишүүдрүү хандах хандалт.
this хандалт нь одоо хэрэглэж байгаа объект болдог.
Base-ийн жишээ:
using System;// System-ийн сан ашиглана.
public class Person//Person класс зарлах
{
protected string ssn = "444-55-6666";//string төрлийн ssn хувьсагч, түүнд утга олгох
protected string name = "John L. Malgraine";//string төрөл name хувьсагч түүнд утга олгох
public virtual void GetInfo()
{
Console.WriteLine("Name: {0}", name);
Console.WriteLine("SSN: {0}", ssn);
}
}


class Employee: Person //Person классаас Employee класс удамшуулах
{
public string id = "ABC567EFG";
public override void GetInfo()
{ // Calling the base class GetInfo method:
base.GetInfo();
Console.WriteLine("Employee ID: {0}", id);
}
}
class TestClass // шинэ TestClass үүсгэх
{
public static void Main()
{
Employee E = new Employee(); //удамшсан Employee төрлийн E объект
E.GetInfo(); //удамшсан E-ийн функцыг дуудах
}
}
Гаралт:
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG


C# хэлийг зохиох болсон шалтгаан, зорилтууд

C# нь энгийн, орчин үеийн, ерөнхий хэрэглээний, объект хандлагат програмчлалын хэл байхаар бүтээгдсэн.
Програмчдын ажлыг хөнгөлөхөөс гадна, зарлагдаагүй хувьсагчдын хэрэглээг илрүүлэхийг оролдох, массивийн хязгаарлалт зэргийг хянах системийг олгоно.
C болон C++ хэлийг мэдэх хүмүүст энгийн мөн нэмэлт өргөн боломж, DirectX, SQL зэргийг ашиглах боломж олгосон.
C# application нь эдийн засгийн хувьд санах ой бага зарцуулах, процессорын хүч бага зарцуулах шаардлагыг хангана.
C# хэлийг ашиглан энгийн функц бичихээс эхлүүлэн бүхэл бүтэн үйлдлийн систем хүртэл бичиж болно.
Хамгийн гол нь internatiolozation дэмждэг хэл болсон.

Энэхүү нэрний нэршил нь “♯” хөгжмийн тэмдэглэгээ бөгөөд доод өнгөнөөс нэг хөг илүү дээр байна гэдгийг илэрхийлдэг. Энэхүү тэмдэглэгээ нь дугаарын # тэмдэглэгээнээс арай өөр нйлуу байдаг. Энэ нь C++ хэлний 1-ээр нэмэгдэх гэдэгтэй ойролцоо утгатай. Гэвч санамсаргүйгээр энэ нь дөрвөн нэмэх тэмдэг болсон ба ++++ гэсэн нь # болсон юм. Энгийн хэрэглэгчийн товчлуурт гаранд ♯ тэмдэг байдаггүй учир үүнийг ихэнхдээ дугаарлах тэмдэг # болгон хэрэглэдэг нь стандарт болсон. Гэвч MicroSoft компани үүнийг стандартаар хөгжмийн налуу тэмдэглэгээ буюу ♯-ийг ашигладаг.

Анхандаа энэхүү хэлийг үүсгэсэн даруйдаа COOL буюу C-like Object Oriented Language гэж нэрлэж байжээ. Гэвч энэ нь худалдааны нэршил мэт санагдахуйц байсан учраас үүнийг солин C# гэх болжээ.

Хувилбар Хэл бэлэн болсон Microsoft compiler
C# 1.0
12-р сар 2001
1-р сар 2002
C# 2.0
12-р сар 2002
11-р сар 2005
C# 3.0
6-р сар 2005
11-р сар 2006
C# 4.0
6-р сар 2006
4-р сар 2010


C#-ийн нэмэгдлүүд:
• Глобал хувьсагч эсвэл функц гэж байхгүй болсон. Бүгд класс дотор зарлагдах ба глобал хувьсагч эсвэл функц шаардлагатай бол түүнийг static гэж зарлан хэрэглэж болно.
• Boolean datatype шууд хэрэглэдэг болсон.
• C болон C++ хэл дээр байдаг гадаад хувьсагч нь адил нэртэй дотоод хувьсагчтай харшилдах нь больсон.
• Санах ойн заагч нь зөвхөн block( “{}” ) дотроо хүчинтэй бөгөөд үүнээс гадуур unsafe буюу аюулшзй бус болно. Ийм тэмдэглэгээ бүхий кодыг ажиллуулахад үүнийг ажиллуулах зөвшөөрөл шаардлагатай болдог.
• C# нь Common Type System (CTS) буюу нэгтгэсэн төрлийн систем болсон. Үүнийг :
o Value type
o Reference type гэж ангилна.
• Properties буюу тухайн объектын тухай зүйлүүдийг хянах засварлах интерфейс нэмэгдсэн.
• Boxing ба Unboxing
• Preprocessor
• XML дэмждэг

No comments:

Post a Comment