ከገንቢዎች መካከል፣ ነገር-ተኮር ፕሮግራሚንግ ብዙ ተከታዮችን ስቧል። ታዋቂው የኮምፒዩተር ቋንቋ Python እንዲሁ በነገር ላይ ያተኮረ ምሳሌን ያከብራል።
በፓይዘን ውስጥ ያሉትን ነገሮች እና ክፍሎችን መግለፅን ይመለከታል፣ እሱም ለኦኦፒስ መርሆዎች መሰረት ነው። በዚህ “ነገር-ተኮር ፕሮግራሚንግ በ Python” ላይ ባለው ትምህርት የ Python ክፍሎችን እንዴት ማወጅ እንደሚችሉ ፣ ከነሱ እቃዎችን መፍጠር እና አራቱን የኦኦፒ ቴክኒኮችን እንዴት እንደሚጠቀሙ ይማራሉ ።
ስለዚህ, መጀመሪያ ነገር መጀመሪያ.
ነገር-ተኮር ፕሮግራሚንግ ምንድን ነው?
የነገር ተኮር ፕሮግራሚንግ (OOP) ዋና ትኩረት “ዕቃዎችን” መፍጠር ነው። እርስ በርስ የተያያዙ ተለዋዋጮች እና ተግባራት ስብስብ አንድ ነገር ይፈጥራል።
እነዚህ ተለዋዋጮች በተደጋጋሚ የእቃው ባህሪ ተብለው ይጠራሉ፣ ባህሪያቱም ተግባራቶቹ ተደጋግመው ይጠቀሳሉ። እነዚህ ነገሮች አፕሊኬሽኑን ይበልጥ ውጤታማ እና ሊረዳ የሚችል መዋቅር ያቀርባሉ። አውቶሞቢል የእቃው ምሳሌ ነው።
አውቶሞባይሉ እቃ ቢሆን ኖሮ ባህሪያቱ እንደ ቀለሙ፣ ሞዴሉ፣ ዋጋ፣ የምርት ስም፣ ወዘተ የመሳሰሉትን ያጠቃልላል። በተጨማሪም ያፋጥናል፣ ያዘገየዋል እና ማርሽ ይቀይራል።
ሌላ ምሳሌ፡- ውሻን እንደ ዕቃ ከወሰድን አንዳንድ ባህሪያቱ ቀለም፣ዘር፣ስም፣ክብደት፣ወዘተ ሊሆኑ ይችላሉ።እናም እየተንቀሳቀሰ፣ይጮኻል፣ይጫወትል፣ወዘተ።
የገሃዱ ዓለም ፅንሰ-ሀሳቦችን እንደ እቃዎች፣ መደበቅ፣ ውርስ እና የመሳሰሉትን በፕሮግራም ውስጥ ስላካተተ፣ በነገር ላይ ያተኮረ ፕሮግራሚንግ በደንብ ይታወቃል። ከእውነታው ዓለም ሁኔታዎች ጋር በጣም ተመሳሳይ ስለሆነ, ምስላዊነት ቀላል ይደረጋል.
ነገር-ተኮር የፕሮግራም አወጣጥ ጽንሰ-ሀሳቦች
ክፍሎች እና ነገሮች በ Python ውስጥ
ልክ እንደሌሎች ነገሮች ላይ ያተኮሩ ቋንቋዎች፣ ፓይዘን ዕቃዎችን ለማምረት ክፍሎችን ለመንደፍ ያስችልዎታል። ሕብረቁምፊዎች፣ ዝርዝሮች፣ መዝገበ ቃላት እና ሌሎች ነገሮችን ጨምሮ በፓይዘን ውስጥ በጣም ታዋቂዎቹ የውሂብ አይነቶች አብሮገነብ ክፍሎች ናቸው።
ክፍል አንድን ዓይነት ነገር የሚገልጹ የተገናኙ ዘዴዎች እና የአብነት ተለዋዋጮች ቡድን ነው። ክፍል የአንድ ነገር ሞዴል ወይም አብነት ሆኖ ሊታይ ይችላል። ክፍልን የሚሠሩት ተለዋዋጮች ባህርያት በመባል ይታወቃሉ።
አንድ ነገር የተወሰነ የባህሪ ስብስብ ያለው የአንድ ክፍል አባል ነው። በዚህ ምክንያት, ተመሳሳይ ክፍልን በመጠቀም ማንኛውም ቁጥር ያላቸው ነገሮች ሊፈጠሩ ይችላሉ.
የ Python ክፍሎች የሚገለጹት ክፍል የሚለውን ቃል በመጠቀም ነው፣ ከዚያም የክፍል ስም እና ኮሎን ይከተላል። የፓሮት ክፍል ምሳሌ፡-
እዚህ፣ የክፍል ቁልፍ ቃልን በመጠቀም ባዶውን ክፍል ፓሮ እናውጃለን። ከክፍል ውስጥ ምሳሌዎችን እንፈጥራለን. ምሳሌ ከተወሰነ ክፍል የተሰራ የተለየ ነገር ነው። 'pass' ለቅጽበት ልንተወው የምንችልበትን ኮድ እንደ መቆሚያ በተደጋጋሚ ያገለግላል። የ "pass" ቁልፍ ቃል በመጠቀም ስህተት ሳናነሳ የ Python ኮድን መፈጸም እንችላለን.
የአንድ ክፍል ቅጽበታዊ ውጤት አንድን ነገር (ምሳሌ) ያስከትላል። ክፍል ሲፈጠር የእቃው መግለጫ ብቻ ይገለጻል። በውጤቱም, ምንም ማከማቻ ወይም ራም አልተመደበም.
የፓሮ መደብ ዕቃ ምሳሌ፡-
Obj በዚህ ምሳሌ ውስጥ የፓሮ-ክፍል ነገር ነው።
ስለ በቀቀኖች የተወሰኑትን እናውቃለን እንበል። አሁን የፓሮ ክፍልን እና እቃዎቹን እንዴት መፍጠር እንደሚቻል እናሳያለን.
ልዩ ዘዴ (__init__)
init ተብሎ የሚጠራው ዘዴ እያንዳንዱ የፓሮ ነገር () ሊኖረው የሚገባውን ባህሪያት ይገልጻል. አዲስ የፓሮ ነገር ሲፈጠር __init__ የተሰኘው ተግባር የምንሰጣቸውን እሴቶች በእቃው ንብረቶች ውስጥ በመመደብ የነገሩን መነሻ ሁኔታ ይፈጥራል።
ስለዚህ፣ እያንዳንዱ አዲስ የክፍል ምሳሌ የተጀመረው __init__() በመጠቀም ነው። ምንም እንኳን __init__() ማንኛውንም የመለኪያዎች ብዛት መቀበል ቢችልም እራስ ሁልጊዜም የመጀመሪያው መለኪያ ነው።
የነቃ ክፍል ምሳሌ ማጣቀሻ በራስ ክርክር ውስጥ ተካትቷል። የአንድ ክፍል የአሁኑን ነገር አድራሻ የሚያገናኘው እና የእሱን (የነገሩን) ተለዋዋጮች ውሂብ መዳረሻ የሚሰጠን ራስን መመዘኛ ያሳያል።
ምሳሌ 1
ከላይ ባለው ኮድ ፓሮት የሚባል ክፍል አቋቁመናል። በመቀጠል, ንብረቶች ይገለፃሉ. የአንድ ነገር ባህሪያት ንብረቶቹ ናቸው. የክፍሉ __init__ ተግባር እነዚህ ባህሪያት የተገለጹበት ነው።
አንድ ነገር ሲፈጠር የመነሻ ዘዴው መጀመሪያ ላይ የሚጠራው ነው. ከዚያም የፓሮ ክፍል ምሳሌዎች ይፈጠራሉ. Blaze እና Wonda በዚህ ምሳሌ ለአዲሶቹ እቃዎቻችን ዋቢዎች (እሴቶች) ናቸው። __ክፍል .ዝርያዎች የክፍሉን ባህሪ እንድንደርስ ያስችሉናል።
እያንዳንዱ የክፍል ምሳሌ ተመሳሳይ ባህሪያት አሉት. የአብነት ባህሪያቱ blaze.name እና blaze.ageን በመጠቀም ሊደረስበት ይችላል። ምንም እንኳን ሁሉም የአንድ ክፍል ምሳሌዎች ልዩ የአብነት ባህሪያት አሏቸው።
ምሳሌ 2
ዘዴዎች
በአንድ ክፍል አካል ውስጥ የተገለጹ ተግባራት ዘዴዎች ተብለው ይጠራሉ. አንድ ዕቃ እንዴት እንደሚሠራ ለመጥቀስ ተቀጥረው ይሠራሉ።
ሁለት ዘዴዎች, ዘፈን () እና ዳንስ, ከላይ በተጠቀሰው መተግበሪያ () ውስጥ ተገልጸዋል. እንደ ነበልባል ባሉ ነገሮች ላይ ስለሚጠሩ እነዚህ እንደ ምሳሌ ዘዴዎች ይጠቀሳሉ.
የ OOPS ጽንሰ-ሀሳብ መሰረታዊ ነገሮች
በነገር ላይ ያተኮረ ፕሮግራሚንግ አራቱ ዋና ሀሳቦች፡-
- ውርስ
- Encapsulation
- ፖሊመሪዝም
- የአብስትራክት
ውርስ
ሰዎች ብዙውን ጊዜ አዲስ የተወለዱ ሕፃናት ከወላጆቻቸው ጋር የሚመሳሰሉ የፊት ባህሪያት እንዳላቸው ወይም ከወላጆቻቸው የወረሱ ልዩ ባህሪያት እንዳላቸው ይነግሩታል.
ከወላጆችህ ጋር አንዳንድ ባህሪያትን እንደምታካፍል ተመልክተህ ሊሆን ይችላል። የገሃዱ ዓለም ሁኔታ ከውርስ ጋር ተመሳሳይ ነው።
ሆኖም፣ በዚህ ሁኔታ፣ “የወላጅ መደቦች” ባህሪያት ወደ “የልጆች ክፍሎች” ተላልፈዋል። እነዚህ ገጽታዎች በዚህ አውድ ውስጥ እንደ "ንብረቶች" እና "ዘዴዎች" ይባላሉ.
አንድ ክፍል ውርስ በመባል የሚታወቀውን ዘዴ በመጠቀም ዘዴውን እና ባህሪያቱን ከሌላ ክፍል ማግኘት ይችላል። ውርስ የአንድ ልጅ ክፍል የወላጅ ክፍል ንብረቶችን የመቀበል ሂደት ነው።
ለምሳሌ:
የወላጅ ክፍል የሰው ልጅ የተወረሰው ከላይ በምሳሌው ላይ ባለው ልጅ ክፍል ነው። ወንድ ልጅ ከሰው ስለሚወርስ፣ የቦይ ክፍልን ምሳሌ ስንፈጥር ሁሉንም ዘዴዎቹን እና ባህሪያቱን ማግኘት እንችላለን።
በወንድ ክፍል ውስጥ፣ የት/ቤት ስም የሚባል ዘዴም ተገልጿል። የወላጅ ክፍል ነገር የት/ቤት ስምን ዘዴ ማግኘት አልቻለም። የትምህርት ቤት ስም ዘዴ ግን የልጆች ክፍል ነገር (ወንድ) በመፍጠር ሊጠራ ይችላል።
Encapsulation
በፕሮግራሙ ውስጥ ያለውን እያንዳንዱን ተለዋዋጭ ዓለም አቀፋዊ ተደራሽነት መስጠት ከክፍሎች ጋር ሲሰራ እና ሚስጥራዊ መረጃዎችን ሲይዝ የጥበብ እርምጃ አይደለም።
ፕሮግራሙን ከእነዚህ ተለዋዋጮች ውስጥ ለማንኛቸውም የተሟላ መዳረሻን ሳንሰጥ፣ ማጠቃለል አስፈላጊ የሆኑትን ተለዋዋጮች እንድናገኝ የሚያስችል ዘዴ ይሰጠናል።
ለዓላማው በግልፅ የተገለጹ ዘዴዎች መረጃን ከተለዋዋጮች ለማዘመን፣ ለማርትዕ ወይም ለመሰረዝ ጥቅም ላይ ሊውሉ ይችላሉ። ይህ የፕሮግራም አወጣጥ ዘዴ የተሻሻለ ደህንነት እና በመረጃ ግቤት ላይ የመቆጣጠር ጥቅሞች አሉት።
ከታች ባለው ማሳያ ላይ ተለዋዋጮች በምን ያህል ፍጥነት ሊገኙ እንደሚችሉ ይመልከቱ፡-
ፖሊመሪዝም
ስልክህን ለማሰስ እየተጠቀምክ ነው እንበል የ Instagram ምግቦች. አንዳንድ ሙዚቃ የማዳመጥ ፍላጎት ሲሰማዎት Spotifyን ገብተው የሚወዱትን ዘፈን መጫወት ጀመሩ።
ከተወሰነ ጊዜ በኋላ ጥሪ ስለደረሰህ መልስ ለመስጠት ከበስተጀርባ የምታደርገውን ማንኛውንም ነገር ለአፍታ አቆምክ። ጓደኛዎ ደውሎ የአንድ የተወሰነ ሰው ስልክ ቁጥር እንዲልክላቸው ጠይቋል።
ስለዚህ ስልክ ቁጥሩን በኤስኤምኤስ ላክከው እና ስራህን ቀጠልክ። የሆነ ነገር አንስተዋል? በአንድ መሣሪያ ብቻ—በሞባይል ስልክዎ—ምግብ ውስጥ ማሰስ፣ ሙዚቃ ማዳመጥ፣ የስልክ ጥሪ ማድረግ እና መልእክት ማድረግ ይችላሉ።
ስለዚህ, ፖሊሞርፊዝም ከዚህ ጋር ይመሳሰላል. ፖሊ ብዙ ማለት ነው, እና ሞርፍ የተለያዩ ቅርጾችን ያመለክታል. ስለዚህ, ፖሊሞርፊዝም በአጠቃላይ የተለያዩ ቅርጾች ያለውን ነገር ያመለክታል.
ወይም "አንድ ነገር" እንደ ሁኔታው የተለያዩ ባህሪያትን ማሳየት ይችላል. በOOPS ውስጥ፣ ፖሊሞርፊዝም ተመሳሳይ ስሞች ያላቸውን ነገር ግን የተለዩ ባህሪዎችን ይገልፃል። በአማራጭ, ተመሳሳይ የተግባር ስም ያለው የተለየ የተግባር ፊርማ (መለኪያዎች ወደ ተግባሩ ተላልፈዋል).
ለምሳሌ:
እዚህ፣ የየራሳቸውን የአብነት ዘዴ በመጠቀም የዜብራ እና የጥንቸል ዕቃዎችን ለመድገም ተለዋዋጭ እንስሳን መጠቀም እንችላለን። በውጤቱም፣ የሁለቱም የዜብራ እና የጥንቸል ባህሪ (ቀለም() እና ይበላል()) እዚህ በአንድ እንስሳ ተወክለዋል። ስለዚህ የፖሊሞርፊዝም ደንቦችን ያከብራል.
የአብስትራክት
ይህን ይዘት ለማንበብ ብዙ ጊዜ ላፕቶፕ፣ ስልክ ወይም ታብሌት ልትጠቀሙ ትችላላችሁ። በማንበብ ጊዜ፣ ማስታወሻ እየወሰዱ፣ ቁልፍ ምንባቦችን እየሰመሩ እና ምናልባትም አንዳንድ መረጃዎችን በግል ማህደር ውስጥ እያከማቻሉ ሊሆን ይችላል።
ይህንን ሲያነቡ ማየት የሚችሉት ለእርስዎ እየታየ ያለው ውሂብ ያለው "ስክሪን" ነው. እርስዎ በሚተይቡበት ጊዜ የቁልፍ ሰሌዳ ቁልፎችን ብቻ ይመለከታሉ፣ ስለዚህ ቁልፍን መግፋት እንዴት ቃሉ በስክሪኑ ላይ እንዲታይ እንደሚያደርገው ስለ ውስጣዊ ስውር ዘዴዎች መጨነቅ አያስፈልገዎትም።
በአማራጭ፣ በማያ ገጽዎ ላይ ቁልፍን መጫን እንዴት አዲስ ትርን እንደሚያስጀምር።
ስለዚህ, በዚህ ሁኔታ ውስጥ የምንመለከተው ማንኛውም ነገር ረቂቅ ነው. እኛ የምናየው የሚፈጥረውን ውጤት ብቻ ነው እንጂ የውስጣችን ውስብስብ ነገሮች (በእኛ የሚጠቅመን) አይደለም።
ከዚህ ጋር በሚመሳሰል መልኩ፣ ማጠቃለያ ማናቸውንም አተገባበር ወይም የውስጥ ዝርዝሮችን በሚደብቅበት ጊዜ ሁሉም ነገር ያላቸውን ተግባራት ብቻ ያሳያል።
የአብስትራክት ዋና አላማ ሰዎች ማየት የሚያስፈልጋቸውን ብቻ እንዲያዩ የጀርባ መረጃን እና ማንኛውንም የውጭ ዳታ አተገባበርን መደበቅ ነው። የኮዱን ውስብስብነት ለመቆጣጠር ይረዳል።
ለምሳሌ:
ከተሽከርካሪ ጋር የተያያዘ የአብስትራክት ክፍል እዚህ አለ። ምክንያቱም ከአብስትራክት ክፍል ኢቢሲ ስለሚወርስ፣ አብስትራክት ነው። የአብስትራክት ዘዴዎች ስላልተገለጹ ወይም ባዶ ሆነው ስለሚቆዩ፣ የክፍሉ ተሽከርካሪ ምንም ትርጉም የሌለው የዊልስ ኖ የሚባል ረቂቅ ዘዴ አለው።
ዘዴውን ተግባራዊ ለማድረግ ረቂቅ ክፍሎችን የሚወርሱትን ክፍሎች አስቀድመው ይጠብቃሉ።
የ OOPS ጽንሰ-ሀሳቦች ጥቅሞች
- በማሸግ ከፍተኛ ደህንነት እና የውሂብ ግላዊነት ይሳካል።
- የተመሳሳዩ ክፍል ብዙ ፖሊሞፈርፊክ ስሪቶች ሲኖሩት ተለዋዋጭነት።
- የኮድ ውስብስብነት ከፍተኛ ደረጃ በአብስትራክት ቀንሷል።
- አንድን ችግር ለማግኘት በመቶዎች የሚቆጠሩ የኮድ መስመሮችን ከማጣራት ይልቅ የፕሮግራም አወጣጥ ሞዱላሪቲ ማረም ቀላል ያደርገዋል።
- ኮድ ድጋሚ ጥቅም ላይ የዋለው በልጆች ክፍል የወላጅ ክፍል ንብረቶች ውርስ ምክንያት ነው።
- ውጤታማ ችግር መፍታት የሚቻለው ለእያንዳንዱ አነስተኛ ችግር አስፈላጊውን እርምጃ የሚወስዱ ክፍሎችን ስለምንፈጥር ነው። እነዚያን ክፍሎች እንደገና መጠቀም ስለምንችል የሚከተለው ችግር በበለጠ ፍጥነት ሊፈታ ይችላል።
መደምደሚያ
በማጠቃለያው፣ በአሁኑ ጊዜ በጣም ሞቃታማው የፕሮግራም አወጣጥ ምሳሌ በሆነው በፓይዘን ውስጥ ስለ OOPS ሀሳቦች ተምረናል።
ይህንን ካነበቡ በኋላ፣ የ OOPS ፓራዳይም ሙሉ በሙሉ የመማሪያ ክፍሎችን እና የነገሮችን ሀሳብ እንደሚመለከት ተረድተህ መሆን አለበት። እና የ OOPS ፅንሰ-ሀሳቦች እንደ ማቀፊያ፣ ፖሊሞርፊዝም፣ ውርስ እና ረቂቅነት።
መልስ ይስጡ