கோட்ஜிம் பல்கலைக்கழகப் பாடத்தின் ஒரு பகுதியாக வழிகாட்டியுடன் விரிவுரைத் துணுக்கு. முழு பாடத்திற்கும் பதிவு செய்யவும்.


"வாழ்த்துக்கள், அமிகோ! உங்களுக்கு ஏற்கனவே முறைகள் நன்றாகப் பிடிக்கும் என்று நான் கேள்விப்படுகிறேன்?"

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

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

"சுவாரஸ்யமாக இருக்கிறது."

"உண்மையில், இது எல்லாம் எளிது. ஒவ்வொரு முறைக்கும் முன், புரோகிராமர்கள் அணுகல் மாற்றிகள் என்று அழைக்கப்படுவதைக் குறிப்பிடலாம். இதில் பின்வரும் முக்கிய வார்த்தைகள் அடங்கும்: public, protected, private.

"இந்த அணுகல் மாற்றிகள் ஒரு முறைக்கு மற்ற வகுப்புகளின் அணுகலைக் கட்டுப்படுத்த அனுமதிக்கின்றன.

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

மொத்தம் 3 அத்தகைய மாற்றிகள் உள்ளன, ஆனால் ஒரு முறைக்கு 4 வகையான அணுகல் உள்ளது. ஏனென்றால், அணுகல் மாற்றியமைப்பாளர் இல்லாதது ஏதோ ஒன்றைக் குறிக்கிறது. இங்கே ஒரு முழுமையான அட்டவணை:

இதிலிருந்து அணுகல்...
மாற்றியமைப்பவர்கள் எந்த வகுப்பு குழந்தை வகுப்பு அதன் தொகுப்பு அதன் வகுப்பு
public ஆம் ஆம் ஆம் ஆம்
protected இல்லை ஆம் ஆம் ஆம்
மாற்றி இல்லை இல்லை இல்லை ஆம் ஆம்
private இல்லை இல்லை இல்லை ஆம்

"அணுகல் மாற்றிகளின் முழுமையான விளக்கம் இங்கே உள்ளது:

1. publicமாற்றி

மாற்றியமைப்புடன் குறிக்கப்பட்ட ஒரு முறை (அல்லது மாறி, அல்லது வகுப்பு) நிரலில் எங்கிருந்தும்public அணுகலாம் . இது திறந்தநிலையின் மிக உயர்ந்த அளவு - எந்த கட்டுப்பாடுகளும் இல்லை.

2. privateமாற்றி

மாற்றியமைப்புடன் குறிக்கப்பட்ட ஒரு முறை (அல்லது மாறி, அல்லது வகுப்பு) அறிவிக்கப்பட்ட அதே வகுப்பிலிருந்துprivate மட்டுமே அணுக முடியும் . மற்ற அனைத்து வகுப்புகளுக்கும், குறிக்கப்பட்ட முறை (அல்லது மாறி) கண்ணுக்கு தெரியாதது. இல்லாதது போல் இருக்கிறது. இது மிக உயர்ந்த அளவிலான கட்டுப்பாடு - அதன் சொந்த வர்க்கம் மட்டுமே.

3. மாற்றி இல்லை (இயல்புநிலை மாற்றி)

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

4. protectedமாற்றி

ஒரு முறை மாற்றியமைப்புடன் குறிக்கப்பட்டால் protected, அதை அதே வகுப்பு, அதே தொகுப்பு மற்றும் சந்ததியினரிடமிருந்து அணுகலாம் (முறை அறிவிக்கப்பட்ட வகுப்பைப் பெற்ற வகுப்புகள்). ஜாவா கோர் தேடலில் இந்த தலைப்பை இன்னும் விரிவாக ஆராய்வோம்."

"சுவாரஸ்யமாக இருக்கிறது, ஆனால் இந்த மாற்றியமைப்பாளர்களை உடனடியாக எல்லா இடங்களிலும் வைக்க முடியுமா என்று எனக்குத் தெரியவில்லை.

"நீங்கள் படிப்படியாக அங்கு வருவீர்கள். முன்கூட்டியே கவலைப்படத் தேவையில்லை. ஜாவா தொடரியல் தேடலின் முடிவை நீங்கள் அடையும் வரை, publicஉங்கள் எல்லா முறைகளிலும் (அத்துடன் வகுப்புகள் மற்றும் நிகழ்வு மாறிகள்) மாற்றியைப் பயன்படுத்தலாம். உங்களுக்குத் தேவைப்படும் ஓஓபியை நாம் தீவிரமாகக் கற்கத் தொடங்கும் போது மற்ற மாற்றிகள்."

"அணுகல் மாற்றிகள் ஏன் தேவைப்படுகின்றன என்பதை இன்னும் விரிவாக விளக்க முடியுமா?"

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

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

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

"எனக்கு புரிந்திருக்கும் என்று நினைக்கிறேன்."

staticமுக்கிய வார்த்தை

"மற்றொரு சுவாரஸ்யமான முக்கிய வார்த்தை உள்ளது. அது static. ஆச்சரியப்படத்தக்க வகையில், இது முறைகளை நிலையானதாக ஆக்குகிறது."

"அதற்கு என்ன பொருள்?"

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

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

ClassName.MethodName()

நிலையான முறைகளின் எடுத்துக்காட்டுகள்:

வகுப்பின் பெயர் நிலையான முறையின் பெயர்
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

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

