1. நிலையான மாறிகள்

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

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

ஒரு நிலையான மாறியானது வகுப்பின் நிலையான பொருளுடன் பிணைக்கப்பட்டுள்ளது மற்றும் அதன் ஒரு நிகழ்வு எப்போதும் இருக்கும்.

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

static Type name = value;

ஒரு நிலையான மாறிக்கு ஆரம்ப மதிப்பு ஒதுக்கப்படாவிட்டால், அது இயல்புநிலை மதிப்புடன் துவக்கப்படும்:

வகை இயல்புநிலை மதிப்பு
byte
0
short
0
int
0
long
0
float
0.0
double
0.0
char
'\u0000'
(அதே விஷயம்
0
)
boolean
false
Object
மற்றும் எந்த வகுப்புகளும்
null

எடுத்துக்காட்டுகள்:

குறியீடு குறிப்பு
public static int WIDTH = 100;
public static String message = "Hello";
private static Scanner console;
private static int count = 0;
private static boolean flag;

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

ClassName.variable

உதாரணமாக:

மாறி வர்க்கம் ஒரு மாறியை அதன் வகுப்பிற்கு வெளியே அணுகுதல்
public static int WIDTH = 100;
Solution
Solution.WIDTH
public static String message = "Hello";
Main
Main.message
private static Scanner console;
JavaGame
மாறி உள்ளது private. வகுப்பிற்கு வெளியே தெரியவில்லை.
private static int count = 0;
Counter
மாறி உள்ளது private. வகுப்பிற்கு வெளியே தெரியவில்லை.
private static boolean flag;
Arithmetic
மாறி உள்ளது private. வகுப்பிற்கு வெளியே தெரியவில்லை.


2. நிலையான மற்றும் நிலையான அல்லாத மாறிகள் இடையே வேறுபாடு

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

சாதாரண மாறிகளுக்கும் நிலையான மாறிகளுக்கும் என்ன வித்தியாசம்?

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

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

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

உதாரணமாக:

பொருள் குறிப்பைப் பயன்படுத்தி ஒரு வகுப்பின் புலத்தை அணுகுதல்
public class DataInfo
{
   public int value = 100;
}

public class Solution
{
   public static void main(String[] args)
   {
      DataInfo info = new DataInfo();
      System.out.println(info.value);
   }
}

நீங்கள் எங்கிருந்தும் நிலையான மாறிகளை அணுகலாம் (தெரிவுத் தன்மை மாற்றியமைப்பாளர்களைக் கணக்கிட்ட பிறகு): சாதாரண முறைகள், அதே வகுப்பின் நிலையான முறைகள், பிற வகுப்புகளின் முறைகள் போன்றவை.

உதாரணமாக:

பொருள் குறிப்பைப் பயன்படுத்தாமல் ஒரு வகுப்பின் நிலையான புலத்தை அணுகுதல்
public class DataInfo
{
   public static int value = 100;
}

public class Solution
{
   public static void main(String[] args)
   {
      System.out.println(DataInfo.value);
   }
}

நினைவகம் எவ்வாறு ஒழுங்கமைக்கப்படுகிறது:

எங்களிடம் 4 புலங்களைக் கொண்ட ஒரு வகுப்பு உள்ளது என்று வைத்துக்கொள்வோம் Person: இரண்டு நிலையானது மற்றும் இரண்டு இல்லை.

public class Person
{
   public static int count = 0;
   public static int sum = 0;
   public int age = 0;
   public String name;
}

வகுப்பை ஏற்றிய உடனேயே

ஜாவா இயந்திரம் வகுப்பை ஏற்றி முடித்ததும் Person, நினைவகம் இப்படி இருக்கும்:

முதல் பொருளை உருவாக்கிய பிறகு

நாம் ஒரு பொருளை உருவாக்கினால் Person, படம் இதுவாகும்:

நிலையான மற்றும் நிலையான அல்லாத மாறிகளுக்கு இடையிலான வேறுபாடு 2

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

நமக்கு அதிகமான பொருள்கள் தேவை

இன்னும் இரண்டு பொருட்களை உருவாக்குவோம் Person. இப்போது நினைவகம் இப்படி இருக்கும்:

நிலையான மற்றும் நிலையான அல்லாத மாறிகளுக்கு இடையிலான வேறுபாடு 3

ஒவ்வொரு பொருளுக்கும் அதன் சொந்த வயது மற்றும் பெயர் மாறிகள் உள்ளன என்பதை நினைவில் கொள்க.



static3. மாற்றியை நீக்குதல் மற்றும் சேர்த்தல்

நிலையானது முதல் சாதாரணமானது

நாம் ஒரு நிலையான மாறியை எடுத்து அதன் மாற்றியை அகற்றி அதை சாதாரணமாக மாற்றினால் என்ன ஆகும் static? உதாரணமாக, static int sumமாறி.

மாற்றியமைக்கப்பட்ட குறியீடு இப்படி இருக்கும்:

public class Person
{
   public static int count = 0;
   public int sum = 0;
   public int age = 0;
   public String name;
}

இப்போது நினைவகம் இதுபோல் தெரிகிறது:

நிலையான மற்றும் நிலையான அல்லாத மாறிகளுக்கு இடையிலான வேறுபாடு

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

சாதாரணத்திலிருந்து நிலையானது வரை

நாம் இதற்கு நேர்மாறாக செய்யலாம்: staticஒரு வகுப்பின் சாதாரண மாறிகளில் மாற்றியைச் சேர்க்கவும். அவை எல்லா சாதாரண பொருட்களிலிருந்தும் மறைந்து நிலையான பொருளில் தோன்றும். மற்றும் மாறிகளை நிலையானதாக மாற்ற முடிவு செய்கிறோம் என்று வைத்துக்கொள்வோம் . agenameபின்னர் குறியீடு இப்படி இருக்கும்:

public class Person
{
   public static int count = 0;
   public int sum = 0;
   public static int age = 0;
   public static String name;
}

இப்போது நினைவகம் இப்படி இருக்கும்:

நிலையான மாற்றியை நீக்குதல் மற்றும் சேர்த்தல்