"வணக்கம், அமிகோ. இன்று நான் உங்களுக்கு ஒரு பொதுவான ஜாவா நிரலைப் பற்றி சொல்கிறேன். ஜாவாவில் எழுதப்பட்ட ஒவ்வொரு நிரலும் வகுப்புகள் மற்றும் பொருள்களைக் கொண்டுள்ளது என்பது பெரிய செய்தி ."

"வகுப்புகள் என்னவென்று எனக்கு முன்பே தெரியும். பொருள்கள் என்றால் என்ன?"

"ஒரு ஒப்புமையுடன் ஆரம்பிக்கலாம். நீங்கள் ஒரு சிறிய கப்பலை உருவாக்க விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம். நீங்கள் ஒரு வடிவமைப்பில் பணிபுரிந்து, பின்னர் ஒரு தொழிற்சாலைக்கு வரைபடத்தை அனுப்புங்கள், அங்கு உங்கள் வடிவமைப்பின் படி ஒரு கப்பல் சேகரிக்கப்படும். அல்லது ஒரு டஜன் கப்பல்கள் அல்லது பல கப்பல்கள் நீங்கள் விரும்பியபடி, ஒரு வரைபடத்தின் அடிப்படையில் டஜன் கணக்கான ஒரே மாதிரியான கப்பல்களை உருவாக்க முடியும் என்பதே எனது கருத்து."

"இது ஜாவாவுடன் சரியாக வேலை செய்கிறது."

" ஜாவா புரோகிராமர்கள் வடிவமைப்பு பொறியாளர்களைப் போன்றவர்கள், வரைபடங்களை உருவாக்குவதற்குப் பதிலாக, அவர்கள் வகுப்புகளை எழுதுகிறார்கள். கப்பல் பாகங்கள் புளூபிரிண்ட்களின் அடிப்படையில் தயாரிக்கப்படுகின்றன, அதே நேரத்தில் பொருள்கள் வகுப்புகளின் அடிப்படையில் உருவாக்கப்படுகின்றன. "

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

"சரி, உங்கள் கப்பலின் ஒப்புமை எனக்குக் கிடைத்தது. நீங்கள் என்ன சொல்கிறீர்கள் என்பதை நான் புரிந்துகொள்வதை உறுதிப்படுத்த எனக்கு இன்னும் இரண்டு ஜோடிகளைக் கொடுக்க முடியுமா?"

"உதாரணமாக தேனீக்களை எடுத்துக் கொள்ளுங்கள்..."

"இல்லை, அதைக் கீறி விடுங்கள். தேனீக்களால் எனக்கு மோசமான அனுபவம் ஏற்பட்டது. எறும்புகளை எடுத்துக் கொள்வோம்."

"எறும்புக் கூட்டமானது பொருள்கள் எவ்வாறு தொடர்பு கொள்கிறது என்பதற்கு ஒரு சிறந்த எடுத்துக்காட்டு. எந்த எறும்புக் கூட்டமும் மூன்று வகுப்புகளைக் கொண்டுள்ளது: ராணி, வீரர்கள் மற்றும் வேலை செய்யும் எறும்புகள். ஒவ்வொரு வகுப்பிலும் எறும்புகளின் எண்ணிக்கை மாறுபடும். பொதுவாக ஒரு காலனியில் ஒரு ராணி மட்டுமே இருக்கும், டஜன் கணக்கான வீரர்கள் , மற்றும் நூற்றுக்கணக்கான தொழிலாளர்கள் மூன்று வகுப்புகள், நூற்றுக்கணக்கான பொருட்கள்

"இது சரியான உதாரணம். ஒரு பொதுவான நிரல் சரியாக வேலை செய்கிறது. அனைத்து வகுப்புகளிலும் பொருட்களை உருவாக்கும் ஒரு முக்கிய பொருள் உள்ளது. பொருள்கள் ஒருவருக்கொருவர் மற்றும் வெளி உலகத்துடன் தொடர்பு கொள்கின்றன. பொருட்களின் நடத்தை உள்நாட்டில் கடினமாக உள்ளது (திட்டமிடப்பட்டது) ."