உண்மை 2. ஒரு நிலையான முறை அதன் சொந்த வகுப்பின் நிலையான அல்லாத முறைகளை அணுக முடியாது. ஒரு நிலையான முறை நிலையான முறைகளை மட்டுமே அணுக முடியும். இதன் விளைவாக, நாங்கள் அழைக்க விரும்பும் அனைத்து முறைகளையும் mainநிலையான முறையிலிருந்து அறிவிக்கிறோம்."

"அது ஏன்?"

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

throwsமுக்கிய வார்த்தை

"ஒரு முறை அறிவிப்பில் நீங்கள் பார்த்த மற்றொரு முக்கிய சொல் உள்ளது - முக்கிய throwsவார்த்தை. அணுகல் மாற்றிகள் மற்றும் முக்கிய வார்த்தைகளைப் போலன்றி , இந்த முக்கிய சொல் முறை அளவுருக்களுக்குப் பிறகுstatic வைக்கப்படுகிறது :

public static Type name(parameters) throws Exception
{
  method body
}

"அதன் அர்த்தம் என்ன?"

"விதிவிலக்குகளைப் படிக்கும்போது (நிலை 15 இல்) அதன் உண்மையான நோக்கத்தை நீங்கள் பின்னர் அறிந்து கொள்வீர்கள் என்பதை மீண்டும் ஒருமுறை நான் உங்களுக்குச் சொல்ல வேண்டும்.

ஆனால் மேலோட்டமாக அதைத் தொடுவதற்கு, throwsமுக்கிய வார்த்தையால் குறிக்கப்பட்ட ஒரு முறை பிழைகளை (விதிவிலக்குகள்) வீசக்கூடும் என்று நாம் கூறலாம், அதாவது வகுப்பின் நிகழ்வுகள் Exception(மற்றும் அதை மரபுரிமையாகப் பெறும் வகுப்புகள்). ஒரு வகுப்பில் பல்வேறு வகையான பிழைகள் ஏற்பட்டால், அவை ஒவ்வொன்றையும் காற்புள்ளிகளால் பிரிக்கப்பட்ட பட்டியலிட வேண்டும்."

"மர்மமாகவும் புரிந்துகொள்ள முடியாததாகவும் தெரிகிறது! நிலை 14 க்கு நான் காத்திருக்க வேண்டும்."

முக்கிய முறை

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

"அத்தகைய வரி முறை அறிவிப்பு என்று அழைக்கப்படுகிறது மற்றும் பின்வரும் பொதுவான வடிவத்தைக் கொண்டுள்ளது:

access modifier static Type name(parameters) throws exceptions
ஒரு முறை அறிவிப்பின் பொதுவான வடிவம்

, , அல்லது access modifiersஎதுவும் இல்லைpublicprotectedprivate

முறை நிலையானதாக இருந்தால், staticமுக்கிய வார்த்தை தோன்றும் (நிலையற்ற முறைகளுக்கு இது இல்லை)

Typeதிரும்பும் மதிப்பின் வகை ( voidமுடிவு இல்லை என்றால்)

"இந்த வார்த்தைகள் அனைத்தும் முறையின் அறிவிப்பில் எதைக் குறிக்கின்றன என்பதைப் பற்றி இப்போது நீங்கள் நன்றாகப் புரிந்துகொள்கிறீர்கள் main:

public static void main(String[] args) throws Exception
mainமுறையை அறிவிக்கிறது

main()"சரி, முக்கிய வார்த்தையால் குறிப்பிடப்பட்டுள்ளபடி, எந்த வகுப்பிலிருந்தும் முறைக்கான அணுகல் சாத்தியம் என்பதை இப்போது நான் உணர்கிறேன் public. முறை நிலையானது, எனவே இதை வெளிப்படையாக அழைக்கலாம் Solution.main()."

"முறை என்ன முடிவு main()திரும்பும்?"

"எதுவும் இல்லை! முடிவு வகை void. இது ஒரு வெற்று வகை, ஒரு ஒதுக்கிடத்தைப் போன்றது."

" main()அதன் அடைப்புக்குறிக்குள் என்ன இருக்கிறது?"

"ஹ்ம்ம்... முறை வாதங்களை (!) எடுக்கும் என்று மாறிவிடும் main. அவை சரங்களின் வரிசையாக அனுப்பப்படுகின்றன."

"அது சரி. மற்றும் அளவுரு பெயர் நம் மனதில் 'வாதங்களை' பரிந்துரைக்கிறது. நிரல் தொடங்கும் போது, ​​நீங்கள் அதை வாதங்களை அனுப்பலாம் - சரங்களின் வரிசை. அவை முறையின் வரிசையில் argsஇருக்கும் ."argsmain()

"அடடா! முதல் முறை பார்த்தபோது இதைப் பற்றி நான் ஆச்சரியப்பட்டேன், ஆனால் நான் அதைப் பற்றி யோசிக்காமல் பழகி, அளவுருப் பட்டியலை எழுத ஆரம்பித்தேன்."

"நாங்கள் அனைவரும் அங்கு இருந்தோம். இறுதியாக, Exception(அல்லது அதன் வழித்தோன்றல்கள்) போன்ற கையாளப்படாத பிழைகள் இந்த முறையில் ஏற்படலாம் . அறிவிப்பின் பகுதிக்கு main()நன்றி இது எங்களுக்குத் தெரியும் ."throws Exception

"நன்றி, ரிஷி. எனக்கு எல்லாம் புரியவில்லை, ஆனால் இது சுவாரஸ்யமானது."

"நீங்கள் வரவேற்கப்படுகிறீர்கள். படிப்படியாக இந்த நுட்பமான புள்ளிகள் அனைத்தையும் நீங்கள் புரிந்துகொள்வீர்கள், நான் உறுதியாக நம்புகிறேன்."