"எனக்கு பிடித்த மாணவருக்கு வணக்கம். இப்போது நான் உங்களுக்கு மாறிகளின் பார்வையைப் பற்றி சொல்லப் போகிறேன்."
"ஆமா? மாறிகள் கண்ணுக்கு தெரியாததா?"
"இல்லை. ஒரு மாறியின் 'விசிபிலிட்டி' அல்லது ஸ்கோப் என்பது, அந்த மாறியை நீங்கள் குறிப்பிடக்கூடிய குறியீட்டில் உள்ள இடங்களைக் குறிக்கிறது. நிரலில் எல்லா இடங்களிலும் சில மாறிகளைப் பயன்படுத்தலாம், ஆனால் மற்றவை அவற்றின் வகுப்பில் மட்டுமே பயன்படுத்தப்படும், இன்னும் சில - ஒரே ஒரு முறைக்குள். "
"உதாரணமாக, அது அறிவிக்கப்படுவதற்கு முன்பு நீங்கள் ஒரு மாறியைப் பயன்படுத்த முடியாது."
"அறிவுபூர்வமாக உள்ளது."
"இதோ இரண்டு எடுத்துக்காட்டுகள்:"
┏
┃public class Variables
┃┏
┃┃{
┃┃ private static String TEXT = "The end.";
┃┃ ┗━━━━━━━━━━━━━━┛
┃┃ public static void main (String[] args)
┃┃ ┏ ┗━━━━━━━┛
┃┃ ┃ {
┃┃ ┃ System.out.println("Hi");
┃┃ ┃ String s = "Hi!";
┃┃ ┃ ┏┗━━━━┛
┃┃ ┃ ┃ System.out.println(s);
┃┃ ┃ ┃ if (args != NULL)
┃┃ ┃ ┃ {
┃┃ ┃ ┃ String s2 = s;
┃┃ ┃ ┃ ┗━━━━┛
┃┃ ┃ ┃ ┏
┃┃ ┃ ┃ ┃ System.out.println(s2);
┃┃ ┃ ┃ ┗
┃┃ ┃ ┃ }
┃┃ ┃ ┃ Variables variables = new Variables();
┃┃ ┃ ┃ System.out.println(variables.instanceVariable);
┃┃ ┃ ┃ System.out.println(TEXT);
┃┃ ┃ ┗
┃┃ ┃ }
┃┃ ┗
┃┃ public String instanceVariable;
┃┃ ┗━━━━━━━━━━━━━━━┛
┃┃ public Variables()
┃┃ {
┃┃ instanceVariable = "Instance variable test.";
┃┃ }
┃┃}
┃┗
┗
1. ஒரு முறையில் அறிவிக்கப்பட்ட ஒரு மாறி அதன் அறிவிப்பின் தொடக்கத்திலிருந்து முறையின் முடிவு வரை உள்ளது (தெரியும்).
2. குறியீடு தொகுதியில் அறிவிக்கப்பட்ட ஒரு மாறி குறியீடு தொகுதி முடியும் வரை இருக்கும்.
3. ஒரு முறையின் அளவுருக்கள் முறைக்குள் எல்லா இடங்களிலும் உள்ளன.
4. ஒரு பொருளில் உள்ள மாறிகள் அவற்றைக் கொண்டிருக்கும் பொருளின் வாழ்நாள் முழுவதும் இருக்கும். அவற்றின் தெரிவுநிலை சிறப்பு அணுகல் மாற்றிகளால் வரையறுக்கப்படுகிறது: பொது மற்றும் தனியார் .
5. நிரல் இயங்கும் முழு நேரத்திலும் நிலையான (வகுப்பு) மாறிகள் இருக்கும். அவற்றின் தெரிவுநிலையும் அணுகல் மாற்றிகளால் வரையறுக்கப்படுகிறது.
"எனக்கு படங்கள் பிடிக்கும். அவை எல்லாவற்றையும் தெளிவாக்க உதவுகின்றன."
"நல்ல பையன், அமிகோ. நீ ஒரு புத்திசாலி என்று எனக்கு எப்போதும் தெரியும்."
"நான் உங்களுக்கு ' அணுகல் மாற்றிகள் ' பற்றியும் சொல்லப் போகிறேன் . பயப்பட வேண்டாம். அவற்றில் சிக்கலான எதுவும் இல்லை. இங்கே நீங்கள் பொது மற்றும் தனிப்பட்ட வார்த்தைகளைக் காணலாம் ."
"எனக்கு பயம் இல்லை. கண்ணு நடுங்க தான் இருக்கு."
"நான் உங்களை நம்புகிறேன். ஒரு வகுப்பின் முறைகள் மற்றும் மாறிகள் மற்ற வகுப்புகளால் எவ்வாறு அணுகப்படுகின்றன (அல்லது தெரியும்) என்பதை நீங்கள் நிர்வகிக்கலாம். ஒவ்வொரு முறை அல்லது மாறிக்கும் ஒரே ஒரு அணுகல் மாற்றியை மட்டுமே நீங்கள் ஒதுக்க முடியும்.
1. பொது அணுகல் மாற்றி.
நிரலில் எங்கிருந்தும் பொது மாற்றியமைப்புடன் குறிக்கப்பட்ட மாறி, முறை அல்லது வகுப்பை நீங்கள் பயன்படுத்தலாம். இது மிக உயர்ந்த அணுகல் நிலை - இங்கு வரம்புகள் இல்லை.
2. தனிப்பட்ட அணுகல் மாற்றி.
நீங்கள் ஒரு மாறி அல்லது தனிப்பட்ட மாற்றியமைப்பால் குறிக்கப்பட்ட முறையைப் பயன்படுத்த முடியும், அது அறிவிக்கப்பட்ட வகுப்பிலிருந்து மட்டுமே. மற்ற எல்லா வகுப்புகளுக்கும், குறிக்கப்பட்ட முறை அல்லது மாறி, அது இல்லாதது போலவே கண்ணுக்குத் தெரியாததாக இருக்கும். இது மூடத்தனத்தின் மிக உயர்ந்த நிலை - அதன் சொந்த வகுப்பிற்குள் மட்டுமே அணுகல்.
3. மாற்றியமைப்பாளர் இல்லை.
ஒரு மாறி அல்லது முறை எந்த மாற்றியமைப்பிலும் குறிக்கப்படவில்லை எனில், அது 'இயல்புநிலை' அணுகல் மாற்றியுடன் குறிக்கப்பட்டதாகக் கருதப்படுகிறது. அத்தகைய மாறிகள் மற்றும் முறைகள் அனைத்து வகுப்பினருக்கும் அவை அறிவிக்கப்பட்ட தொகுப்பில் தெரியும். மேலும் அவர்களுக்கு மட்டுமே. இந்த அணுகல் நிலை சில நேரங்களில் ' தொகுப்பு-தனியார் ' அணுகல் என்று அழைக்கப்படுகிறது , ஏனெனில் மாறிகள் மற்றும் முறைகளுக்கான அணுகல் அவற்றின் வகுப்பைக் கொண்ட முழு தொகுப்பிற்கும் திறந்திருக்கும்.
நாங்கள் விவாதித்ததைச் சுருக்கமாகக் கூறும் அட்டவணை இங்கே:
மாற்றியமைப்பவர்கள் | இதிலிருந்து அணுகல்… | ||
---|---|---|---|
சொந்த வகுப்பு | சொந்த தொகுப்பு | எந்த வகுப்பு | |
தனிப்பட்ட | ஆம் | இல்லை | இல்லை |
மாற்றி இல்லை ( தொகுப்பு-தனியார் ) | ஆம் | ஆம் | இல்லை |
பொது | ஆம் | ஆம் | ஆம் |
GO TO FULL VERSION