Үндсэн ялгаа – Анги ба интерфэйс
Объект хандалтат програмчлал (OOP) нь програм хангамж хөгжүүлэх нийтлэг парадигм юм. Энэ нь ангиуд болон объектуудыг ашиглан програмчлалд бодит хувилбаруудыг авчрахад тусалдаг. Анги нь объект үүсгэх зураг төсөл юм. Программист шинж чанар, аргуудтай анги үүсгэж болно. Оюутан, багш хоёр бол объект юм. Объект үүсгэхийг instantiation гэж нэрлэдэг. OOP нь мөн интерфэйс ашигладаг. Интерфейс болон анги нь ижил төстэй мэт санагдаж болох ч ялгаа бий. Энэ нийтлэлд анги болон интерфейсийн ялгааг авч үзэх болно. Анги болон интерфэйсийн гол ялгаа нь анги нь тухайн объектыг үүсгэх загвар болох лавлагааны төрөл бөгөөд интерфэйс нь объектыг үүсгэхэд ашиглах боломжгүй лавлагааны төрөл юм.
Анги гэж юу вэ?
OOP-д бүх зүйлийг объект гэж үздэг. Ангигүйгээр объект үүсгэх боломжгүй. Анги нь объект үүсгэх зураг төсөл юм. Байшин барихдаа архитектор төлөвлөгөөг нь зурдаг. Төлөвлөгөө нь ангитай төстэй. Байшин нь объекттой төстэй юм. Анги бол объект барих төлөвлөгөө юм. Объект нь анги ашиглан бүтээгдсэн зүйл юм.
Анги нь шинж чанар, аргуудыг агуулдаг. Оюутан нэр, зэрэг, индексийн дугаар зэрэг шинж чанаруудтай байж болно. Оюутан хүн унших, алхах, судлах гэх мэт аргуудтай байж болно. Анги нь шаардлагатай шинж чанарууд болон аргуудаар үүсгэгддэг.
Олон програмчлалын хэл дээр анги үүсгэх синтакс дараах байдалтай байна. Үүнийг класс түлхүүр үг ашиглан үүсгэсэн.
анги ангийн_нэр {
// өмч
//арга
}
С болон Java зэрэг програмчлалын хэлүүд нь анги ашиглан объект үүсгэхийн тулд ижил төстэй синтаксийг дагадаг. Ангийн нэрийг Оюутан гэж бодъё.
Оюутан s1=шинэ оюутан ();
Энэ s1 нь объект юм. "Шинэ" түлхүүр үг нь шинж чанаруудад санах ойг хуваарилахад ашиглагддаг. Ангид мөн шинж чанар эсвэл хувьсагчийг эхлүүлэх байгуулагч байдаг.
Ангийн гишүүд, тухайлбал шинж чанар, аргууд нь хандалт өөрчлөх чадвартай. Хандалтын тодорхойлогч нь тэдгээр гишүүдийн бусад ангиудад хүртээмж, харагдах байдлыг тодорхойлдог. Ангийн гишүүд нийтийн, хувийн, хамгаалагдсан гэх мэт хандалтын тодорхойлогчтой байж болно. Нийтийн гишүүдэд бусад ангиуд хандах боломжтой. Хувийн гишүүд зөвхөн ангид хандах боломжтой. Хамгаалагдсан гишүүдэд анги болон холбогдох дэд ангиудад хандах боломжтой.
Интерфэйс гэж юу вэ?
Хийсвэрлэл нь Объект хандалтат програмчлалын тулгуур багана юм. Энэ нь хэрэгжилтийн дэлгэрэнгүй мэдээллийг нуух, функцийг хэрэглэгчдэд харуулах явдал юм. Хийсвэрлэлийг хийсвэр анги, интерфейс ашиглан хийдэг. Хийсвэр арга нь хэрэгжилттэй байдаггүй. Дор хаяж нэг хийсвэр аргыг агуулсан ангийг хийсвэр анги гэнэ.
Хийсвэр хоёр анги байгаа үед тэдгээр ангиудад заасан аргуудыг хэрэгжүүлнэ. Эдгээр аргуудыг хэрэгжүүлэхийн тулд шинэ анги ашигладаг. Хэрэв хоёр анги хоёулаа ижил аргатай байсан бол энэ нь тодорхойгүй байдлын асуудал үүсгэж болзошгүй юм. Тиймээс Java, C зэрэг програмчлалын хэл нь интерфейстэй.
Интерфэйс нь зөвхөн аргуудын мэдэгдлийг агуулдаг. Хэрэгжүүлэх арга байхгүй. Мөн интерфейсийг объект үүсгэхэд ашиглах боломжгүй. Эдгээрийг олон өв залгамжлалыг дэмжих, кодыг хамгаалахад ашигладаг.
Интерфейсийн синтакс дараах байдалтай байна. Интерфейс нь "interface" гэсэн түлхүүр үгийг ашиглана.
интерфэйсийн интерфэйсийн_нэр{
төрлийн арга1(параметрийн_жагсаалт);
төрлийн арга2(параметрийн_жагсаалт);
}
Дээр дурдсанчлан интерфэйсүүд зөвхөн мэдэгдэлтэй байна. Тодорхойлолт байхгүй. Тиймээс интерфэйсүүд объектуудыг үүсгэж чадахгүй. Энэ нь зөвхөн интерфэйс гэж юу болох талаар хийсвэр ойлголт өгдөг. Интерфейс дээр зарласан аргуудыг нэг буюу олон ангиар хэрэгжүүлж болно. Анги нь интерфэйсийг хэрэгжүүлэхийн тулд "хэрэгжүүлэх" гэсэн түлхүүр үгийг ашигладаг. Java ашиглан бичсэн доорх жишээг үзнэ үү.
Зураг 01: Интерфейс ашиглан программ
Дээрх програмын дагуу A болон B нь интерфейс юм. А интерфэйс нь sum() гэсэн аргын мэдэгдэлтэй. В интерфэйс нь аргын мэдэгдлийн дэд()тэй. C анги нь A ба B интерфэйсийг хоёуланг нь хэрэгжүүлж байна. Тиймээс C анги нь sum() болон дэд() аргуудыг хоёуланг нь тодорхойлдог. С төрлийн объектыг үүсгэсний дараа sum() болон sub(). аргыг хоёуланг нь дуудах боломжтой.
Интерфэйс дотор зарлагдсан аргууд нь үргэлж нийтэд нээлттэй байх ёстой, учир нь хэрэгжүүлэгч ангиуд нь тэдгээрийг тодорхойлдог. Интерфэйс нь өөр интерфэйсээс өвлөгдөж болно.
Анги болон интерфэйс хоёрын ижил төстэй зүйл юу вэ?
- Хоёулаа лавлагааны төрөл.
- Хоёулаа объект хандалтат програмчлалтай холбоотой.
Анги болон интерфейс хоёрын ялгаа юу вэ?
Анги ба интерфэйс |
|
Анги нь объект үүсгэх зураг төсөл болох лавлагааны төрөл юм. | Интерфэйс нь жишиг үүсгэх боломжгүй лавлагааны төрөл юм. |
Object Instantiation | |
Анги нь объектыг үүсгэхэд ашиглагддаг. | Арга нь ямар ч үйлдэл хийх боломжгүй тул интерфэйсийг үүсгэх боломжгүй. |
Барилгач | |
Анги нь хувьсагчдыг эхлүүлэхийн тулд үүсгэгчийг агуулна. | Интерфэйс нь үүсгэгч агуулаагүй, учир нь тэдгээр нь эхлүүлэхэд бараг хувьсагч биш юм. |
Түлхүүр үг | |
Анги нь "анги" гэсэн түлхүүр үгийг ашигладаг. | Интерфэйс нь "интерфэйс" гэсэн түлхүүр үгийг ашигладаг. |
Хандалтын тодорхойлогч | |
Ангийн гишүүд хувийн, нийтийн болон хамгаалагдсан байж болно. | Хэрэгжүүлэх ангиуд нь тэдгээрийг тодорхойлдог тул интерфэйсийн гишүүд үргэлж нийтэд нээлттэй байх ёстой. |
Хураангуй – Анги болон Интерфэйс
Ангиуд болон интерфэйсийг объект хандалтат програмчлалд өргөн ашигладаг. Анги болон интерфэйсийн хоорондох ялгаа нь анги нь объектыг үүсгэх зураг төсөл болох лавлагааны төрөл бөгөөд интерфейс нь объектыг үүсгэхэд ашиглах боломжгүй лавлагааны төрөл юм. Анги нь олон интерфейсийг хэрэгжүүлэх боломжтой. Гэхдээ энэ нь зөвхөн нэг дээд ангиудыг өргөтгөх боломжтой. Интерфейс нь олон интерфэйсийг өвлөн авах боломжтой боловч хэрэгжүүлэх боломжгүй. Аль аль нь чухал ач холбогдолтой. Программист программ хангамжийн дагуу тэдгээрийг ашиглаж болно.
PDF анги болон интерфэйсийг татаж авах
Та энэ нийтлэлийн PDF хувилбарыг татаж аваад офлайн зорилгоор ашиглах боломжтой. PDF хувилбарыг эндээс татаж авна уу Анги болон интерфейсийн ялгаа