Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Monday, 14 November 2016

ஜாவா ஒரு போர்ட்டபிள் மொழி(எப்படி?).-ஜாவா பாடம்-2



                                                                                 ----முத்து கார்த்திகேயன்,  மதுரை
       



(java is a portable language how?).

ஜாவானது நிறைய பணித்தளங்களில்(platform) இயங்கக் கூடியது
.windows1/,8/7/vista/ xp/7/95/98,linux,unix என்று எல்லா இயக்க முறைமைகளிலும் பயன்படுத்தக்கூடியது.
எப்படியென்றால் ஜாவா நிரலானது நேரடியாக உங்கள் கணினியில் இயங்காது. உங்கள் கணினியில் உள்ளினைக்கப்பட்டுள்ள jvm(java virtual machine)ல் தான் இயங்கும்.

ஜாவா கம்பைலரானது முதலில் ஜாவா நிரலை கம்பைல் செய்து byte code ஆக மாற்றுகின்றது.
பைட் கோடானது jvm க்கு machine instruction ஆக உள்ளீடு செய்யப்படுகின்றது.
அவை jvmல் உள்ள இன்டெர்பிரட்டெரால்(interpreter)  interpret செய்யப்பட்டு இயக்கப் படுகின்றது.
Jvm ஆனது தனியாகவோ அல்லது உலாவியுடனோ(browser) இணைக்கப்பட்டு இயங்குகின்றது.
ஜாவானது machine code ஆக இல்லாமல் bytecode ஆக உள்ளதால் கணினியின் வன்பொருளில் இருந்து பிரிக்கப்பட்டு இயங்குகின்றது.எனவே அனுமதிக்கப்படாத operations தடை செய்யப் படுகின்றது.

 

 

ஜாவா நிரல் அறிமுகம்.                                          

//Welcome.java
Public Class Welcome
{
//main method
Public static void main(String[] args)
{
System.out.println(“Hello,world”);
}
}
மேலே உள்ள நிரலில் Welcome என்ற class க்குள் main method உள்ளது.
ஒவ்வொரு நிரலிலும் ஒரு class கட்டாயம் இருக்கும்.
இங்கே class  பெயரானது Welcome என இருக்கின்றது.
convention படி classன் பெயரின் ஒவ்வொரு வார்த்தையும் capital letter  லில் ஆரம்பிக்கிறது. (ex :HelloWorld).
பொதுவாக ஜாவாவில் classன் பெயரானது identifier எனப்படுகின்றது.
Identifier ல் கேரக்டர்,எண்கள்,அன்டர்ஸ்கோர், $ குறீயீடு வ்ரலாம். எனினும் எண்களுடன் ஆரம்பிக்கக்கூடாது.
பெயரில் இடைவெளி வரக்கூடாது.
Input1—valid
1input—invalid.
ஜாவாவானது case sensitive மொழியாகும்.
// main method வரி
//ன் தொடங்குவது இது comment line என்பதைக்குறிக்கின்றது.
Comment line ஆனது இயக்கப்படாது.
இது நிரலாளரின் நிரலை பற்றிய குறிப்பாகும்.
// என தொடங்குவது ஒற்றை வரி குறிப்பாகும்
உதாரணம்
// single line
பல் வரி குறிப்பானது/
/* என தொடங்கி */ என முடிகின்றது.
/* this is a
Multi line
Comment */
Public static void main(String{} args) வரி
இது தான் ஒவ்வொரு ஜாவா நிரலின் முதலில் இயக்கப்படும் வரியாகும்.
ஒவ்வொரு ஜாவா நிரலிலும் ஒரு main method கட்டாயம் வேண்டும்.
இல்லையென்றால் jvm  ஆனது ஜாவா நிரலை இயக்காது.
{ மற்றும் } main method ன் எல்லையைக் குறிக்கின்றது.
Void keyword ஆனது main method எதையும் திருப்பி அனுப்பாது என்பதைக் குறிக்கின்றது.
 System.out.println(“Hello,world”);  வரியானது
Hello World  என பிரிண்ட் செய்யும்.
System.out என்பது standard output object ஆகும்.
இது command window ல் string ஐ வெளியீடு செய்யப் பயன்படுகின்றது.
--

