# Объект хандалтат программчлал

**Объект хандлагат програмчлал** гэдэг нь програмчлалын ойлголт бөгөөд компьютерийн програм зохиохдоо өгөгдлийг бүтэцлэж, методуудын харилцан үйлчлэлийг тодорхойлохдоо ашигладаг. Энэхүү програмчлалын техник нь дотроо дараах ухагдахуунуудыг агуулж байдаг. Үүнд өгөгдлийн абстракц, энкапсулээшн (мэдээллийн далдлалт), полморфизм, инхэритээнс (удамшил) зэрэг ордог. Орчин үеийн маш олон програмчлалын хэлнүүд ОХП-ыг дэмждэг болсон.

## Ерөнхий ойлголтууд

Объект гэдэг нь тодорхой нөхцлөөр нэгдсэн шинж чанарууд, функцүүдийн хольц юм. Ө.х Бодит амьдрал дээрх объектуудыг гэж ойлгож болно. Жишээлбэл таны ширээн дээрх аяга, халаасанд байгаа түлхүүр, гадаа байгаа байшин зэрэг нь бүгд объект мөн бөгөөд програм зохиогч эдгээрийг тус бүрд нь компьютер болон өөр нэг програмист ойлгох хэлээр тэмдэглэх зорилгоор энэхүү ОХП гэх ойлголт бий болсон.

### Класс

Класс гэдэг нь ОХП-ын үндсэн ойлголтуудын нэг бөгөөд обьектүүдийн загварыг хэлдэг. Жишээлбэл програм зохиогч хэрэглэх объектуудаа тодорхойлоод тэдгээрийг програм ажиллахдаа үүсгэж байхын тулд классыг объектынхоо загвар байдлаар бэлтгэдэг. Ө.х таны ширээн дээрх аяганы шинж чанар, аягатай холбоотой бүх үйлдлүүдийг класс дотор тодорхойлж өгөх бөгөөд програм ажиллаад эхлэхээрээ таны ширээн дээрхтэй яг ижил аягануудыг үүсгэн ашиглах олон янзын боломжтой болно гэсэн үг юм.
Өөр хоорондоо холбоотой объектүүдийн уялдаа холбоог мөн класс дотор тодорхойлж өгдөг. Програмчлалын хэл бүр классыг тодорхойлдог түлхүүр үгcтэй бөгөөд компьютер тэдгээр тусгай түлхүүр үгcээр классыг таньж өөр хооронд нь ялгана.

### Объект

Классаас объектийг үүсгэн ашигладаг. Ө.х ОХП-ын үндсэн ойлголт болох объект нь програм ажиллаж байх тухайн үеийн классын биелэл нь юм.
Энэхүү биелэл гэх ойлголтыг instance гэх бөгөөд тодорхойлолт нь: -"Run time үед үүссэн жинхэнэ объектийг хэлнэ" гэсэн байдаг.

### Метод (Method)

Класс дотор объектийн шинж чанар болон объекттой холбоотой үйлдүүд тодорхойлогдсон байдаг хэмээн дээр өгүүлсэн билээ. Тэгвэл энэхүү үйлдлүүд гэдгийг метод гэх бөгөөд жишээлбэл: аяга гэдэг класс дотор шингэн зүйл хийх гэсэн үйлдлийг тодорхойлж метод бичсэн гэж үзье. Улмаар өөр нэг классаас, эсвэл энэ классын өөр нэг методоос энэ үйлдлийг дуудахдаа кофе гэсэн утгыг дамжуулахад энэхүү объект дотроо кофетой болж шинж чанар нь баяжиж байдаг.

### Мессеж дамжуулах

Өмнө өгүүлсэнчлэн Аяга гэх класс руу кофе гэх утгыг методоор нь дамжуулан дуудсанаар таны объектийн нэг шинж чанар болох кофе гэсэн утга ямар нэгэн эспрессо эсвэл каппучино гэх зэрэг кофетой болж байгаа үйлдлийг ерөнхийд нь мессеж дамжуулах гэж хэлдэг. Ихэнхдээ иймэрхүү байдлаар шинж чанарт мессеж, утга дамжуулах методууд set гэсэн угтвар үг бүхий нэртэй байдаг. Жишээлбэл: setCoffee(String coffeeName); гэх мэт.

### Удамшил

Тодорхой нэг классын шинж чанарууд, метод буюу үйлдлүүдийг өөр нэг класс дотор дахин тодорхойлолгүй шууд авч ашиглах боломжийг удамшил гэж нэрлэдэг бөгөөд энэ нь эцэг класс, охин класс гэсэн ойлголтыг бий болгодог. Товчхондоо бол эцгийн ямар нэг шинж чанар эсвэл үйлдлийг охин нь шууд аван ашиглах боломж үүсгэснээр ОХП-ын нэгэн хүчирхэг боломж бий болдог юм. Жишээлбэл аяга гэдэг класс нь шилэн эдлэл гэсэн классаас удамшсан бөгөөд шилэн эдлэл класс дотор байх материал гэсэн шинж чанарыг шууд аяга гэсэн класс дотроос дуудан ашиглах боломж бий болгохын тулд удамшил хэрэгтэй.

## Нэмж сонирхвол

* Програм хангамж
* Програм хангамж хөгжүүлэлт
* Java (Программчлалын хэл)
* Aspect-oriented programming
* Програмчлал
* Circle-ellipse problem
* Comparison of programming languages (object-oriented programming)
* Comparison of programming paradigms
* Component-based software engineering
* Constructor overloading
* CORBA
* DCOM
* Design by contract
* GRASP
* IDEF4
* Interface description language
* Lepus3
* Modular programming
* Object association
* Object database
* Object-oriented analysis and design
* Object-relational impedance mismatch (and The Third Manifesto)
* Object-relational mapping
* Procedural programming
* Refactoring
* SOLID
* Visual FoxPro
* ZZT-oop

## Гадаад холбоосууд

|  |  |
| --- | --- |
| Wikibooks | **Wikibooks: Object oriented programming** – Сурах бичиг, зааврууд |

* OOP Programming Forum
* Chapter on implementing OOP in the programming language C by David Polberger
* Programming Styles: Procedural, OOP, and AOP(broken link)
* What is OOP? (Tutorial on OOP in PHP)
* Discussion about the flaws of OOD
* OOP Concepts (Java Tutorials)
* MDS Model Driven C Code Generation