28
L o g o Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он ОХП-ын дотоод асуудал багш Б.Ганзориг

Lecture8 9

Embed Size (px)

Citation preview

Page 1: Lecture8 9

L o g o

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

Улаанбаатар Их Сургууль

2013 он

ОХП-ын дотоод асуудалбагш Б.Ганзориг

Page 2: Lecture8 9

L o g o

Объект хандлагат програмчлал Улаанбаатар Их Сургууль 2013 он

Агуулга

Хийсвэр класс ба полиморфизм3

Хийсвэр классын тухай4

1

2

ОХП ба полиморфизм

Полиморфизмыг хэрэгжүүлэх

Интерфэйс ба полиморфизм5

Page 3: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

ОХП ба полиморфизм

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

Полиморфизм нь ОХП-ийн үндсэн

ойлголтуудын нэг юм.

ОХП-ийн тулгуур 3н ойлголтын нэг

Polymorphism буюу олон хэлбэршилт юм.

ОХП-д тус ойлголтыг ижил үйлдлээр

ялгаатай үр дүнд хүрэх чадвар гэж болно.

Page 4: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

ОХП ба полиморфизм

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

Өөрөөр хэлбэл ялгаатай объектуудад

ижил мэдээ дамжуулахад өөр өөр хариу

үйлдэл хийнэ гэсэн үг.

Полиморфизм нь хийсвэрлэл

(abstraction), битүүмжлэл

(encapsulation), удамшил (inheritance)

гэсэн 3 ойлголтын нэгдэл юм.

Програмд үзүүлэх давуу боломж, ач

холбогдлуудыг өөртөө шингээсэн ОХТ-ийн

гол ухагдахуун бол полиморфизм юм.

Page 5: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

ОХП ба полиморфизм

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

Полиморфизмыг зөв хэрэгжүүлсэнээр

програмын уян хатан байдал, засвар

үйлчилгээ авах чанарыг сайжруулдаг.

Полиморфизм нь хийсвэрлэл

(abstraction), битүүмжлэл

(encapsulation), удамшил (inheritance)

гэсэн 3 ойлголтын нэгдэл юм.

Page 6: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

ОХП ба полиморфизм

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

Програмд үзүүлэх давуу боломж, ач

холбогдлуудыг өөртөө шингээсэн ОХТ-ийн

гол ухагдахуун бол полиморфизм юм.

Полиморфизмыг зөв хэрэгжүүлсэнээр

програмын уян хатан байдал (flexibility),

засвар үйлчилгээ авах чанар

(maintainability)-ыг сайжруулдаг.

Page 7: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Полиморфизмыг хэрэгжүүлэх

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

ОХП-ын хэл бүр полиморфизмыг

хэрэгжүүлэх өөр өөрийн арга замуудаар

хангагдсан байдаг.

Жишээ нь: C++ хэл

Дахин тодорхойлогдсон үйлдэл

Даран тодорхойлогдсон арга

Виртуаль функц гэх мэт.

Page 8: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Полиморфизмыг хэрэгжүүлэх

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

Жава хэл полиморфизмыг дараах

байдлаар хэрэгжүүлдэг:

Хийсвэр класс

Даран тодорхойлогдсон арга

Интерфейс

Хожуу холболт гэх мэт

Page 9: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Жава хэлэнд бодит ба хийсвэр гэсэн 2

төрлийн класс байдаг.

Хийсвэр класс нь дараах онцлогтой: Бүрэн бус класс бөгөөд түүнээс заавал дэд класс

удамшина.

Дор хаяж нэг буюу түүнээс олон хийсвэр арга

агуулсан байх

Түүний объектыг үүсгэх боломжгүй

Түүний хүү класс нь түүний хийсвэр аргуудыг

биелүүлнэ.

Хүү класс нь өөрөө хийсвэрээр зарлагдаж болно

Page 10: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Хийсвэр арга (abstract method) нь их

биегүй аргыг хэлэх бөгөөд хийсвэр арга

өөрөө ОХП-ын полиморфизмыг

хэрэгжүүлэх нэг хэлбэр юм.

Эх классд тодорхойлогдсон хийсвэр

аргыг хүү классууд нь өөр өөрийнхөөр

хэрэгжүүлдэг.

Page 11: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Нэг буюу түүнээс олон хийсвэр арга

агуулах классыг хийсвэр класс буюу

abstract class гэдэг.

Хийсвэр классын хийсвэр аргуудыг

түүний хүү классд хэрэгжүүлнэ.

Хийсвэр классын тухайн тохиолдлыг

үүсгэх боломжгүй байдаг.

Page 12: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Хийсвэр класс нь гишүүн өгөгдөлтэй

байна.

Хийсвэр класс нь хийсвэр биш (хэрэг-

жүүлэлттэй) аргуудаар хангагдахыг

зөвшөөрнө.

Хийсвэр классын хийсвэр биш аргууд

нь хүү классдаа удамшина.

Page 13: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Классыг хийсвэрээр зарлахдаа abstract

түлхүүр үгийг ашиглана.

Хийсвэр аргын нэрний өмнө abstract

түлхүүр үгийг бичдэг.

Page 14: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Хийсвэр класс ашигласан энгийн жишээ

авч үзий.

Page 15: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Энд String төрлийн утга буцаах public

хандалттай getName() гэсэн нэг хийсвэр

арга агуулах Shape гэсэн хийсвэр класс

тодорхойлсон байна.

Дараагын жишээн дээр энэ хийсвэр

классын хүү класс Point классыг

тодорхойлъѐ.

Page 16: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Page 17: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Page 18: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Page 19: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Энд Point класс нь өөрийн хийсвэр эх

классын getName() хийсвэр аргын

хэрэгжилтийг агуулсан байна.

Эх классын хийсвэр аргыг хүү класст

хэрэгжүүлэхдээ уг аргыг public

хандалттай тодорхойлно гэсэн дүрмийн

дагуу Point класст getName() аргыг public

хандалттай тодорхойлсон байна.

Page 20: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Одоо Point классын хүү класс болох

Circle классыг тодорхойлъѐ.

Page 21: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Page 22: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Page 23: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Энд Circle класс нь өөрийн өвөө Shape

хэмээх хийсвэр классын getName()

хийсвэр аргын хэрэгжилтийг агуулахын

зэрэгцээ түүний getArea() аргыг дахин

тодорхойлсон байна.

Page 24: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Circle классын байгуулагч аргад

тодорхойлогдсон super(x, y) мөр нь

түүний эх класс болох Point классын

байгуулагч аргыг х ба у гэсэн 2

аргументтэй дуудаж буй хэрэг юм.

Page 25: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Одоо Circle классын хүү класс болох

Cylinder классыг тодорхойлъѐ.

Page 26: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Page 27: Lecture8 9

L o g o

Улаанбаатар Их Сургууль 2013 он

Хийсвэр классын тухай

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

Page 28: Lecture8 9

L o g o

Улаанбаатар Их Сургууль

2013 он

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