1. அறிமுகம்

இன்றைய பாடத்தை இணைப்பதற்கு அர்ப்பணிக்க விரும்புகிறோம் . பொதுவாக அது என்னவென்று உங்களுக்கு ஏற்கனவே தெரியும்.

அடைப்பு

அடைப்பின் நன்மைகள் என்ன? அவற்றில் சில உள்ளன, ஆனால் என் கருத்துப்படி, முக்கியமானவை என்று நான்கை தனிமைப்படுத்த முடியும்:


2. செல்லுபடியாகும் உள் நிலை

நிரல்களில், ஒரு பொருள் பல வகுப்புகளுடன் தொடர்பு கொள்ளும்போது அடிக்கடி சூழ்நிலைகள் எழுகின்றன. பொருளுடனான இந்த இடைவினைகள் பொருளின் உள்ளே உள்ள தரவை சிதைத்து, எதிர்பார்த்தபடி தொடர்ந்து செயல்பட இயலாது.

இதன் விளைவாக, பொருள் அதன் உள் தரவுகளில் ஏதேனும் மாற்றங்களைக் கண்காணிக்க வேண்டும் அல்லது இன்னும் சிறப்பாக மாற்றங்களைச் செய்ய வேண்டும்.

சில மாறிகள் மற்ற வகுப்புகளால் மாற்றப்படுவதை நாங்கள் விரும்பவில்லை என்றால், அதை தனிப்பட்டதாக அறிவிக்கிறோம். நாம் அதைச் செய்தவுடன், அதன் சொந்த வகுப்பின் முறைகள் மட்டுமே அதை அணுக முடியும். public getterமாறிகள் படிக்க மட்டுமே இருக்க வேண்டும் எனில், தொடர்புடைய மாறிகளுக்கு a ஐ சேர்க்க வேண்டும் .

எடுத்துக்காட்டாக, எங்கள் சேகரிப்பில் உள்ள உறுப்புகளின் எண்ணிக்கையை அனைவரும் அறிந்து கொள்ள வேண்டும் என்று நாங்கள் விரும்புகிறோம், ஆனால் எங்கள் அனுமதியின்றி அவர்கள் சேகரிப்பை மாற்றுவதை நாங்கள் விரும்பவில்லை. பின்னர் நாம் ஒரு private int countமாறி மற்றும் ஒரு public getCount()முறையை அறிவிக்கிறோம்.

என்காப்சுலேஷனின் முறையான பயன்பாடு, எந்த வகுப்பினரும் எங்கள் வகுப்பின் உள் தரவை நேரடியாக அணுக முடியாது என்பதை உறுதிசெய்கிறது , இது எங்கள் கட்டுப்பாட்டிற்கு அப்பாற்பட்ட எந்த மாற்றங்களையும் தடுக்கிறது. மாறிகள் மாற்றப்படும் அதே வகுப்பின் முறைகளை அழைப்பதன் மூலம் மட்டுமே இந்த மாற்றங்கள் சாத்தியமாகும்.

மற்ற புரோகிராமர்கள் உங்களுக்கு (உங்கள் வகுப்பிற்கு) பாதுகாப்பான வழியில் அல்ல, அவர்களுக்கு மிகவும் வசதியான வழியில் உங்கள் வகுப்புகளை எப்போதும் பயன்படுத்துவார்கள் என்று கருதுவது சிறந்தது. இந்த நடத்தை பிழைகள் மற்றும் அவற்றைத் தடுக்கும் முயற்சிகளின் மூலமாகும்.


3. முறை வாதங்களை சரிபார்த்தல்

சில நேரங்களில் நாம் நமது முறைகளுக்கு அனுப்பப்பட்ட வாதங்களை சரிபார்க்க வேண்டும். எடுத்துக்காட்டாக, எங்களிடம் ஒரு நபரைக் குறிக்கும் மற்றும் பிறந்த தேதியை அமைக்க உங்களை அனுமதிக்கும் வகுப்பு உள்ளது. நிரலின் தர்க்கம் மற்றும் எங்கள் வகுப்பின் தர்க்கத்துடன் அர்த்தமுள்ளதா என்பதை உறுதிப்படுத்த அனைத்து உள்ளீட்டுத் தரவையும் சரிபார்க்க வேண்டும். எடுத்துக்காட்டாக, 13வது மாதம் அல்லது பிப்ரவரி 30ல் பிறந்த தேதியை அனுமதிக்காதது மற்றும் பல.

ஏன் ஒருவர் தனது பிறந்த தேதிக்கு பிப்ரவரி 30 ஐக் குறிப்பிட வேண்டும்? முதலில், தரவை உள்ளிடும்போது இது பயனர் பிழையாக இருக்கலாம். இரண்டாவதாக, ஒரு நிரல் கடிகார வேலைகளைப் போல இயங்கத் தொடங்கும் முன் அதில் ஏராளமான பிழைகள் இருக்கலாம். உதாரணமாக, பின்வரும் சூழ்நிலை சாத்தியமாகும்.

