PDA

View Full Version : எளிய முறையில் ஜாவா - பகுதி 5.



kavitha
09-04-2007, 07:46 AM
http://www.tamilmantram.com/untilled.bmp


ஜாவா புரோகிராமானது கிளாஸ், இன்டர்பேஸ் இணைந்த தொகுப்பால் (Package) ஆனது. கிளாஸ், இன்டர்பேஸ் இவற்றுக்கான வேறுபாடு என்னவென்றால் கிளாஸ் என்பது நேரடியாகவோ,ஆப்ஜெக்ட் மூலமாகவோ செயல்பாட்டுக்கு உதவும் ஜாவாவின் அங்கமாகும்.
ஆனால் இன்டர்பேஸ் என்பது வெறும் அமைப்பு மட்டுமே! அதை நேரடியாக புரோகிராமில் உபயோகிக்க முடியாது. ஆனால் மல்டி லெவல் இன்ஹெரிட்டன்ஸ் (multilevel inheritance) இன்டர்�பேஸ் மூலமே உபயோகிக்கமுடியும். அதேபோல் இன்டர்�பேஸில் மாறாமதிப்புகளை(constants) ஸ்டேட்டிக் (Static)ஆக மட்டுமே கொடுக்கமுடியும். Static என்று கொடுக்கப்பட்ட வேரியபிளோ (variable), மெத்தடோ (method) எந்த கிளாஸில் வரையறுக்கப்பட்டிருக்கிறதோ அதற்கும் அதன் துணை கிளஸிற்கும் அப்படியே எடுத்தாளுக்கூடியதாக இருக்கும். அதாவது அதற்கென்று தனி இன்ஸ்டன்ஸ் (instance) உருவாக்கவேண்டிய அவசியம் இல்லை. அதேபோல் ஸ்டேட்டிக் மெம்பரின் (static member) ஆயுள் ஆணைத்தொடரின் இறுதிவரை இருக்கும்.

Static = புரோகிராம் கம்பைல் ஆகுவதிலேயிருந்து புரோகிராம் முடியும் வரை நினைவகத்தில் செயலாற்றலோடு இருக்கும்
Dynamic = ரன் டைமில் (runtime) _ இயக்க நேரத்தில் மட்டுமே நினைவகத்தில் செயலாற்றலோடு இருக்கும்.

3 வகையான கிளாஸ் / இன் டர்பேஸ்:
1. பொதுவகை (பப்ளிக் : Public) _ எந்த கிளாஸ் வேண்டுமானாலும் உபயோகிக்கலாம்.
2. தனிவகை (ப்ரைவேட்: Private) _ அதற்குரிய கிளாஸ் மட்டுமே உபயோகிக்கமுடியும்.
3. பாதுகாக்கப்பட்டவகை (புரொடெக்டட் _ Protected) - அதற்குரிய கிளாஸ் அனுமதித்தால் மட்டுமே மற்றவை உபயோகிக்கமுடியும்.

ஜாவாவில் பலவகையான பேக்கேஜ் (package) தொகுப்புகள் உள்ளன. ஒவ்வொன்றும் ஒவ்வொரு பயனுக்காக உருவாக்கப்பட்டிருக்கிறது.
பேக்கேஜ் பயன்படுத்த விதி (syntax)
1. import packagename.classname;
2. import packagename.interfacename;
3. import packagename.*;

எ.டு.
1. import java.io _ உள்ளீடு/வெளியீட்டிற்காக (input/output)
2. import java.net _ இணைப்புகளுக்காக (network)
3. import java.math _ கணக்கீடுகளுக்காக (mathematical)
4. import java.media - கடத்திகளுக்காக (multimedia/networkmedia)

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

