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" அல்லது "எங்களிடம் ஒரு திட்டம் உள்ளது project, இது கோப்புறையில் அமைந்துள்ளது d:\files\git\data"

எப்பொழுதும் வகுப்புகளை நேரடியாக ரூட் ஃபோல்டரில் வைக்காமல் பேக்கேஜ்களில் வைப்பது சிறந்தது ( src. உங்களிடம் சில வகுப்புகள் இருந்தால், இது ஒரு பிரச்சனையும் இல்லை. ஆனால் பல வகுப்புகள் இருக்கும்போது, ​​குழப்பமடைவது மிகவும் எளிதானது. எனவே , எப்போதும் உங்கள் வகுப்புகளை தொகுப்புகளில் மட்டுமே உருவாக்கவும்.

ஜாவாவில், வகுப்புகள் மற்றும் தொகுப்புகளுக்கு அர்த்தமுள்ள பெயர்களை வழங்குவது வழக்கம். பல நிறுவனங்கள் தங்களுடைய சொந்த நூலகங்களை (வகுப்புகளின் தொகுப்பு) வெளியிடுகின்றன, மேலும் குழப்பத்தைத் தவிர்க்க, அவை நிறுவனம்/இணையதளம்/திட்டத்தின் பெயரை தொகுப்பின் பெயரில் இணைக்கின்றன:

தொகுப்பு பெயர் நிறுவனம்/திட்டத்தின் பெயர்
org.apache.common
org.apache.tomcat
org.apache.util
அப்பாச்சி திட்டம்
com.oracle.jdbc
ஆரக்கிள் நிறுவனம்
java.io
javax.servlet
ஆரக்கிள் நிறுவனம், ஜாவா திட்டம்
com.ibm.websphere
IBM நிறுவனம், WebSphere திட்டம்
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சரங்களுடன் வேலை செய்ய நாங்கள் பயன்படுத்திய வகுப்பு இது .