1. ప్యాకేజీలు

సాధారణ జావా ప్రోగ్రామ్‌లలో అపారమైన తరగతులు ఉంటాయి. ఎన్ని? వేలు, పదివేలు. మరియు ప్రోగ్రామ్ ఇతర ప్రోగ్రామర్లు వ్రాసిన తరగతులను కలిగి ఉన్న వివిధ లైబ్రరీలను ఉపయోగిస్తుంది అనే వాస్తవాన్ని కూడా మీరు పరిగణనలోకి తీసుకుంటే, తరగతుల సంఖ్యను సులభంగా మిలియన్లలో కొలవవచ్చు!

ఈ మిలియన్ల, లేదా వేల సంఖ్యలో తరగతులకు ప్రత్యేకమైన పేర్లతో రావడం అసాధ్యం.

A123అయితే, మరియు వంటి పేర్లను మనం ఊహించుకోవచ్చు B345, కానీ మనం మంచి తరగతి పేరును ఎంచుకోవడం గురించి మాట్లాడుతున్నట్లయితే, క్లాస్‌ని అర్థం చేసుకోవడం సులభతరం చేసేది ( Stringఉదాహరణకు స్ట్రింగ్స్ వంటిది), అప్పుడు వెయ్యి ప్రత్యేక పేర్లను కూడా రూపొందించడం చాలా ఎక్కువ. పని యొక్క.

అందుకే జావాలో ప్యాకేజీ కీవర్డ్‌ని ఉపయోగించి తరగతులను ప్యాకేజీలుగా సమూహపరచడం ఆచారం.

జావా తరగతులు మరియు వాటి ప్యాకేజీలు కంప్యూటర్‌లోని ఫైల్‌లు మరియు ఫోల్డర్‌ల మాదిరిగానే ఉంటాయి.

ఉదాహరణకు, మీరు మీ కంప్యూటర్‌లో 10 పత్రాలను నిల్వ చేయవలసి వస్తే, మీరు వాటిని ఒక ఫోల్డర్‌లో ఉంచవచ్చు. అయితే మీ వద్ద వేలకొద్దీ డాక్యుమెంట్లు ఉంటే (ఉదాహరణకు, అన్ని కంపెనీ డాక్యుమెంట్ల రిపోజిటరీ)?

వేలకొద్దీ డాక్యుమెంట్‌లను నిల్వ చేయడంతో, మంచి వివరణాత్మక పేర్లతో బహుళ స్థాయి ఫోల్డర్‌లను సృష్టించడం ఒక పరిష్కారం. ఆపై చివరి స్థాయిలో ఉన్న ఫోల్డర్‌లో, నిర్దిష్ట ఫోల్డర్‌కు సంబంధించిన పత్రాలను నిల్వ చేయండి. పత్రాల కోసం మంచి వివరణాత్మక పేర్లు కూడా బాధించవు.

వాస్తవానికి, మేము జావాలోని తరగతుల కోసం ఇవన్నీ చేస్తాము.

తరగతులను కలిగి ఉన్న ఫైల్‌లు వేర్వేరు డైరెక్టరీలలో (ఫోల్డర్‌లు) నిల్వ చేయబడతాయి మరియు అన్ని సబ్‌ఫోల్డర్‌లతో కూడిన తరగతి ఫోల్డర్ యొక్క పూర్తి పేరు ప్యాకేజీ పేరు. ఉదాహరణ:

ఫైల్‌కి మార్గం ప్యాకేజీ పేరు తరగతి పేరు
\com\codegym\tasks\Solution.java
com.codegym.tasks
Solution
\com\io\FileInputStream.java
com.io
FileInputStream
\java\util\ArrayList.java
java.util
ArrayList

ఫోల్డర్ పేర్ల వలె కాకుండా, ప్యాకేజీ పేర్లు చుక్కను డీలిమిటర్‌గా ఉపయోగిస్తాయి. మరో మాటలో చెప్పాలంటే, ఫోల్డర్ \com\codegym\tasks\ప్యాకేజీకి అనుగుణంగా ఉంటుంది com.codegym.tasks.


2. srcఫోల్డర్

జావాలో, ప్రోగ్రామ్ కోసం అన్ని తరగతులను ఒకే ఫోల్డర్‌లో (మరియు సబ్‌ఫోల్డర్‌లు) నిల్వ చేయడం ఆచారం. ఈ ఫోల్డర్‌ని సాధారణంగా అంటారు src(మూలానికి సంక్షిప్తంగా ) .