1. ஒவ்வொரு புரோகிராமையும் அதன் பப்ளிக் கிளாசின் பெயரிலோ அல்லது பப்ளிக் இன்டர்பேசின் பெயரிலோ சேமிக்கவேண்டும் (அதே பெயரில் இருந்தால் குழப்பம் நேராது என்பதற்காக/ அல்லது எந்த பெயரில் எழுதப்பட்டிருக்கிறதோ அதை இன்டர்பிரட்டருக்காக இயக்கவேண்டி இருக்கும்)
2. ஒவ்வொரு புரோகிராமையும் .java என்னும் விகுதியோடுதான் சேமிக்கவேண்டும்
3. ஒரு புரோகிராம் எத்தனை கிளாஸ் வேண்டுமானாலும் பெற்றிருக்கலாம். ஆனால் அது ஒரே ஒரு பப்ளிக் க்ளாஸ் அல்லது பப்ளிக் இன்டர்பேசை கண்டிப்பாக பெற்றிருக்க வேண்டும்.

ஜாவாவில் பயன்படுத்தப்படும் எழுத்துக்கள்:
கீபோர்டில் இருக்கும் அத்தனை தட்டச்சு எழுத்துக்களையும் (கன்ட்ரோல் கீ, �பங்சன் கீ, விண்டோ கீ தவிர) ஜாவாவில் ஆணைத்தொடருக்காக (program) உபயோகிக்கலாம். ஆங்கில எழுத்துக்கள் a முதல் z வரை, A முதல் Zவரை, எண்கள், கணக்கியல் குறியீடுகள் மற்றும் சிறப்பு குறியீடுகள் அனைத்தும் உபயோகிக்கலாம். ஜாவா உன்னிப்பான உணர்வானாகும்(case sensitive language). மாற்றுக்குறியீடுகள், சிறிய ங்கில எழுத்துக்கள்(small letters), பெரிய ஆங்கில எழுத்துக்கள்(capital letters) என ஒவ்வொன்றும் ஒவ்வொரு மதிப்பீடுகளாகவே ஏற்றுக்கொள்ளப்படும்.
அதாவது name, Name, NAME இந்த மூன்றும் வெவ்வேறு பெயர்களாகவே கருதப்படும்.

சரி! இனி ஜாவாவில் தரவுகளுக்கு (Data) பெயர் வைப்பது எப்படி எனப்பார்ப்போமா?

மாறிகள், மாறிலிகள் (variables, constants)

Variables _ மாறக்கூடிய மதிப்புகளை ஏற்கும் பெயர்களை மாறிகள் எனலாம்.

Constants _ மாறாத மதிப்புகளை ஏற்கும் பெயர்களை மாறிலிகள் எனலாம்

என்னென்ன வகையான தரவு வகைகள் (data types) உள்ளன?

1. int - நினைவகத்தில் எண்களுக்காக 4 பைட்டுகளை ஒதுக்கும்
2. char - நினைவகத்தில் எழுத்துக்கு 2 பைட்டுகளை ஒதுக்கும்
3. long - நினைவகத்தில் நீண்ட எண்களுக்காக 8 பைட்டுகளை ஒதுக்கும்
4. float - நினைவகத்தில் தசம எண்களுக்காக 8 பைட்டுகளை ஒதுக்கும்
5. string - நினைவகத்தில் எழுத்துகளுக்காக 2 பைட்டுகளை ஒதுக்கும்
6. byte - நினைவகத்தில் 1 பைட் பைட்டாகவே எழுத ஒதுக்கும்.

Public static void main(String args[])

Public _ பொதுவகையாக அழைக்க
Static _ நினைவகத்தில் காத்திருக்க
Void _ எதையும் திருப்பி அனுப்பக்கூடியது அல்ல
Main _ முதன்மை அழைப்பு
String _ எழுத்துக்களின் தொகுப்பு
args[] _ மெத்தடுக்கு அனுப்ப உதவும் ஒத்த தரவு அமைவுடைய(homogeneous) குழு மாறி(Array) _ arg[] ன் தரவு string வகையாகும்.
இனி ஆணைத் தொடருக்கு செல்வோம்...


class demostatic{
static int x,y, res;
int a;
static void disp()
{
System.out.println("Accessing without objects");
System.out.println(x+" " +y+ " " + res);
}
public static void main(String arg[])
{
demostatic.x = 50;
demostatic.y = 60;
demostatic.res = demostatic.x+demostatic.y;
demostatic.disp();
}
}


