அக்டோபர் 09, 2010

சமீபமாக தொடராத ஒரு ஜாவா தொடர்

ஜாவாவில் எனக்குப் புரிந்ததை பகிர்ந்து கொள்கிறேன்.  சில விஷயங்களை நான் தவறாகவும் புரிந்து கொண்டிருக்கலாம் எனவே புத்தங்களில் மேலும் படித்து நன்கு தெரிந்து கொள்ளவும்.

ஜாவா புரோகிராமிங் மொழியில் classes இன்றியமையாதது.  ஒவ்வொரு ஜாவா புரோகிராமிலும் ஒரு classஆவது இருக்கும்.  நிறைய classகளை ஒரே ஜாவா fileலிலும் (.java) அடைக்கலாம் அல்லது வெவ்வேறு ஜாவா fileகளிலும் வைத்துக் கொள்ளலாம்.

நினைவில் வைத்துக் கொள்ளுங்கள்
  • ஒரு ஜாவா fileல் ஒரே ஒரு public classதான் இருக்கும்.
  • ஜாவா file பெயரும் public classன் பெயரும் ஒன்றாக இருக்க வேண்டும். 
 எடுத்துகாட்டிற்கு உங்கள் public classன் பெயர் HelloWorld என வைத்துக் கொண்டால் கட்டாயம் அதை HelloWorld.java எனத்தான் சேமிக்க வேண்டும்.  Elcipse IDE மூலம் ஜாவா புரோகிராமிங் செய்பவர்களுக்கு இந்த பிரச்சனை இல்லை.

ஜாவா ஒரு Object Oriented புரோகிராமிங் மொழி. எனவே எல்லாமே objectடாகத் தான் நடத்தப் படுகிறது.  ஒரு object எதை வேண்டுமானாலும் குறிக்கலாம். ஒரு உயிரனத்தையோ (Person, Animal, Parrot..), உயிரற்ற பொருளையோ (Car, Chair..) ஒரு கருத்தையோ (Account, Insurance...) என எதை வேண்டுமானாலும் குறிக்கலாம்.  ஒவ்வொரு objectடிற்கும் அதற்கே உரிய பண்புகள் (properties) இருக்கும், அவை புரியும் செயல்கள் (methods) இருக்கும்.  அவற்றை எப்படி பயன்படுத்த வேண்டும் என்பதைத்தான் நன்கு தெரிந்து கொள்ள வேண்டும்.  அதாவாது அவை பொதுவான பண்புகளா, அல்லது ஒவ்வொரு objectடிற்கும் உரிய தனித்தன்மையான் பண்புகளா என்பதையெல்லாம் பார்க்க வேண்டும்.  எடுத்துகாட்டிற்கு வங்கி கணக்குக்கான புரோகிராமை எடுத்துக்கொள்ளுங்கள்.  ஒவ்வொரு வாடிக்கையாளருக்கும் ஒரு கணக்கு இருக்கும்.  இதை புரோகிராமிங் மொழியில் புரிந்து கொள்ள ஒவ்வொரு Customer objectடிற்கும் ஒரு account இருக்கும்.  இந்த Accountம் ஒரு objectதான்.  இதை புரோகிராமிங் சொல்லில் Associativity என்கிறார்கள். Associativity என்பது ஒன்றோடு ஒன்றிருக்கும் தொடர்பினைக் குறிக்கிறது.  ஒரு வாடிக்கையாளருக்கு ஒரு கணக்கு. (one Customer associated with one account).

ஒரு வாடிக்கையாளரின் கணக்கை வேறொருவர் அணுகக் கூடாது.  இந்த பாதுகாப்பு முறைகளுக்கு புரோகிராமிங்கில் செயல் வடிவம் கொடுக்கத்தான் Access specifiers உள்ளன.  Acsess specifiers என்பது ஒன்றை அணுகுவதற்கு உள்ள குறிசொற்கள்.  public, protected, private என்பவை access specifierகளே.  default என்றொரு access specifier உள்ளது.  நீங்கள் எந்தவொரு அணுகுமுறைக்கான குறிச்சொற்களையும் தரவில்லை என்றால் அவை தன்னியல்பாக default access என எடுத்துக் கொள்ளப்படும்.

சென்ற மாதம் முழுவதும் projectல் மும்முரமாக இருந்தால் பதிவுகளை வெளியிட முடியவில்லை.  மற்ற பணிகளை முடிக்கவே நேரம் போதாததால் பதிவெழுதுவது கிடப்பில் போடப்பட்டது. ஜாவாவில் எனக்கு அவ்வளவு பரிட்சயம் இல்லை என்பதுதான் உண்மை. (அடப்பாவி!..:)

கீழ்வருவது இந்த ஜாவா தொடருக்காக எழுதிய ஒரு குட்டி புரோகிராம்.  பதினைந்து நாட்களுக்கு முன்னரே எழுதியது. இருக்கும் வேலைப் பளுவில் மறந்தே விட்டேன்.  விளக்கம் அடுத்தடுத்த பதிவுகளில் வரும். comment வரிகளைப் படித்து புரிந்து கொள்ளவும்.

