Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sw203 Lab7

2,586 views

Published on

  • Be the first to comment

  • Be the first to like this

Sw203 Lab7

  1. 1. Объект хандлагат програмчлалын хэл Java Хичээл : SW203 Улирал : 2006 намар Бэлтгэсэн багш : Д.Энхжаргал Mongolia University of Science & Technology Лабораторийн ажил № 7 Polymorphism Оноо: 3
  2. 2. Лабораторийн ажил гүйцэтгэх журам <ul><li>Лабораторийн цаг дээр </li></ul><ul><ul><li>Гадуур хувцастай суух </li></ul></ul><ul><ul><li>Хоорондоо ярих </li></ul></ul><ul><ul><li>Тоглоом тоглохыг тус тус хориглоно . </li></ul></ul><ul><li>Тухайн 7 хоногийн лекцийн цаг дээр үзсэн ойлголтоо ашиглан вэбэд тавигдсан зааврын дагуу тухайн 7 хоногийн лабораторийн ажлыг гүйцэтгэнэ. </li></ul><ul><li>Цагтаа амжиж лаборатори хамгаалахын тулд тухайн лекцэнд анхааралтай суухаас гадна тус хичээлийн өмнөх холбоо болох SW202 хичээлээр үзсэн ойлголт, мэдлэгээ бататган сэргээсэн байх ёстойг анхаарна уу. </li></ul><ul><li>Лабораторийн ажлыг дүгнэхдээ даалгаврын гүйцэтгэлээс хамаарч авах ёстой онооны 100 хүртэлх хувиар дүгнэнэ. Хэрэв дараагийн 7 хоногт нь нөхөж хамгаалвал даалгаврын гүйцэтгэлээс хамаарч авах ёстой онооны 75 хүртэлх хувиар дүгнэх бөгөөд лабораторийн ажлыг дахин нөхөж хамгаалах гэсэн ойлголт байхгүйг анхаарна уу. </li></ul>
  3. 3. <ul><li>Polymorphism </li></ul><ul><ul><li>ОХТ дахь Polymorphism гэдэг нь ойлголт нь ижил үйлдлээр ялгаатай үр дүнд хүрэх чадвар юм. Өх: Ялгаатай объектуудад ижил мэдээ дамжуулахад өөр өөр хариу үйлдэл хийнэ гэсэн үг. </li></ul></ul><ul><ul><li>ОХТехнологийн үндэс болсон 3 чухал ойлголтын нэг юм. P IE </li></ul></ul><ul><ul><li>Хожуу холболт (Late binding) гэсэн ойлголттой салшгүй холбоотой. </li></ul></ul><ul><ul><li>Java хэлэнд түүнийг хэрэгжүүлэх хэд хэдэн арга зам байдаг. Жишээ нь </li></ul></ul><ul><ul><ul><li>Хийсвэр функц </li></ul></ul></ul><ul><ul><ul><li>Интерфейс </li></ul></ul></ul><ul><ul><ul><li>Method override </li></ul></ul></ul><ul><ul><ul><li>Dynamic class loading гэх мэт </li></ul></ul></ul><ul><ul><li>Ач холбогдол: Шинээр класс үүсгэх, үүссэн классыг устгах гэх мэтчилэн програмд нэмэлт өөрчлөлт оруулахад хялбар байдаг. Өөрөөр хэлбэл: Тэрхүү өөрчлөлт нь програмын бусад хэсэгийн үйл ажиллагаанд нөлөөлөх нөлөөллийг багасгаж буй хэрэг юм. </li></ul></ul>Полиморфизм
  4. 4. Полиморфизм <ul><li>Даалгавар: </li></ul><ul><li>Оюутан бүр бодлогын даалгавраа өөрөө хийсвэрлэж ( өөрийн гэсэн нэг класс сонгож ) полиморфизм хэмээх ойлголтыг хэрэгжүүлсэн жижиг хэмжээний програм бичих. </li></ul><ul><li>Жич: Бид өмнөх лекцүүдээр хийсвэр функц, хийсвэр класс, интерфейс болон method override гэсэн ойлголтуудтай танилцаж, тэдгээрийг програмчлалд тодорхойлж, ашиглаж ирсэн нь нэг ёсондоо полиморфизмыг хэрэгжүүлэх зарим арга замуудыг өмнө нь хэрэгжүүлж байсан хэрэг юм. </li></ul><ul><li>Шаардлага: </li></ul><ul><li>Бодлогын даалгавар нь бодит амьдралын шаардлагад нийцсэн байх. </li></ul><ul><li>Java хэлэнд Polymorphism –ийг хэдэн арга замаар хэрэгжүүлэх боломжтой бөгөөд дараах хэрэгжилтүүдийн дор хаяж 3-ыг бодлогын даалгавартаа нийцүүлэн тусгасан байх. </li></ul><ul><ul><li>Интерфейс </li></ul></ul><ul><ul><li>Хийсвэр функц </li></ul></ul><ul><ul><li>Method override </li></ul></ul><ul><ul><li>Dynamic class laoading ... </li></ul></ul>
  5. 5. Жишээ: Полиморфизм Интерфейс Класс extends implements Төлбөр (Payment) интерфейс тодорхойлох Төлбөр интерфейсийн хүү Төгсөгч (Graduator) интерфейс тодорхойлох. Өх: Аливаа Төгсөгч нь төлбөрөө төлөх, шаардлагатай кр цуглуулах, ҮГД нь тодорхой шалгуурыг хангах, дипломын ажлыг зохих төвшинд хамгаалсан байх ёстой Төгсөгч (Graduator) интерфейсийг хэрэгжүүлэгч Оюутан класс display() хийсвэр функц
  6. 6. <ul><li>Полиморфизмыг энэ жишээннд хэрэгжүүлсэн байдал </li></ul><ul><li>Интерфейс </li></ul><ul><li>18, 3 2 , 4 4 –р мөрөнд Төгсөгч интерфейсд түүний эх интерфейсээс удамшиж ирсэн pay() хийсвэр функцын хэрэгжилтүүд байна. 21,23,26,3 4 ,3 6 ,3 8 ,4 6 ,4 8 , 50 -р мөрөнд Төгсөгч интерфейсийн өөрийнх нь 3 хийсвэр функцын хэрэгжилтүүд байна. </li></ul><ul><li>Хийсвэр функц </li></ul><ul><li>Student кллассын 12 мөрөнд тодорхойлсон display() хийсвэр функцын хэрэгжилтийг түүний хүү классуудад (17,31,43 мөрүүдэд ) тодорхойлсон байна. </li></ul><ul><li>Dynamic Class Loading </li></ul><ul><li>56 мөрөнд үндсэн функцын 0-р аргументаас хамаарч тухайн удамшлын иерархи дахь аль классын объект нь үүсэх нь биелэлтийн явцад тодорхой болох тул компиляцын үед 57,58, 59,60,61 мөрөн дэх функц дуудалтыг эрт холболт хийх боломжгүй тул тэдгээрийг хожуу холбож ажилуулна. </li></ul>
  7. 7. Ялгаатай объектууд руу ижил мэдээ дамжуулахад үр дүн нь өөр өөр байна. Үр дүн:
  8. 8. Ялгаатай объектууд руу ижил мэдээ дамжуулахад үр дүн нь өөр өөр байна. <ul><li>Bachelor Student </li></ul><ul><li>Master Student </li></ul><ul><li>DoctorateStudent </li></ul>Same Message Results are different

×