1. యాక్సెస్ మాడిఫైయర్లు
ప్రతి పద్ధతికి ముందు, ప్రోగ్రామర్లు యాక్సెస్ మాడిఫైయర్లు అని పిలవబడే వాటిని పేర్కొనవచ్చు. వీటిలో కింది కీలకపదాలు ఉన్నాయి: public
, protected
, private
.
ఈ యాక్సెస్ మాడిఫైయర్లు ఇతర తరగతుల యాక్సెస్ని పద్ధతికి పరిమితం చేయడానికి మిమ్మల్ని అనుమతిస్తాయి.
ఉదాహరణకు, మీరు private
మెథడ్ డిక్లరేషన్కు ముందు కీవర్డ్ని వ్రాస్తే, ఆ పద్ధతిని డిక్లేర్ చేయబడిన అదే తరగతి నుండి మాత్రమే పిలవవచ్చు. కీవర్డ్ public
ఏదైనా తరగతి యొక్క ఏదైనా పద్ధతి నుండి మార్క్ చేసిన పద్ధతికి ప్రాప్యతను అనుమతిస్తుంది.
మొత్తం 3 అటువంటి మాడిఫైయర్లు ఉన్నాయి, కానీ ఒక పద్ధతికి 4 రకాల యాక్సెస్లు ఉన్నాయి. ఎందుకంటే యాక్సెస్ మాడిఫైయర్ లేకపోవడం కూడా ఏదో అర్థం అవుతుంది.
దీని నుండి యాక్సెస్... | ||||
---|---|---|---|---|
సవరించేవారు | ఏదైనా తరగతి | పిల్లల తరగతి | దాని ప్యాకేజీ | దాని తరగతి |
public |
అవును | అవును | అవును | అవును |
protected |
నం | అవును | అవును | అవును |
మాడిఫైయర్ లేదు | నం | నం | అవును | అవును |
private |
నం | నం | నం | అవును |
1. public
మాడిఫైయర్
మాడిఫైయర్తో గుర్తు పెట్టబడిన పద్ధతి (లేదా వేరియబుల్ లేదా క్లాస్) ప్రోగ్రామ్లో ఎక్కడి నుండైనాpublic
యాక్సెస్ చేయవచ్చు . ఇది బహిరంగత యొక్క అత్యధిక డిగ్రీ - ఎటువంటి పరిమితులు లేవు.
2. private
మాడిఫైయర్
మాడిఫైయర్తో గుర్తించబడిన పద్ధతి (లేదా వేరియబుల్ లేదా క్లాస్) డిక్లేర్ చేయబడిన అదే తరగతి నుండిprivate
మాత్రమే యాక్సెస్ చేయబడుతుంది . అన్ని ఇతర తరగతులకు, గుర్తించబడిన పద్ధతి (లేదా వేరియబుల్) కనిపించదు. అది లేనట్లే. ఇది అత్యున్నత స్థాయి పరిమితి — దాని స్వంత తరగతి మాత్రమే.
3. మాడిఫైయర్ లేదు (డిఫాల్ట్ మాడిఫైయర్)
ఒక పద్ధతి (లేదా వేరియబుల్) ఏదైనా మాడిఫైయర్తో గుర్తించబడకపోతే, అది 'డిఫాల్ట్ మాడిఫైయర్'ని కలిగి ఉన్నట్లు పరిగణించబడుతుంది. ఆ మాడిఫైయర్తో వేరియబుల్స్ లేదా మెథడ్స్ (అంటే ఏదీ లేనివి) అవి ప్రకటించబడిన ప్యాకేజీలోని అన్ని తరగతులకు కనిపిస్తాయి . మరియు వారికి మాత్రమే. ఈ మాడిఫైయర్ని కొన్నిసార్లు అని కూడా పిలుస్తారు package-private
, వేరియబుల్స్ మరియు మెథడ్లకు యాక్సెస్ వారి క్లాస్ ఉన్న మొత్తం ప్యాకేజీకి తెరిచి ఉంటుందని సూచిస్తుంది.
4. protected
మాడిఫైయర్
ఒక పద్ధతిని మాడిఫైయర్తో గుర్తు పెట్టినట్లయితే protected
, అది అదే తరగతి, అదే ప్యాకేజీ మరియు వారసులు (పద్ధతి ప్రకటించబడిన తరగతిని వారసత్వంగా పొందిన తరగతులు) నుండి యాక్సెస్ చేయవచ్చు. మేము ఈ అంశాన్ని జావా కోర్ అన్వేషణలో మరింత వివరంగా విశ్లేషిస్తాము.
public
మీరు జావా సింటాక్స్ అన్వేషణ ముగింపుకు చేరుకునే వరకు మీ అన్ని పద్ధతుల్లో (అలాగే మీ అన్ని తరగతులు మరియు క్లాస్ వేరియబుల్స్) మాడిఫైయర్ను ఉపయోగించవచ్చు . మేము OOP చురుకుగా నేర్చుకోవడం ప్రారంభించినప్పుడు మీకు ఇతర మాడిఫైయర్లు అవసరం.
యాక్సెస్ మాడిఫైయర్లు ఎందుకు అవసరం?
ఒకే సమయంలో పదుల మరియు వందల మంది ప్రోగ్రామర్లు వ్రాసిన పెద్ద ప్రాజెక్ట్లకు అవి అవసరం అవుతాయి.
కొన్నిసార్లు ప్రోగ్రామర్ చాలా పెద్ద పద్ధతిని భాగాలుగా విభజించి, కోడ్లోని కొంత భాగాన్ని సహాయక పద్ధతుల్లోకి తరలించాలని కోరుకునే సందర్భాలు ఉన్నాయి. కానీ అదే సమయంలో, అతను లేదా ఆమె ఇతర ప్రోగ్రామర్లు ఈ సహాయక పద్ధతులను పిలవడం ఇష్టం లేదు, ఎందుకంటే సంబంధిత కోడ్ సరిగ్గా పని చేయకపోవచ్చు.
కాబట్టి వారు ఈ యాక్సెస్ మాడిఫైయర్లతో ముందుకు వచ్చారు. మీరు ప్రైవేట్ అనే పదంతో సహాయక పద్ధతిని గుర్తు పెట్టినట్లయితే , మీ తరగతి కాకుండా ఏ ఇతర కోడ్ కూడా మీ సహాయక పద్ధతిని చూడదు.
2. static
కీవర్డ్
కీవర్డ్ static
ఒక పద్ధతిని స్థిరంగా చేస్తుంది. దాని అర్థం ఏమిటో తరువాత చూద్దాం. ప్రస్తుతానికి, స్టాటిక్ పద్ధతుల గురించి కొన్ని వాస్తవాలను గుర్తుంచుకోండి.
వాస్తవం 1. స్థిరమైన పద్ధతి ఏదైనా వస్తువుకు జోడించబడదు , బదులుగా అది ప్రకటించబడిన తరగతికి చెందినది. స్టాటిక్ పద్ధతిని కాల్ చేయడానికి, మీరు వ్రాయాలి:
ClassName.MethodName()
స్టాటిక్ పద్ధతుల ఉదాహరణలు:
తరగతి పేరు | స్టాటిక్ పద్ధతి పేరు | |
---|---|---|
Thread.sleep() |
Thread |
sleep() |
Math.abs() |
Math |
abs() |
Arrays.sort() |
Arrays |
sort() |
మీరు స్టాటిక్ మెథడ్ని దాని క్లాస్లోనే కాల్ చేస్తే స్టాటిక్ మెథడ్ పేరు ముందు ఉన్న క్లాస్ పేరు విస్మరించబడుతుంది. అందుకే మీరు పిలిచే ప్రతి స్టాటిక్ పద్ధతుల పేర్ల ముందు వ్రాయవలసిన అవసరం లేదు.Solution
వాస్తవం 2. ఒక స్టాటిక్ పద్ధతి దాని స్వంత తరగతి యొక్క నాన్-స్టాటిక్ పద్ధతులను యాక్సెస్ చేయదు . స్టాటిక్ మెథడ్ స్టాటిక్ పద్ధతులను మాత్రమే యాక్సెస్ చేయగలదు. ఫలితంగా, మేము main
మెథడ్ స్టాటిక్ నుండి కాల్ చేయాలనుకుంటున్న అన్ని పద్ధతులను ప్రకటిస్తాము.
ఎందుకు? మీరు OOP నేర్చుకోవడం ప్రారంభించినప్పుడు మరియు స్టాటిక్ పద్ధతులు ఎలా పని చేస్తాయో అర్థం చేసుకున్నప్పుడు ఈ ప్రశ్నకు మీరే సమాధానం ఇవ్వగలరు.
3. throws
కీవర్డ్
మెథడ్ డిక్లరేషన్లో మీరు బహుశా చూసిన మరొక కీవర్డ్ ఉంది — కీవర్డ్ throws
. యాక్సెస్ మాడిఫైయర్లు మరియు static
కీవర్డ్ కాకుండా, ఈ కీవర్డ్ పద్ధతి పారామితుల తర్వాత ఉంచబడుతుంది:
public static Type name(parameters) throws Exception
{
method body
}
మేము మినహాయింపులను అధ్యయనం చేసినప్పుడు దాని ఖచ్చితమైన అర్థాన్ని కొంచెం తర్వాత పరిశీలిస్తాము.
కానీ దానిని ఉపరితలంగా స్పర్శించడానికి, త్రోస్ కీవర్డ్తో గుర్తు పెట్టబడిన పద్ధతి లోపాలను (మినహాయింపులు) త్రో చేయగలదని మేము చెప్పగలం, అంటే తరగతి యొక్క సందర్భాలు Exception
(మరియు దానిని వారసత్వంగా పొందే తరగతులు). ఒక క్లాస్లో అనేక రకాల ఎర్రర్లు సంభవించినట్లయితే, మీరు వాటిని కామాలతో వేరు చేసి జాబితా చేయాలి.
4. main
పద్ధతి
అన్ని మాడిఫైయర్లను కలిగి ఉన్న పద్ధతిని ప్రకటించే పంక్తి, ఈ పద్ధతిని ఇతర తరగతులు మరియు పద్ధతుల నుండి ఎలా పిలుస్తారో ప్రభావితం చేస్తుంది. ఇది పద్దతి తిరిగి వచ్చే ఫలిత రకాన్ని ప్రభావితం చేస్తుంది మరియు అది అమలులో ఉన్నప్పుడు ఏ లోపాలు సాధ్యమో సూచిస్తాయి.
అటువంటి పంక్తిని మెథడ్ డిక్లరేషన్ అంటారు మరియు కింది సాధారణ ఆకృతిని కలిగి ఉంటుంది:
access modifier static Type name(parameters) throws exceptions
ఎక్కడ , , , లేదా ఏమీ లేకుండా access modifiers
భర్తీ చేయబడింది ;public
protected
private
పద్ధతి స్థిరంగా ఉంటే, static
కీవర్డ్ కనిపిస్తుంది (ఇది నాన్-స్టాటిక్ పద్ధతులకు లేదు)
Type
రిటర్న్ విలువ రకం ( void
ఫలితం లేకపోతే)
పద్ధతి యొక్క ప్రకటనలో అన్ని కీలక పదాల అర్థం ఏమిటో ఇప్పుడు మీరు అర్థం చేసుకోవచ్చు main
:
public static void main(String[] args) throws Exception
కీవర్డ్ ద్వారా సూచించిన విధంగా ఏ తరగతి నుండి అయినా పద్ధతికి ప్రాప్యత main()
సాధ్యమవుతుంది public
.
పద్ధతి స్థిరంగా ఉంటుంది, కాబట్టి దీనిని స్పష్టంగా ఇలా పిలవవచ్చు Solution.main()
.
పద్ధతి main
ఎటువంటి ఫలితాన్ని ఇవ్వదు. తిరిగి వచ్చే రకం void
(రకం లేదు).
పద్ధతి main
వాదనలు(!) తీసుకుంటుంది: స్ట్రింగ్ల శ్రేణి. మరియు పారామీటర్ పేరు args
మన మనస్సులకు 'వాదన'లను సూచిస్తుంది. ప్రోగ్రామ్ ప్రారంభమైనప్పుడు, మీరు దానిని ఆర్గ్యుమెంట్లను పాస్ చేయవచ్చు — స్ట్రింగ్ల శ్రేణి. args
అవి పద్ధతిలో శ్రేణిలో ఉంటాయి main()
.
(లేదా దాని వారసులు) వంటి నిర్వహించని లోపాలు Exception
పద్ధతిలో సంభవించవచ్చు main()
.
GO TO FULL VERSION