பதில்:-
Accessing without objects
50 60 100


இப்பொழுது கீழேயுள்ள ஒரே ஒரு வரியை மட்டும் இணைத்து இயக்கிப்பாருங்கள்.



class demostatic{
static int x,y, res;
int a;
static void disp()
{
System.out.println("Accessing without objects");
System.out.println(x+" " +y+ " " + res);
}
public static void main(String arg[])
{
System.out.println(x+" " +y+ " " + res);
demostatic.x = 50;
demostatic.y = 60;
demostatic.res = demostatic.x+demostatic.y;
demostatic.disp();
}
}


பதில் என்ன?

ஏன்?

.

paarthiban
09-04-2007, 09:14 AM
அழகாய் தொடரும் பாடங்கள் . சொல்லித்தரும் ஆசிரியை கவிதா அவர்களுக்கு மிக்க நன்றி.

இளசு
09-04-2007, 10:49 AM
தெளிந்த நீரோடை போல் சொல்லிச்செல்லும் ஆற்றலைக் கண்டு
வியக்கிறேன், மகிழ்கிறேன், பெருமைப்படுகிறேன் கவீ..

தொடரட்டும் கற்பிக்கும் வந்தனத்துக்குரிய இச்சீரிய பணி..

அண்ணனின் ஊக்கம் என்றும் உன்னுடன்..

sriram
09-04-2007, 05:46 PM
தளம்சார் கணினிமொழி மற்றாங்கே தளம்
சாரா கணினிமொழி ஜாவா.

கணிமொழி கனிமொழியாய் விளங்கும் கவிகூறும்
தமிழ்மொழியால் விளக்கும் பொருட்டு.!

(வாழ்த்துக்கள்.)

பண்புரிஞ்சல் பன்முகப்பு காப்பு இவைமூன்றும்
ஜாவாவில் உள்ள ஊப்சாம்.

பண்புரிஞ்சல் - INHERITENCE
பன்முகப்பு - POLYMORPHISM
காப்பு - ENCAPSULATION.

செய்க துணைவகுப்பு அப்ஸ்ட்ராக்டால் செய்யற்க
துணைவகுப்பு பைனலின் கண்.

(ABSTRACT CLASS CAN BE SUBCLASSED.
final class could not be subclassed.)

(இது எப்டி இருக்கு..?)

varsha
09-04-2007, 05:48 PM
ஆஹா ஜாவா தமிழிலா நல்ல படைப்பு தமிழ் நெஞ்சங்கலுக்கு நன்றி

sriram
09-04-2007, 06:12 PM
SYNCHRONIZATION
வேர்கோடை ஒருதிரியே எடுத்தாளும் தடுத்தாளும்
ஏனைத்திரியெலாம் தக்க விடத்து.
( வர்சா..! அப்படியே எனக்கு ஒரு ஜாவா வேலைக்கு ஏற்பாடு செய்யுங்கள். 2+ஆண்டு அனுபவம்)

இளசு
09-04-2007, 06:51 PM
.

கணிமொழி கனிமொழியாய் விளங்கும் கவிகூறும்
தமிழ்மொழியால் விளக்கும் பொருட்டு.!

(வாழ்த்துக்கள்.)



(இது எப்டி இருக்கு..?)

உங்களுடைய எல்லா ஜாவா குறள்களும்....

ரொம்ப நல்லா இருக்கு ஸ்ரீராம்..

பாராட்டும் நன்றியும்..

kavitha
10-04-2007, 10:50 AM
அழகாய் தொடரும் பாடங்கள் . சொல்லித்தரும் ஆசிரியை கவிதா அவர்களுக்கு மிக்க நன்றி.
நன்றி பார்த்திபன். தொடர்ந்து வாசித்து உங்கள் கருத்துக்களையும் கேள்விகளுக்கு பதில்களையும் இடுங்கள் (என்னடா... இது வம்பா போச்சு னு தோணுதா? :) )

kavitha
10-04-2007, 10:52 AM
தெளிந்த நீரோடை போல் சொல்லிச்செல்லும் ஆற்றலைக் கண்டு வியக்கிறேன், மகிழ்கிறேன், பெருமைப்படுகிறேன் கவீ..