முன்குறிப்பு:  
கீழ்வரும் கோடிங்கை அப்படியே காப்பி செய்யாதீர்கள்.  மேல் வலது மூலையில் இருக்கும் ஐகானை சொடுக்கவும்.





/** @author Rajkumar Ravi
    source: tamilcpu.blogspot.com
*/
//this program will not compile since this is having errors(intentional)
//only one public class permitted in a java file
public class Test { 
 public static void main(String[] args) {
  //create an object instance for non-static class to access its members
  System.out.println(new Test2().i);
  
  Test2 testObj;    //testObj is just an object reference for Test2 class
  testObj = new Test2();  //creating actual object/instance for target class  
  int y = testObj.i + 5;
  
  //members of a static class can be accessed without creating an instance for it
  System.out.println(Test4.name); 
  
  //private members cannot be accessed outside its declared class
  System.out.println(new Test2().ch);
 }  
}
//this is a non-static class so members of this class can only accessed through its instance
class Test2 {      
  int i=5; private char ch='u'; 
}
//to write a static class declare static variables or static methods inside a class
static class Test3 { } // wrong

//this is a static class because it contains a static member
class Test4 {
 static String name;
}
உங்களுக்கு தவறு எனப்பட்டதை கண்டிப்பாக சுட்டிக்காட்ட வேண்டும். எவருக்கேனும் தவறான தகவல் சென்றடைந்தால் இந்த பதிவுகளின் நோக்கமே தவறிவிடுமென ஐயப்படுகிறேன். 

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

மேலும் ஒரு தகவல் நான் j2eeயிலிருந்து Android Mobile application developmentட்டிற்கு மாறி விட்டேன். இனி என் பணி முழுவதும் Androidல்தான் இருக்கும், ஜாவா தொடரினை அது பாதிக்காது என்பதையும் தெரிவித்துக் கொள்கிறேன்.  Androidல் எழுதிப் பார்த்த குட்டி குட்டி புரொகிராம்களை http://androidorigin.blogspot.com ல் நண்பனுடன் சேர்ந்து ஆங்கிலத்தில் எழுதப் போகிறேன்.  தேவையிருப்பின் அதன் தமிழ் மொழியாக்கங்களை இங்கு பதிவிட்டுக் கொள்வோம். 

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

-தொடரும்.

7 கருத்துகள் :

  1. வருகைக்கு நன்றி சரவணன்

    பதிலளிநீக்கு
  2. நல்ல பதிவு.தொடருங்கள்.
    கொஞ்சம் மெதுவாக படிக்கனும்,என்னை மாதிரி ஆட்களுக்கு.

    பதிலளிநீக்கு
  3. கணித்தமிழ் முயற்சியில் தாங்கள் தோல்வியடைந்ததாக கூறியுள்ளீர்கள். நான் ஒரு மொழிபெயர்ப்பாளன். கணிப்பொறி தொடர்பான வார்த்தைகளை மொழிபெயர்க்கும்போது தூயதமிழில் மொழிபெயர்க்க வேண்டாம். அவற்றை transliterate செய்தால் போது என client சொல்வார்கள். எனக்கு இது புதிதாக இருந்தாலும் படிப்பவர்களுக்கு அதுதான் நல்லது என புரிந்துகொண்டேன். அதே நிலைதான் தங்களுக்கும் என நினைக்கிறேன். இருப்பினும் கணித்தமிழ் தொகுப்பை முழுமையாக தயாரித்து வைக்க வேண்டும்!

    பதிலளிநீக்கு
  4. வருகைக்கும் கருத்திற்கும் நன்றி திரு எஸ்.கே, நன்றி திரு வடுவூர் காரரே.

    பதிலளிநீக்கு
  5. இணையத்தில் இயன்றவரை தேடிவிட்டேன் Eclipse Helios மென்பொருளை தேடிவிட்டேன்.உதவுங்கள் அண்ணா இலவசமாக தரவிறக்க முகவரியை தந்து உதவுங்கள் தயவுசெய்து உதவுங்கள் அண்ணா.

    உங்கள் பதில் கிடைத்தால் மிக மிக சந்தோஷப்படுவேன்.

    நன்றி அண்ணா

    ச.ஜீவிதன்

    பதிலளிநீக்கு
  6. எக்லிப்ஸ் heliosக்கு அடுத்தபடியாக indigo பதிப்பு வந்துவிட்டது. பதிவிறக்க முகவரி http://www.eclipse.org/downloads/?osType=win32
    உங்கள் சிஸ்டத்திற்கு தகுந்த (32/64 bit windows/linux/mac ) பதிப்பினை பதிவிறக்கிக் கொள்ளவும். Java மட்டும் கற்க Eclipse IDE for Java Developers போதுமானது. Jsp, servlet ஆகியவற்றையும் படிக்க Eclipse IDE for Java EE Developers பதிவிறக்கவும்.

    நீங்கள் முதலில் ஜாவா மட்டும் கற்கப் போகிறீர்கள் என்றால் (உங்களுடையது windowsஆக இருக்கும் பட்சத்தில்) இதை பதிவிறக்குங்கள் http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR1/eclipse-java-indigo-SR1-win32.zip

    பதிலளிநீக்கு