ஒரு புரோகிராமர், நாளை மறுநாள் பிறந்த நாளைக் குறிக்கும் ஒரு திட்டத்தை எழுதுகிறார். உதாரணத்திற்கு, இன்று மார்ச் 3 என்று வைத்துக் கொள்வோம். இந்த புரோகிராம் மாதத்தின் தற்போதைய நாளுடன் எண் 2 ஐக் கூட்டுகிறது மற்றும் மார்ச் 5 அன்று பிறந்த அனைவரையும் தேடுகிறது. எல்லாம் சரியாக இருப்பதாகத் தெரிகிறது.

ஆனால் மார்ச் 30 வரும்போது, ​​நிரல் யாரையும் கண்டுபிடிக்காது, ஏனென்றால் காலெண்டரில் மார்ச் 32 இல்லை. முறைகளுக்கு அனுப்பப்பட்ட தரவைச் சரிபார்த்தால், நிரலில் பிழைகள் மிகக் குறைவு.

அதன் குறியீட்டை நாங்கள் ஆய்வு செய்து பகுப்பாய்வு செய்தது நினைவிருக்கிறதா ArrayList? மற்றும் முறைகள் பூஜ்ஜியத்தை விட அதிகமாக உள்ளதா அல்லது சமமாக getஉள்ளதா மற்றும் வரிசையின் நீளத்தை விட குறைவாக உள்ளதாsetindex என்பதை நாங்கள் பார்த்தோம் . மேலும் என்னவென்றால், வரிசையின் எல்லைக்கு வெளியே குறியீட்டு விழுந்தால் இந்த முறைகள் விதிவிலக்கு அளிக்கும். உள்ளீடு சரிபார்ப்புக்கு இது ஒரு சிறந்த எடுத்துக்காட்டு.


4. குறியீட்டை மாற்றும்போது பிழைகளைக் குறைத்தல்

நாங்கள் ஒரு பெரிய திட்டத்தில் ஈடுபட்டிருந்தபோது ஒரு சூப்பர் பயனுள்ள வகுப்பை எழுதினோம் என்று வைத்துக்கொள்வோம். எல்லோரும் இதை மிகவும் விரும்பினர், மற்ற புரோகிராமர்கள் தங்கள் குறியீட்டில் நூற்றுக்கணக்கான இடங்களில் இதைப் பயன்படுத்தத் தொடங்கினர்.

வகுப்பு மிகவும் பயனுள்ளதாக இருந்தது, அதற்கு சில மேம்பாடுகளை வழங்க முடிவு செய்தீர்கள். ஆனால் நீங்கள் வகுப்பிலிருந்து ஏதேனும் முறைகளை அகற்றினால், டஜன் கணக்கான நபர்களின் குறியீடு தொகுப்பதை நிறுத்திவிடும். அவர்கள் எல்லாவற்றையும் மீண்டும் எழுத வேண்டும். மேலும் நீங்கள் எவ்வளவு மாற்றங்களைச் செய்கிறீர்களோ, அவ்வளவு பிழைகளை உருவாக்குவீர்கள். நீங்கள் பல கூட்டங்களை உடைப்பீர்கள், நீங்கள் வெறுக்கப்படுவீர்கள்.

ஆனால் தனிப்பட்டதாக அறிவிக்கப்பட்ட முறைகளை நாம் மாற்றும்போது, ​​இந்த முறைகளை அழைக்கக்கூடிய வேறு எந்த வகுப்பும் எங்கும் இல்லை என்பதை நாம் அறிவோம். நாம் அவற்றை மீண்டும் எழுதலாம், அளவுருக்களின் எண்ணிக்கை மற்றும் அவற்றின் வகைகளை மாற்றலாம், மேலும் எந்த சார்பு வெளிப்புற குறியீடும் தொடர்ந்து செயல்படும். சரி, குறைந்தபட்சம் அது தொகுக்கும்.


5. நமது பொருள் வெளிப்புற பொருட்களுடன் எவ்வாறு தொடர்பு கொள்கிறது என்பதை நாங்கள் தீர்மானிக்கிறோம்

நமது பொருளைக் கொண்டு செய்யக்கூடிய சில செயல்களை நாம் கட்டுப்படுத்தலாம். எடுத்துக்காட்டாக, ஒரு பொருளை ஒருமுறை மட்டுமே நிறுவ வேண்டும் என்று வைத்துக்கொள்வோம். இது திட்டத்தில் பல இடங்களில் உருவாக்கப்படலாம். மற்றும் நாம் இதை இணைக்க முடியும் நன்றி.

இணைத்தல் 2

என்காப்சுலேஷன் கூடுதல் கட்டுப்பாடுகளைச் சேர்க்க உதவுகிறது , இது கூடுதல் நன்மைகளாக மாற்றப்படலாம் . எடுத்துக்காட்டாக, வர்க்கம் ஒரு மாறாதString பொருளாக செயல்படுத்தப்படுகிறது . வர்க்கத்தின் ஒரு பொருள் அது உருவாக்கப்பட்ட தருணத்திலிருந்து இறக்கும் தருணம் வரை மாறாதது. வகுப்பின் அனைத்து முறைகளும் ( , , ...), அவை அழைக்கப்படும் பொருளில் எந்த மாற்றமும் செய்யாமல் ஒரு புதிய சரத்தை வழங்குகின்றன.StringStringremovesubstring

இணைத்தல் என்பது மிகவும் சுவாரஸ்யமான விஷயம்.