முதலில்பார்த்த நிரலை சற்று மாற்றிப் பார்ப்போம்.
Public Class Welcome2
{
//main method
Public static void main(String[] args)
{
System.out.println(“Hello\n,world”);
}
}
வழக்கம் போல println  வழிமுறையானது(method) output செய்ய பயன்படுத்தப் பட்டுள்ளது,
இந்த நிரலின் வெளியீடானது பின் வருமாறு இருக்கும்.
Hello
World
ஏன் multiple lines?
காரணம் நாம் உபயொகப்படுத்திய்ள்ள ‘\n’ ஆகும்.println வரியில் hello வுக்கும் world க்கும் ந்டுவில் ‘\n’ இருப்பதைக் கவனியுங்கள்.’\n’ என்பது escape sequencelல் ஒன்றாகும்.இது new line character என்று அழைக்கப்படுகின்றது..
Printf மூலம் வெளியீடு செய்தல்.
Public Class Welcome3
{
//main method
Public static void main(String[] args)
{
System.out.printf(“%s\n%s”,”welcome to”,”java language”);
}
}
System.out.printf என்பது formatted output செய்யப் பயன்படுகின்றது.
System.out.printf(“%s\n%s”,”welcome to”,”java language”);
%s என்பது stringகிற்கான format specifier ஆகும்.
Format specifier  என்பது  % குறியீட்டுடன் ஆரம்பிக்கின்றன.s என்பது string ஐ குறிக்கின்றது. %d என்றால் integer மற்றும் %f என்றால் float ஆகும்.
மேலே உள்ள நிரல் வரியில் முதலில் உள்ள %s ஆனது “welcome to”வால் replace செய்யப்படுகின்றது. இரண்டாவதாக வரும் %s ஆனது “java language”என்பதால் replace செய்யப்படுகின்றது.
இதன் வெளியீடானது
Welcome to
Java language
என இருக்கும்.
Multiple lines வெளியீட்டிற்கு காரணம் “\n” printf statementல் உபயோகிக்கிப்பட்டிருப்பது தான்.



 


















.






Saturday, 12 November 2016

ஜாவா பாடம்-1




Java-ஜாவா-ஒரு அறிமுகம்.



ஜாவா ஒரு இணைய மொழி ஆகும்.
சன் மைக்ரோ சிஸ்டமால் உருவாக்கப் பட்டு இன்று ஆரக்கிள் கார்ப்பரஷனின் கையில் உள்ளது.
இது உருவாக்கப்படுவதற்கு முன்னால் சி,சி++ மிகவும் பிரபலமாக இருந்த சமயம்.நிறைய எலக்ட்ரானிக் சாதனங்கள் கண்டுபிடிக்கப் பட்டன.

இவற்றில் நிரலாக்கம் செய்தால் ஒரு சாதனத்தில் செய்யப்பட்ட நிரலை வேறொரு சாதனத்தில் அப்படியே இயக்க முடிய வில்லை. ஒவ்வொரு சாதனத்திற்கும் ஏற்றாற் போல் நிரல் பெயர்ப்பி(compiler) எழுத வேண்டியிருந்தது. Compiler என்பது விலை உயர்ந்ததாய் இருந்தது.
எனவே ஒரு portable language தேவைப்பட்டது.
மேலும் இரண்டாவது காரணம்
இணையம் கண்டு பிடிக்கப்பட்டது. இணையம் சம்பந்தப்பட்ட பயன்பாடுகக்ள்(applications) உருவாக்குவதற்கு ஒரு மொழி தேவைப்பட்டது.
இந்த இரண்டுமே ஜாவா மொழி கண்டு பிடிக்கப்பட காரணமாகும்.
ஆம் ஜாவா ஒரு portable மொழியாகும்.
இத்ற்கு முன் oak என்று பெயரிடப்பட்டிருந்த இந்த மொழியை உருவாக்கிய
சன் மைக்ரோ சிஸ்டம் சேர்ந்த நிரலாளர்கள் ஜாவா காஃப்பி குடித்துக்
கொண்டே என்ன பெயரிடலாம் என்று யோசித்த போது  காஃப்பியின் பெயரிட்டால் என்று தோன்றியது. இதுவே ஜாவா என்று பெயரிட காரணமாகும்.
Java is a both  compiled and interpreted language.
முதலில் ஜாவா compile செய்யப்ப்ட்டு class file ஆக மாற்றப்படுகின்றது.
பிறகு jvm (java virtual machine) ஆல் இன்டெர்ப்ரெட் செய்ய்ப்பட்டு இயக்கப்படுகின்றது.
ஜாவா ஒரு பொருள் நோக்கு நிரலாக்க மொழியாகும்(object oriented language).
மேலும் ஜாவா ஒரு நவீன மொழியாகும். உயர்தர பிழை கையாளுதல் (exception handling) மற்றும் garbage collection கொன்ண்டுள்ளது. அதாவது garbage collector ஆனது அவ்வப்போது இயங்கி நிரல் ஆக்கிரமித்திருந்த நிணைவகத்தை release செய்கிறது.
ஜாவாவில் pointer கிடையாது. எனவே ஜாவா நிரலால் நம் கணினியில் உள்ள நிணைவத்தை அணுக முடியாது. எனவே hacking போன்றவை தடுக்கப்படுகின்றன.
எனவே ஜாவா ஒரு பாதுகாப்பான மொழி எனப்படுகின்றது(java is a secured language)
மேலும் ஜாவாவில் multiple inheritance கிடையாது.
ஜாவா படிப்பதற்கு முன் ஒரு ide(Integrated development environment) ஐ உங்கள் கணினியில் டவுன் லோட் செய்து இயக்குங்கள்..(Netbeans,eclipse)  