தொடரட்டும் கற்பிக்கும் வந்தனத்துக்குரிய இச்சீரிய பணி..

அண்ணனின் ஊக்கம் என்றும் உன்னுடன்..
நன்றி அண்ணா :).

kavitha
10-04-2007, 11:07 AM
தளம்சார் கணினிமொழி மற்றாங்கே தளம்
சாரா கணினிமொழி ஜாவா.

கணிமொழி கனிமொழியாய் விளங்கும் கவிகூறும்
தமிழ்மொழியால் விளக்கும் பொருட்டு.!

(வாழ்த்துக்கள்.)

பண்புரிஞ்சல் பன்முகப்பு காப்பு இவைமூன்றும்
ஜாவாவில் உள்ள ஊப்சாம்.

பண்புரிஞ்சல் - INHERITENCE
பன்முகப்பு - POLYMORPHISM
காப்பு - ENCAPSULATION.

செய்க துணைவகுப்பு அப்ஸ்ட்ராக்டால் செய்யற்க
துணைவகுப்பு பைனலின் கண்.

(ABSTRACT CLASS CAN BE SUBCLASSED.
final class could not be subclassed.)

(இது எப்டி இருக்கு..?)
நன்றி. குறள்களும் தமிழ் பதங்களும் அழகாக இருக்கின்றன. குறளை முழுத்தமிழிலேயே எழுதியிருந்தால் இன்னும் அருமையல்லவா?

kavitha
10-04-2007, 11:09 AM
ஆஹா ஜாவா தமிழிலா நல்ல படைப்பு தமிழ் நெஞ்சங்கலுக்கு நன்றி
நன்றி வர்சா

pradeepkt
10-04-2007, 12:38 PM
class demostatic{
static int x,y, res;
int a;
static void disp()
{
System.out.println("Accessing without objects");
System.out.println(x+" " +y+ " " + res);
}
public static void main(String arg[])
{
System.out.println(x+" " +y+ " " + res);
demostatic.x = 50;
demostatic.y = 60;
demostatic.res = demostatic.x+demostatic.y;
demostatic.disp();
}
}


அருமையான விளக்கங்கள் கவிதா.
மேற்கண்டவற்றில்
System.out.println(x+" " +y+ " " + res);
இதில் எனக்குத் தெரிந்து பிழைச் செய்தி வர வேண்டும். ஏனெனில் main என்பது எந்த வகுப்புடனும் சேர்ந்த ஃபங்ஷன் இல்லை. எனவே அதில் உபயோகிக்கையில் அந்த மாறி (சோமாறியா :)) எந்த வகுப்பைச் சேர்ந்தது என்று சொல்ல வேண்டும்.

அதே சமயம்
demostatic.disp();
50 + 60 110
இந்த வரி அதைச் சரியாகச் செய்யும். ஏனெனில் இந்த ஃபங்ஷன் அதே வகுப்பைச் சேர்ந்தது. அவ்வளவே..

சரியா கவிதா?

kavitha
24-04-2007, 03:39 AM
சரியாகச் சொன்னீர்கள் பிரதீப். ஆனால் x,y,res இவற்றின் ஆரம்ப மதிப்புகள் 0,0,0 என்றிருக்கும். அதை குளோபல் வேரியபிளாக எடுத்துக்கொண்டு மெயின் மெத்தடானது 0,0,0 என்ற விடையினைத்தரும். ஆனால் டெமோஸ்டேட்டிக் - ன் மதிப்பு அந்த க்ளாஸினால் மட்டுமே எடுத்தாளப்பட்டு அதன் மதிப்பை மட்டுமே பிரதிபலிக்கும். இவைகளைப்பற்றி அடுத்த பாகத்தில் கொடுத்திருக்கிறேன். பாருங்கள். தொடர்ந்து வாசித்து உங்கள் கருத்துக்களை தெரிவியுங்கள்; நன்றி


அடுத்த பாகம் இங்கே http://www.tamilmantram.com/vb/showthread.php?p=196847#post196847