"హలో, అమిగో! ఈ రోజు, బిలాబో వేరియబుల్స్ ప్రారంభించబడిన క్రమం గురించి మాట్లాడుతుంది ."

మీరు ఏదో కోడ్‌ని చూస్తున్నారని ఊహించుకోండి. వేరియబుల్స్ ఏ విలువలను పొందుతాయి?

కోడ్
class Cat
{
 public int a = 5;
 public int b = a + 1;
 public int c = a * b;
}
కోడ్
class Cat
{
 public int a = getSum();
 public int b = getSum() - a;
 public int c = getSum() - a - b;

 public int getSum()
 {
  return a + b + c;
 }
}

"ఇది నిజంగా అనుమతించబడుతుందా?"

"అయితే. తరగతి సభ్యుల పద్ధతులు మరియు ఫీల్డ్‌లు ప్రకటించబడే క్రమం ముఖ్యం కాదు. "

ఒక తరగతి పై నుండి క్రిందికి లోడ్ చేయబడింది, కాబట్టి ఫీల్డ్ ఇప్పటికే లోడ్ చేయబడిన ఇతర ఫీల్డ్‌లను మాత్రమే యాక్సెస్ చేయడం ముఖ్యం. ఉదాహరణలో, b a యాక్సెస్ చేయగలదు , కానీ దానికి c గురించి ఏమీ తెలియదు .

"మరి ఏమి జరుగుతుంది?"

"వేరియబుల్స్ సృష్టించబడినప్పుడు, అవి డిఫాల్ట్ విలువలను పొందుతాయి."

కోడ్ నిజంగా ఏమి జరుగుతుంది
class Cat
{
 public int a = 5;
 public int b = a + 1;
 public int c = a * b;
}
class Cat
{
 public int a = 0;
 public int b = 0;
 public int c = 0;

 public Cat()
 {
  super();

  a = 5;
  b = a + 1; //5+1 = 6
  c = a * b; //5*6 = 30
 }
}
class Cat
{
 public int a = getSum();
 public int b = getSum() - a;
 public int c = getSum() - a - b;

 public getSum()
 {
  return a + b + c;
 }
}
class Cat
{
 public int a = 0;
 public int b = 0;
 public int c = 0;

 public Cat()
 {
  super();

  a = getSum(); //(a+b+c)=0
  b = getSum() - a; //(a+b+c)-a=b=0
  c = getSum() - a - b; //(a+b+c)-a-b=c=0
 }

 public getSum()
 {
  return a + b + c;
 }
}

"పవిత్ర మోలీ! ఇది చాలా సులభం. ధన్యవాదాలు, బిలాబో. మీరు నిజమైన స్నేహితుడు!"

"హుర్రే! బిలాబోకి ఒక స్నేహితుడు ఉన్నాడు!"