"எனக்கு சரியாகப் புரியவில்லை. அதாவது, எனக்குப் புரியவே இல்லை."

"இந்த இரண்டு விளக்கங்களும் ஒரே நாணயத்தின் இரு பக்கங்கள். உண்மை எங்கோ இடையில் உள்ளது. முதல் உதாரணம் (புளூபிரிண்ட்ஸ் மற்றும் கப்பல்கள் பற்றி) ஒரு வர்க்கத்திற்கும் அதன் பொருள்களுக்கும் இடையிலான தொடர்பை நமக்குக் காட்டுகிறது. இது ஒரு சக்திவாய்ந்த ஒப்புமை. எறும்புக் காலனி ஒப்புமை நிரூபிக்கிறது பொருள்களுக்கிடையேயான உறவு, இது வகுப்புகளால் விவரிக்கப்படுகிறது மற்றும் ஒரு நிரல் இயங்கும் போது மட்டுமே இருக்கும்."

"புரோகிராமில் பயன்படுத்தப்படும் அனைத்துப் பொருள்களுக்கும் வகுப்புகளை எழுத வேண்டும், பின்னர் அவற்றின் தொடர்புகளை விவரிக்க வேண்டும் என்று நீங்கள் சொல்கிறீர்களா?"

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

"இது கொஞ்சம் தெளிவில்லாமல் இருக்கிறது, ஆனால் நான் அதை கிட்டத்தட்ட புரிந்து கொண்டேன் என்று நினைக்கிறேன்."

"எந்த முறைகளில் அழைப்பது மற்றும் எந்தத் தரவை அனுப்புவது என்பது எங்களுக்கு எப்படித் தெரியும்?"

"ஒவ்வொரு வகுப்பிற்கும் ஒரு அறிவிப்பு உள்ளது, அது அதன் நோக்கத்தைப் பயன்படுத்துவதைக் குறிக்கிறது. அதேபோல, ஒவ்வொரு முறையும் அது என்ன செய்ய முடியும் மற்றும் அதற்கு நாம் என்ன தரவை அனுப்ப வேண்டும் என்பதைக் குறிக்கும் ஒரு அறிவிப்பு உள்ளது. ஒரு வகுப்பைப் பயன்படுத்த, எதைப் பற்றிய பொதுவான புரிதல் உங்களுக்கு இருக்க வேண்டும். அது செய்கிறது. ஒவ்வொரு முறையும் என்ன செய்கிறது என்பதை நீங்கள் சரியாகத் தெரிந்து கொள்ள வேண்டும், ஆனால் அது எப்படிச் செய்கிறது என்பதைத் தெரிந்து கொள்ள வேண்டும் . இது ஒரு மந்திரக்கோல் போன்றது."

"ஹா! நன்றாக இருக்கிறது."

"இதோ. கோப்புகளை நகலெடுக்கும் வகுப்பின் குறியீட்டைப் பாருங்கள்:"

c:\data.txt ஐ c:\result.txt க்கு நகலெடுக்கவும்
package com.codegym.lesson2;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopy
{
    public static void main(String[] args) throws IOException
    {
        FileInputStream fileInputStream = new FileInputStream("c:\data.txt");
        FileOutputStream fileOutputStream = new FileOutputStream("c:\result.txt");

        while (fileInputStream.available() > 0)
        {
            int data = fileInputStream.read();
            fileOutputStream.write(data);
        }

        fileInputStream.close();
        fileOutputStream.close();
    }
}

"எனக்கு எல்லாம் கிடைத்துவிட்டது என்று சொல்ல முடியாது, ஆனால் அதன் சாராம்சம் எனக்கு கிடைத்தது என்று நினைக்கிறேன்."

"அருமை. அடுத்த முறை சந்திப்போம்."

"நான் கிட்டதட்ட மறந்துவிட்டேன். டியாகோவிடமிருந்து உங்கள் பணி இதோ."