ఈ ఫోల్డర్‌ని ప్రాజెక్ట్ రూట్ (లేదా సోర్స్ రూట్ ) అని పిలుస్తారు మరియు అన్ని ప్యాకేజీ మార్గాలు దీనికి సంబంధించినవి. ఉదాహరణలు:

ఫోల్డర్లు ప్యాకేజీ పేరు
c:\projects\data\my\src\com\codegym\tasks\
com.codegym.tasks
d:\files\git\data\project\src\com\codegym\tasks\
com.codegym.tasks

myఈ పరిస్థితిలో, ప్రోగ్రామర్లు "మనకు ఫోల్డర్‌లో ఉన్న ప్రాజెక్ట్ అనే పేరు ఉంది " లేదా "మనకు ఫోల్డర్‌లో ఉన్న c:\projects\dataప్రాజెక్ట్ అనే పేరు ఉంది " వంటిది చెబుతారు.projectd:\files\git\data

తరగతులను ఎల్లప్పుడూ ప్యాకేజీలలో ఉంచడం ఉత్తమం మరియు నేరుగా రూట్ ఫోల్డర్‌లో ( src. మీకు కొన్ని తరగతులు మాత్రమే ఉంటే, ఇది సమస్య కాదు. కానీ చాలా తరగతులు ఉన్నప్పుడు, గందరగోళానికి గురికావడం చాలా సులభం. కాబట్టి , ఎల్లప్పుడూ మీ తరగతులను ప్యాకేజీలలో మాత్రమే సృష్టించండి.

జావాలో, తరగతులకు మరియు ప్యాకేజీలకు అర్థవంతమైన పేర్లను ఇవ్వడం ఆచారం. చాలా కంపెనీలు తమ స్వంత లైబ్రరీలను (తరగతుల సమితి) విడుదల చేస్తాయి మరియు గందరగోళాన్ని నివారించడానికి, వారు కంపెనీ/వెబ్‌సైట్/ప్రాజెక్ట్ పేరును ప్యాకేజీ పేరులో చేర్చారు:

ప్యాకేజీ పేరు కంపెనీ/ప్రాజెక్ట్ పేరు
org.apache.common
org.apache.tomcat
org.apache.util
అపాచీ ప్రాజెక్ట్
com.oracle.jdbc
ఒరాకిల్ కంపెనీ
java.io
javax.servlet
ఒరాకిల్ కంపెనీ, జావా ప్రాజెక్ట్
com.ibm.websphere
IBM కంపెనీ, వెబ్‌స్పియర్ ప్రాజెక్ట్
com.jboss
JBoss ప్రాజెక్ట్

3. ఫైల్ కంటెంట్‌లు

జావా భాషా ప్రమాణం ప్రకారం, తరగతి పేరు మరియు దాని ప్యాకేజీ పేరు గురించిన సమాచారం తప్పనిసరిగా కోడ్‌తో ఫైల్‌లో చేర్చబడాలి. సాధారణ రూపం క్రింద చూపబడింది:

package package-name;

public class ClassName
{

}

ప్యాకేజీ పేరు తప్పనిసరిగా ఫోల్డర్ పేరుతో సరిపోలాలి మరియు ఫైల్ పేరు తప్పనిసరిగా పబ్లిక్ క్లాస్ పేరుతో సరిపోలాలి.

మీకు ఫైల్ ఉంటే , అది వీటిని కలిగి ఉండాలి:...\src\com\project\Service.java

package com.project;

public class Service
{

}

4. తరగతులను దిగుమతి చేయడం

తరగతి పేరు మరియు ప్యాకేజీ పేరును తరగతికి పూర్తి అర్హత కలిగిన పేరు అని పిలుస్తారు .

ఉదాహరణలు:

పూర్తి అర్హత కలిగిన పేరు ప్యాకేజీ పేరు తరగతి పేరు
java.io.FileInputStream
java.io
FileInputStream
java.lang.String
java.lang
String
java.util.ArrayList
java.util
ArrayList
org.apache.tomcat.Servlet
org.apache.tomcat
Servlet
Cat
ఏదీ లేదు
Cat

శుభవార్త:

పూర్తి అర్హత కలిగిన తరగతి పేరు ఎల్లప్పుడూ ప్రాజెక్ట్‌లో ప్రత్యేకంగా ఉంటుంది. అన్నింటికంటే, మీరు ఒకే ఫోల్డర్‌లో ఒకే పేరుతో రెండు ఫైల్‌లను సృష్టించలేరు.

చెడు వార్త:

పూర్తి అర్హత కలిగిన తరగతి పేర్లు సాధారణంగా పొడవుగా లేదా చాలా పొడవుగా ఉంటాయి. మరియు కోడ్‌లో ప్రతిసారీ పొడవైన పేరు (ఉదాహరణకు java.util.ArrayList) రాయడం చాలా అసౌకర్యంగా ఉంటుంది.

అందుకే జావా తరగతులను దిగుమతి చేసుకునే సామర్థ్యాన్ని జోడించింది .

మీరు మీ కోడ్‌లో క్లాస్ షార్ట్ నేమ్‌ని ఉపయోగించవచ్చు , కానీ మీరు ముందుగా సంక్షిప్త పేరుకు ఏ పూర్తి అర్హత కలిగిన తరగతి పేరు సరిపోతుందో కంపైలర్‌కి తెలియజేయాలి . మీరు ఇప్పుడు మీ ప్రాజెక్ట్‌లో ఒకే పేరుతో బహుళ తరగతులు ఉంటే ఏమి చేయాలి? లేదా మీ వద్ద వాస్తవానికి ఒకటి ఉంది, కానీ మరో 15 జోడించబడ్డాయి...

మీ కోడ్‌లో చిన్న తరగతి పేరును ఉపయోగించడానికి, మీరు క్రింది నిర్మాణాన్ని జోడించాలి:

import fully-qualified-class-name;

ఈ డిక్లరేషన్ క్లాస్ ప్రారంభంలోనే, డిక్లరేషన్ తర్వాత వెంటనే జోడించబడాలి package.

ఉదాహరణ:

package com.codegym.tasks.task01;

import java.util.Scanner;
import com.test.helper.special.ArrayList;

public class Solution
{
   public static void main(String[] args)
   {
     Scanner console = new Scanner(System.in);
     ArrayList list = new ArrayList();
   }
}

మేము రెండు తరగతులను ( మరియు ) దిగుమతి చేసాము , కాబట్టి మేము వారి చిన్న పేర్లను మా కోడ్‌లో ఉపయోగించవచ్చు. మరియు కంపైలర్ ఏ తరగతులను ఉపయోగించాలో తెలుస్తుంది.java.util.Scannercom.test.helper.special.ArrayList

మరియు మనం ఉపయోగించకపోతే అదే కోడ్ ఎలా ఉంటుందో ఇక్కడ ఉంది import:

package com.codegym.tasks.task01;

public class Solution
{
   public static void main(String[] args)
   {
     java.util.Scanner console = new java.util.Scanner(System.in);
     com.test.helper.special.ArrayList list = new com.test.helper.special.ArrayList();
   }
}

మార్గం ద్వారా, మీ ప్రాజెక్ట్‌కు పేరు పెట్టబడిన రెండు తరగతులు ఉంటే Scanner, మీరు రెండింటినీ ఒకే ఫైల్‌లోకి దిగుమతి చేయలేరు: మీరు వాటిలో ఒకదానికి పొడవైన పేరును ఉపయోగించాల్సి ఉంటుంది .

మీ బృందంలో మీకు జెన్ ఉన్నారని అనుకుందాం. ఆమె ఎవరో అందరికీ తెలుసు కాబట్టి కమ్యూనికేషన్ సమస్యలు లేవు. కానీ మూడు జెన్స్‌లు ఉంటే, వాటిని వేరు చేయడానికి పూర్తి అర్హత కలిగిన పేర్లను ఉపయోగించాల్సి ఉంటుంది.

గమనిక 1

అదే విధంగా, మీరు మీ తరగతికి చాలా దిగుమతి స్టేట్‌మెంట్‌లను జోడించడానికి చాలా సోమరిగా ఉంటే, మీరు దాని లేజీ వెర్షన్‌ను ఉపయోగించవచ్చు: నిర్దిష్ట తరగతి పేరుకు బదులుగా, నక్షత్రం గుర్తు పెట్టండి:

import package-name.*;

ఇది ప్యాకేజీలోని అన్ని తరగతుల చిన్న పేర్లను ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది .

గమనిక 2

ప్యాకేజీలోని అన్ని తరగతులు స్వయంచాలకంగా దిగుమతి చేయబడతాయి, కాబట్టి మీరు వాటి కోసం స్టేట్‌మెంట్ java.langరాయాల్సిన అవసరం లేదు . importఈ తరగతులలో ఒకదానిని మీరు ఇప్పటికే ఖచ్చితంగా తెలుసుకుంటారు: java.lang.String. అవును అది ఒప్పు. Stringస్ట్రింగ్‌లతో పని చేయడానికి మేము ఉపయోగించిన తరగతి ఇది .