This article is currently in the process of being translated into Telugu (~99% done).
Fields
Class నిర్మాణపు అంశాలల్లో ఒకటైన అతి ముఖ్యమైనది field. ఇంతకు ముందు వివరించిన variable లాంటిది. కానీ method level కి బదులుగా class level లో define చేయబడింది. ఈ difference చాలా ముఖ్యమైనది, ఎందుకంటే ఎక్కడ ఎంతవరకు పరిమితమౌతుందనే scope భావనతో సంబంధం ఉంది, ఇది variable ని ఎక్కడి నుండి access చేయవచ్చో నిర్ణయిస్తుంది: Method లోపల define చేసే local variable ని ఆ method లో మాత్రమే access చేయవచ్చు, ఒక field అయితే class లోని అన్నీ methods నుండి మరియు ఇతర classes లోని methods నుండి కూడా access చేయవచ్చు.
మరోలా చెప్పాలంటే, variable మరియు field మధ్య difference దానిని declare చేసిన చోట చాలా చక్కగా ఉంటుంది. Class-level variable ని field గా సూచిస్తారు, అయితే సాధారణంగా method-level లోని variable ని variable సూచిస్తారు.
Fields ని తరచుగా class పైన declare చేస్తారు మరియు వాటి visibility ని తరచుగా private గా set చేస్తారు (visibility ని గురించి ఈ chapter లో తర్వాత చర్చిద్దాము). ఇది క్రింది విధంగా ఉంటుంది:
public class FieldsSample
{
private string name;
....
మనకు ఇప్పుడు "name" అని పిలువబడే class-level variable ఉంది. దానిని ఈ class లో అన్ని modules నుండి access చేయవచ్చు. దీనిని private గా mark చేసినందువల్ల class వెలుపల access చేయడం కుదరదు. మీరు ఎక్కడి నుండైనా access చేయాలనుకుంటే మీ fields ని public గా, లేదా derived classes నుండి access చేయాలంటే protected గా declare చేసే స్వేచ్చ ఉంది, అయితే class వెలుపల నుండి fields ని access చేయాలంటే properties ద్వారానే access చేయాలనే సూచన దృష్ట్యా private గానే mark చేయబడింది. దీనిని తరువాతి article లో చర్చిద్దాము.
మన పై example లో “name” అనే variable కి initial value (ప్రారంభ విలువ) కలిగి లేదు. అంటే, దానిని ఉపయోగించే ముందు మనం ఏదైనా value ని assign చేయాలి. మీ field కి ఏ value ఉండాలో ముందే తెలిస్తే, declare చేసేటప్పుడే సులువుగా ఆ value ని assign చేయవచ్చు.
public class FieldsSample
{
private string name = "John Doe";
....
ప్రత్యామ్నాయంగా, మీరు class యొక్క constructor లోనే field కి value ని assign చేయవచ్చు. ఇది declaration point వద్ద field కి assign చేసిన value ని overwrite (చెరిపేలా) చేస్తుంది మరియు dynamic value ని assign చేయుటకు అనుమతిస్తుంది.
మనం ఇంతకుముందు మాట్లాడుకున్నట్లుగా, ఒక class members ని "class.member" వంటి dot-notation తో access చేయవచ్చు. అయినప్పటికీ, మనం ఈ class లో member ని access చేస్తున్నప్పుడు, "this.member" లాంటి "this" keyword ఉపయోగిస్తాము. ఈ క్రింది complete example లో మనము రెండు fields ని declare చేసి method లోపాలే use చేశాము:
public class Fields1
{
private string name = "John Doe";
private int age = 42;
public void Describe()
{
string description = this.name + " is " + this.age + " years old...";
Console.WriteLine(description);
}
}
Describe() method లో (చింతించకండి, మీరు methods గురించి తర్వాత article లో తెలుసుకొంటారు) class లో declare చేసిన రెండు fields యొక్క values కి అనుగుణంగా “description” అనే local variable ని declare చేశాము. Variable ఎప్పుడూ variable గానే ఉండుదని, ఎప్పటికీ field కాదనటానికి “description” variable ని ఒక మంచి example గా చెప్పవచ్చు: ఇది తాత్కాలికంగా method కి అనుగుణంగా use చేసుకొంటుంది. Fields మాత్రం class యొక్క ఇతర methods సంబందించి ఉంటాయి.
Summary
Fields కొద్దిగా global variables లాగా పనిచేస్తాయి, ఎందుకంటే అవి data ని store చేయడానికి ఉపయోగించబడతాయి, తరువాత వాటిని class లోపల ఎక్కడి నుండైనా access చేయవచ్చు. వాటిని declare చేసిన class వెలుపల నుండి కూడా access చేయవచ్చు, కాని సాధారణంగా, ఈ ప్రయోజనం కోసం properties ని use చేస్తారు. మనం తరువాతి article లో properties గురించి మాట్లాడుదాము.