lecture8 9
TRANSCRIPT
L o g o
Объект хандлагат програмчлал
Улаанбаатар Их Сургууль
2013 он
ОХП-ын дотоод асуудалбагш Б.Ганзориг
L o g o
Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он
Агуулга
Хийсвэр класс ба полиморфизм3
Хийсвэр классын тухай4
1
2
ОХП ба полиморфизм
Полиморфизмыг хэрэгжүүлэх
Интерфэйс ба полиморфизм5
L o g o
Улаанбаатар Их Сургууль 2013 он
ОХП ба полиморфизм
Объект хандлагат програмчлал
Полиморфизм нь ОХП-ийн үндсэн
ойлголтуудын нэг юм.
ОХП-ийн тулгуур 3н ойлголтын нэг
Polymorphism буюу олон хэлбэршилт юм.
ОХП-д тус ойлголтыг ижил үйлдлээр
ялгаатай үр дүнд хүрэх чадвар гэж болно.
L o g o
Улаанбаатар Их Сургууль 2013 он
ОХП ба полиморфизм
Объект хандлагат програмчлал
Өөрөөр хэлбэл ялгаатай объектуудад
ижил мэдээ дамжуулахад өөр өөр хариу
үйлдэл хийнэ гэсэн үг.
Полиморфизм нь хийсвэрлэл
(abstraction), битүүмжлэл
(encapsulation), удамшил (inheritance)
гэсэн 3 ойлголтын нэгдэл юм.
Програмд үзүүлэх давуу боломж, ач
холбогдлуудыг өөртөө шингээсэн ОХТ-ийн
гол ухагдахуун бол полиморфизм юм.
L o g o
Улаанбаатар Их Сургууль 2013 он
ОХП ба полиморфизм
Объект хандлагат програмчлал
Полиморфизмыг зөв хэрэгжүүлсэнээр
програмын уян хатан байдал, засвар
үйлчилгээ авах чанарыг сайжруулдаг.
Полиморфизм нь хийсвэрлэл
(abstraction), битүүмжлэл
(encapsulation), удамшил (inheritance)
гэсэн 3 ойлголтын нэгдэл юм.
L o g o
Улаанбаатар Их Сургууль 2013 он
ОХП ба полиморфизм
Объект хандлагат програмчлал
Програмд үзүүлэх давуу боломж, ач
холбогдлуудыг өөртөө шингээсэн ОХТ-ийн
гол ухагдахуун бол полиморфизм юм.
Полиморфизмыг зөв хэрэгжүүлсэнээр
програмын уян хатан байдал (flexibility),
засвар үйлчилгээ авах чанар
(maintainability)-ыг сайжруулдаг.
L o g o
Улаанбаатар Их Сургууль 2013 он
Полиморфизмыг хэрэгжүүлэх
Объект хандлагат програмчлал
ОХП-ын хэл бүр полиморфизмыг
хэрэгжүүлэх өөр өөрийн арга замуудаар
хангагдсан байдаг.
Жишээ нь: C++ хэл
Дахин тодорхойлогдсон үйлдэл
Даран тодорхойлогдсон арга
Виртуаль функц гэх мэт.
L o g o
Улаанбаатар Их Сургууль 2013 он
Полиморфизмыг хэрэгжүүлэх
Объект хандлагат програмчлал
Жава хэл полиморфизмыг дараах
байдлаар хэрэгжүүлдэг:
Хийсвэр класс
Даран тодорхойлогдсон арга
Интерфейс
Хожуу холболт гэх мэт
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Жава хэлэнд бодит ба хийсвэр гэсэн 2
төрлийн класс байдаг.
Хийсвэр класс нь дараах онцлогтой: Бүрэн бус класс бөгөөд түүнээс заавал дэд класс
удамшина.
Дор хаяж нэг буюу түүнээс олон хийсвэр арга
агуулсан байх
Түүний объектыг үүсгэх боломжгүй
Түүний хүү класс нь түүний хийсвэр аргуудыг
биелүүлнэ.
Хүү класс нь өөрөө хийсвэрээр зарлагдаж болно
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Хийсвэр арга (abstract method) нь их
биегүй аргыг хэлэх бөгөөд хийсвэр арга
өөрөө ОХП-ын полиморфизмыг
хэрэгжүүлэх нэг хэлбэр юм.
Эх классд тодорхойлогдсон хийсвэр
аргыг хүү классууд нь өөр өөрийнхөөр
хэрэгжүүлдэг.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Нэг буюу түүнээс олон хийсвэр арга
агуулах классыг хийсвэр класс буюу
abstract class гэдэг.
Хийсвэр классын хийсвэр аргуудыг
түүний хүү классд хэрэгжүүлнэ.
Хийсвэр классын тухайн тохиолдлыг
үүсгэх боломжгүй байдаг.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Хийсвэр класс нь гишүүн өгөгдөлтэй
байна.
Хийсвэр класс нь хийсвэр биш (хэрэг-
жүүлэлттэй) аргуудаар хангагдахыг
зөвшөөрнө.
Хийсвэр классын хийсвэр биш аргууд
нь хүү классдаа удамшина.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Классыг хийсвэрээр зарлахдаа abstract
түлхүүр үгийг ашиглана.
Хийсвэр аргын нэрний өмнө abstract
түлхүүр үгийг бичдэг.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Хийсвэр класс ашигласан энгийн жишээ
авч үзий.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Энд String төрлийн утга буцаах public
хандалттай getName() гэсэн нэг хийсвэр
арга агуулах Shape гэсэн хийсвэр класс
тодорхойлсон байна.
Дараагын жишээн дээр энэ хийсвэр
классын хүү класс Point классыг
тодорхойлъѐ.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Энд Point класс нь өөрийн хийсвэр эх
классын getName() хийсвэр аргын
хэрэгжилтийг агуулсан байна.
Эх классын хийсвэр аргыг хүү класст
хэрэгжүүлэхдээ уг аргыг public
хандалттай тодорхойлно гэсэн дүрмийн
дагуу Point класст getName() аргыг public
хандалттай тодорхойлсон байна.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Одоо Point классын хүү класс болох
Circle классыг тодорхойлъѐ.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Энд Circle класс нь өөрийн өвөө Shape
хэмээх хийсвэр классын getName()
хийсвэр аргын хэрэгжилтийг агуулахын
зэрэгцээ түүний getArea() аргыг дахин
тодорхойлсон байна.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Circle классын байгуулагч аргад
тодорхойлогдсон super(x, y) мөр нь
түүний эх класс болох Point классын
байгуулагч аргыг х ба у гэсэн 2
аргументтэй дуудаж буй хэрэг юм.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
Одоо Circle классын хүү класс болох
Cylinder классыг тодорхойлъѐ.
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
L o g o
Улаанбаатар Их Сургууль 2013 он
Хийсвэр классын тухай
Объект хандлагат програмчлал
L o g o
Улаанбаатар Их Сургууль
2013 он
Объект хандлагат програмчлал