ቁልፍ ልዩነት - ገንቢ vs አጥፊ
አብዛኞቹ የፕሮግራም አወጣጥ ቋንቋዎች Object Oriented Programming(OOP) ይደግፋሉ። ነገሮችን በመጠቀም ሶፍትዌርን ወይም ፕሮግራምን ለመቅረጽ የሚረዳው ፓራዲም ነው። OOP ምርታማነትን እና ጥገናን ያሻሽላል። በ OOP ሁሉም ነገር እንደ ዕቃ ይቆጠራል። ዕቃዎቹ የተፈጠሩት ወይም የሚሠሩት ክፍሎችን በመጠቀም ነው። ኮንስትራክተር እና አጥፊ በነገር ተኮር ፕሮግራሚንግ ውስጥ የተለመዱ ቃላት ናቸው። ይህ ጽሑፍ በገንቢ እና አጥፊ መካከል ያለውን ልዩነት ያብራራል. ገንቢ እና አጥፊ በአንድ ክፍል ውስጥ ልዩ የአባላት ተግባር ናቸው። ገንቢ እና አጥፊ ከክፍሉ ጋር አንድ አይነት ስም አላቸው፣ ነገር ግን አጥፊው የጠርዝ (~) ምልክት አለው።በገንቢ እና አጥፊ መካከል ያለው ቁልፍ ልዩነት ኮንስትራክተሩ ለአንድ ነገር ማህደረ ትውስታን ለመመደብ ጥቅም ላይ ሲውል አጥፊው የአንድን ነገር ማህደረ ትውስታን ለማስተካከል ጥቅም ላይ ይውላል።
ግንባታ ምንድነው?
አንድ ግንበኛ በክፍል ውስጥ ማህደረ ትውስታን ለአንድ ነገር ለመመደብ ልዩ የአባል ተግባር ነው። ለውሂብ አባላት እሴቶችን ለማቅረብ ጥቅም ላይ ሊውል ይችላል. ገንቢው የሚጠራው ዕቃው ሲፈጠር ነው። ከክፍል ስም ጋር ተመሳሳይ ስም አለው. ገንቢ ምንም አይነት ዋጋ አይመልስም። ስለዚህ, የመመለሻ አይነት አልያዘም. ገንቢ መለኪያዎችንም መቀበል ይችላል። ግቤቶች ያለው ግንበኛ ተገራራቢ ገንቢ በመባል ይታወቃል።
የገንቢ ምሳሌ የሚከተለው ነው።
የሕዝብ ክፍል አራት ማዕዘን{
int ርዝመት፣ ስፋት፤
የወል ሬክታንግል(int p, int q){
ርዝመት=p;
ስፋት=q;
}
የወል int ስሌት አካባቢ(){
ተመለስ (ርዝመትስፋት)፤
}
}
ከላይ ባለው ኮድ መሰረት ገንቢው ከክፍል ስም ጋር ተመሳሳይ ስም አለው። ገንቢው ሬክታንግል ሁለት መለኪያዎችን ይቀበላል። እነሱም p እና q. የኢንቲጀር ዋጋ p ርዝመቱ ይመደባል. የኢንቲጀር እሴት q ወደ ስፋቱ ተመድቧል። በcalcu alteArea ውስጥ የርዝመቱ እና ስፋቱ ብዜት የአራት ማዕዘኑን ቦታ ለማግኘት ይሰላል። በዋናው ፕሮግራም ውስጥ ፕሮግራመሪው አራት ማዕዘን ቅርጽ ያለው ነገር መፍጠር እና ክርክሮችን ማለፍ ይችላል። ለምሳሌ. ሬክታንግል rect1=አዲስ ሬክታንግል(2፣ 3)። ከዚያ፣ ፓራሜትራይዝድ ገንቢ ተጠርቷል እና እሴቶቹን ርዝመቱ እና ስፋቱ ላይ ይመድባል።
ምስል 01፡ ገንቢ እና አጥፊ
ምንም መመዘኛ የሌለው ግንበኛ ሲኖር ነባሪ ገንቢ ይባላል።ፕሮግራም አውጪው ግንበኛን ካልገለፀ ነባሪው ገንቢ ይጠራል። እንደ ተማሪ ክፍል ካለ እና ፕሮግራም አውጪው የተማሪ አይነት ነገር ሲፈጥር ነባሪ ገንቢ ይባላል። ለምሳሌ. Student s1=አዲስ ተማሪ(); በክፍል ውስጥ የተለያዩ መለኪያዎች እና የተለያዩ የውሂብ ዓይነቶች ያላቸው በርካታ ገንቢዎች ሊኖሩ ይችላሉ። በዚህ መሠረት ተገቢው ገንቢ ሊጠራ ይችላል. ስለዚህ ግንበኞች ከመጠን በላይ መጫን ይችላሉ።
አጥፊ ምንድነው?
አጥፊ በክፍል ውስጥ ልዩ የአባላት ተግባር ነው። በገንቢው ለተፈጠረው ነገር ማህደረ ትውስታን ለመከፋፈል ያገለግላል. አጥፊው የሚጠራው ዕቃው ሲጠፋ ነው። ከአሁን በኋላ የማይፈለግ የጽዳት ማከማቻን ያከናውናል. ልክ እንደ ገንቢው, አጥፊው ከክፍሉ ጋር ተመሳሳይ ስም አለው. እንዲሁም የሰድር (~) ምልክት ይዟል።
አጥፊ ምንም አይነት ዋጋ አይመልስም። እንደ ግንበኛ ሳይሆን አጥፊው ምንም አይነት መመዘኛዎችን አይቀበልም። ስለዚህ, አጥፊው ከመጠን በላይ መጫንን አይደግፍም.አጥፊን ማወጅ እንደ ጥሩ የፕሮግራም አወጣጥ ልምምድ ይቆጠራል ምክንያቱም የማህደረ ትውስታ ቦታን ስለሚለቅ እና ቦታው አንዳንድ ነገሮችን ለማከማቸት ጥቅም ላይ ሊውል ይችላል. የአጥፊው አገባብ ከ~className() { } ጋር ተመሳሳይ ነው። ለምሳሌ. ~አራት ማዕዘን() {}; በአንድ ክፍል ውስጥ አንድ አጥፊ ብቻ ሊኖር ይችላል።
በግንባታ እና አጥፊው መካከል ያለው ተመሳሳይነት ምንድን ነው?
- ሁለቱም ግንበኛ እና አጥፊዎች ከእቃዎች ጋር የተቆራኙ ናቸው።
- ሁለቱም ገንቢ እና አጥፊ ምንም አይነት ዋጋ አይመልሱም።
- ሁለቱም ግንበኛ እና አጥፊዎች በራስ-ሰር ይባላሉ።
በገንቢ እና አጥፊ መካከል ያለው ልዩነት ምንድን ነው?
ግንባታ vs አጥፊ |
|
አንድ ግንበኛ በክፍሉ ውስጥ ያለ ልዩ አባል ሲሆን ለአንድ ነገር ማህደረ ትውስታን ለመመደብ ያገለግላል። | አጥፊ የአንድን ነገር ማህደረ ትውስታን ለመለየት የሚያገለግል የክፍል ልዩ አባል ነው። |
የመጥራት ዘዴ | |
ግንባታ የሚጠራው እቃው ሲፈጠር ነው። | አጥፊው የሚጠራው ዕቃው ሲጠፋ ወይም ሲሰረዝ ነው። |
አጠቃቀም | |
ግንበኛ ለዕቃዎቹ ሚሞሪ ለመመደብ ይጠቅማል። | አጥፊ ለዕቃዎቹ ማህደረ ትውስታን ለማስተካከል ይጠቅማል። |
መለኪያዎች | |
አንድ ግንበኛ መለኪያዎችን ይቀበላል። | አጥፊ መለኪያዎችን አይቀበልም። |
የግንባታ እና አጥፊዎች ቁጥር | |
የተለያየ የመለኪያ ብዛት እና የተለያዩ አይነት መለኪያዎች ያላቸው በርካታ ግንበኞች ሊኖሩ ይችላሉ። | በክፍል ውስጥ ነጠላ አጥፊ ሊኖር ይችላል። |
የአፈፃፀም ፍጥነት | |
አንድ ግንበኛ ከክፍል ስሙ ጋር ተመሳሳይ ስም አለው። | አጥፊው ከክፍል ስም ጋር ተመሳሳይ ስም ያለው የቲልድ (~) ምልክት ያለው ነው። |
ከመጠን በላይ በመጫን ላይ | |
ግንበኛ ከመጠን በላይ ሊጫን ይችላል። | አጥፊ ከመጠን በላይ መጫን አይቻልም። |
ማጠቃለያ - ገንቢ vs አጥፊ
OOP በሶፍትዌር ልማት ውስጥ የተለመደ ምሳሌ ነው።ውስብስብ ፕሮጀክትን ቀላል ያደርገዋል። ገንቢ እና አጥፊ በኦኦፒ ውስጥ ጥቅም ላይ ይውላሉ። ገንቢ እና አጥፊ ከክፍል ጋር አንድ አይነት ስም አላቸው, ነገር ግን አጥፊው ~ ምልክት አለው.በኮንስትራክተር እና አጥፊ መካከል ያለው ልዩነት ኮንስትራክተሩ ሜሞሪ ለአንድ ዕቃ ለመመደብ ጥቅም ላይ የሚውል ሲሆን አጥፊው ደግሞ የአንድን ነገር ማህደረ ትውስታን ለማስተካከል ጥቅም ላይ ይውላል።
የኮንስትራክተር vs አጥፊ PDF አውርድ
የዚህን ጽሁፍ ፒዲኤፍ ስሪት አውርደው በጥቅስ ማስታወሻ መሰረት ከመስመር ውጭ አላማዎች መጠቀም ይችላሉ። እባክዎ የፒዲኤፍ ቅጂውን እዚህ ያውርዱ፡ በገንቢ እና አጥፊ መካከል ያለው ልዩነት