Object oriented programming(பொருள் நோக்கு நிரலாக்கம்)



C போண்ற கட்டமைப்பு சார்ந்த மொழிகளில் எண்களையும், எழுத்துக்களின் கோவைகளையும் தான் உபயோகிக்கிறோம். ஆனால் நாம் இயல் வாழ்க்கையில் நம்மைச் சுற்றி உள்ள பொருட்களான telephone,car,bank போன்ற பொருட்களை அவற்றில் நிரலாக்கம் செய்ய முடியாது.

ஒவ்வொரு பொருட்களுக்கும்(objects) பண்புகள் இருக்கின்றன. அதைப் போல் அதன் மேல் நாம் நிகழ்த்தும் நிகழ்வுகளும் இருக்கின்றன.(each object has attributes  and actions we have acted upon them).

உதாரணமாக வானொலியை எடுத்துக் கொண்டால் அதன் பண்புகளான volume, frequency போன்றவைகளும் அதன்மேல் நாம் நிகழ்த்தும் நிகழ்வுகளாக

On, off, mute போன்றவைகளும் இருக்கின்றன.

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

இனங்ககளானது(class) ஒரு template  ஆக வரையறுக்கப்படுகின்றது.

அவற்றில் பண்புகள்(attributes) data ஆகவும் behavior ,method ஆகவும் உட் பொதிக்கப் ப்டுகின்றது.

Class  ஆனது கட்டிடங்களின் blue print போண்றதாகும். Blue print ல் நீங்கள் வசிக்க  முடியாது. அவற்றை வைத்து எழுப்பப்படும் கட்டிடங்களில் தா நீங்கள் வசிக்க  முடியும்.அது போலவே நிரலில் class ன்  உறுப்புகளாக உள்ள object ஐ  த்தான் நிரலில் உபயோகிக்க முடியும்.

பொருள் நோக்கு நிரலாக்கமானது data வை மையமாகக் கொண்டு உருவாக்கப்படுகின்றது.. ஒரு classல் உள்ள data வானது மற்ற class களின் மெத்தட்களால் நேரடியாக அவற்றை அணுக முடியாத படியும் மெதொட் க:ளின் மூலமே அவற்றை அணுகும் படியும் உள்ளது.

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

இதுவே உறை பொதியாக்கம் (encapsulation) எனப்படுகின்றது.

பெரிய நிரல்களை கூறுகளாக பிரித்து அணுகும் procedural approach  ஒரே project ஐ தனி தனியாக ப்ரித்துச் செய்யும் போது உதவாது.

 ஒரு ப்ரொஜெக்ட்டை எடுத்துக் கொண்டால் reusability க்கே முக்கியத்துவம் கொடுக்கப் படுகின்றது.

உதாரணமாக ஒரு employee class ன் பண்புகள் manager classக்கும் இருக்கும்.

கூடுதலாக அதற்கென்று சில பண்புகள் இருக்கலாம். என்வே ஒரு manager உருவாக்கும் போது employee Class  ஐ inherit செய்து கொண்டு கூடுதல் பண்புகளை மட்டும் அறிவித்தல் மரபுரிமம்(inheritance) எனப்படுகின்றது.

வாகனம் என்ற ஒன்றை எடுத்துக் கொண்டால் இயல் வாழ்க்கையில் அப்படி ஏதும் கிடையாது. Bicycle, car, van போன்றவையே இருக்கின்றது. அப்போது வாகனம் என்ற இனத்தை abstract class ஆக அறிவிக்கலாம். வாகனம் என்ற

classக்கு  object ஏதும் உருவாக்க முடியாது.

ஆனால் அதனை அடிப்படையாக கொண்டு உருவாக்கப்படும் car என்ற classக்கு

Object உருவாக்க முடியும் இது தான்  data abstraction எனப்படுகின்றது.

ஒரே மெதொடை ஒரு விதமான ஆர்க்யுமென்ட் செலுத்தும் போது செலுத்தும் போது செவ்வகத்தின் பரப்பளவையும் வேறு விதமான ஆர்க்யுமென்ட் செலுத்தும் போது முக்கோணத்தின் பரப்பளவையும் கண்டு பிடிக்கலாம் .

இதுவே பல்லுருவாக்கம் (polymorphism)எனப்படுகின்றது. இவற்றில் மெதொட் ஒவெர்லோடிங், மெதொட் ஒவெர்ரைடிங் ஏன இரு வகை இருக்கின்றன

_____-தொடரும்