kavitha
24-04-2007, 03:30 AM
எளிய முறையில் ஜாவா - பகுதி 6
இப்பொழுது கீழேயுள்ள ஒரே ஒரு வரியை மட்டும் இணைத்து இயக்கிப் பாருங்கள்.
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();
}
}
பதில் என்ன? ஏன்?
என்று கேட்டிருந்தேன்.
பதில்:-
0 0 0
50 60 110
என்றிருந்திருக்கும்.
கீழ்வரும் நிரலுக்கு என்ன விடை வரும்?
class demostatic{
static int x=2,y=3, res;
int a;
static void disp()
{
System.out.println("Accessing without objects");
System.out.println(x+" " +y+ " " + res);
}
public static void main(String arg[])
{
res = x+y;
System.out.println(x+" " +y+ " " + res);
demostatic.x = 50;
demostatic.y = 60;
demostatic.res = demostatic.x+demostatic.y;
demostatic.disp();
}
}
விடை:-
2 3 5
50 60 110
எனவே static மாறிகள் நிரலின் இறுதிவரை செயல்பாட்டில் இருக்கும்.
சேர்க்கப்பட்டவரியானது வெறும் x,y மாறிகளின் மதிப்புகளைக்கூட்டி விடையைத்தருகிறது.
disp() மெத்தடனாது கொடுக்கப்பட்ட demostatic க்ளாஸின் x,y மாறிகளின் கூட்டிய மதிப்புகளின் விடையைத்தருகிறது.
மாறிலிகள் (constants):-
1. முழு எண் மாறிலிகள்(numeric/integer) - எண்களை மாறா மதிப்புடன் வைத்திருக்க
2. தசம மாறிலிகள்(float/double) = தசம எண்களை மாறா மதிப்புடன் வைத்திருக்க (float = 32bit, double = 64bit)
3. எழுத்து மாறிலிகள்(String/char) = எழுத்து/எழுத்துக்களை மாறா மதிப்புடன் வைத்திருக்க
4. '\' மாறிலிகள்(backslash) = சிறப்புக்குறியீடுகளை உபயோகிக்க
(எ-டு)
1. \n (newline) = புது வெற்று வரியை உருவாக்க
2. \t (tab) = இடைவெளியினை உருவாக்க
3. \b (backspace) = பின்புறம் தள்ள
4. \f (form feed) = முன்புறம் தள்ள
5. \' (single quote) = ஒற்றை மேற்குறியிட
6. \" (double quote) = இரட்டை மேற்குறியிட
7. \0xdd (octal) = எண்மமாக பிரதியிட
8. \0xddd (hexa) = இரட்டைஎண்மமாக பிரதியிட
9. \0uddddd (unicode) = உலகளாவிய எழுத்துருவாக (யுனிகோட்) மாற்ற
இவற்றில் முதல் நான்கும் வெளியீட்டில் (output) அச்சிடாத சிறப்புக் குறியீடுகளாகும்(non-printable); அடுத்த ஐந்தும் '\' ஆல் அச்சிடப்படும் சிறப்புக் குறியீடுகளாகும் (printable).
பிரதியீட்டு மாறிலிகள்(symbolic constants):-
பிரதியீட்டு மாறிலிகள் ஒரு மதிப்பினை குறிப்பிட்ட சொல்லுக்கே அர்ப்பணிக்கப்பயன்படுகிறது. இவ்வகையான மாறிலிகளை தெரிவிக்கும்போது பெரிய ஆங்கில எழுத்துக்களில் பெயரிடல் வேண்டும். அதற்கான
வரைமுறை: final data_type VARIABLE_NAME = value;
(எ.டு) final float PI = 3.14
மாறிகள் (variables) :-
1. முழு எண் மாறிகள்(numeric/integer)
2. தசம மாறிகள்(float/double)
3. எழுத்து மாறிகள்(string/char)
4. ஆம்/இல்லை மாறி (boolean)
ஆரம்ப மதிப்புகள்:- (default values)
byte,short, int = 0
long = 0L
float = 0.0f
double = 0.0d
char = null
boolean = false
தரவு மாற்றி (type casting):-
ஒரு தரவு வகையிலிருந்து மற்றொரு தரவு வகைக்கு ஒரு மாறியை மாற்றுவதற்கு 'டைப் காஸ்ட்டிங்' என்று பெயர்.
வரைமுறை:-
datatype variablename1 = (datatype) variablename2
(எ.டு) int m = 123.45 (இப்போது m-ன் மதிப்பு 123, அதாவது தசம மாறி முழு எண் மாறியாகி இருக்கிறது)
int x = 'A' (இப்போது x ன் மதிப்பு 65, அதாவது எழுத்தானது எண் மதிப்பாக மாற்றப்பட்டுள்ளது)
மாறிகளின் எல்லை(scope):-
1. சொந்த மாறி (local) - கொடுக்கப்பட்ட மெத்தடுக்குள் அதன் செயல்பாடு தற்காலிகமானதாக இருக்கும்.
2. வகுப்பு மாறி (class) - கொடுக்கப்பட்ட வகுப்பிற்குள் அதன் செயல்பாடு வீரியமானதாக இருக்கும். இதை நகல்வகுப்பின்றி அப்படியே இதன் மற்ற மெத்தடுகளிலும் உபயோகிக்கலாம்.
3. நகல்வகுப்பு மாறி (instance) - குறிப்பிட்ட ஆப்ஜெக்டின் எல்லைக்குள் இதன் மதிப்பு வீரியமானதாக இருக்கும். இதனால் ஒவ்வொரு ஆப்ஜெக்ட்டுக்கும் ஒவ்வொரு விதமான மதிப்புகளை மாற்றி அமைக்க முடியும்.
இதற்கு சென்ற பாடத்தில் கொடுக்கப்பட்ட நிரலே சிறந்த உ.ம் ஆகும்.
இயக்கிகளைப்பற்றியும் (operators) அது தொடர்பான சின்னச் சின்ன நிரல்களைப்பற்றியும் (program) அடுத்த பாகத்தில் பார்ப்போம்.
.
இப்பொழுது கீழேயுள்ள ஒரே ஒரு வரியை மட்டும் இணைத்து இயக்கிப் பாருங்கள்.
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();
}
}
பதில் என்ன? ஏன்?
என்று கேட்டிருந்தேன்.
பதில்:-
0 0 0
50 60 110
என்றிருந்திருக்கும்.
கீழ்வரும் நிரலுக்கு என்ன விடை வரும்?
class demostatic{
static int x=2,y=3, res;
int a;
static void disp()
{
System.out.println("Accessing without objects");
System.out.println(x+" " +y+ " " + res);
}
public static void main(String arg[])
{
res = x+y;
System.out.println(x+" " +y+ " " + res);
demostatic.x = 50;
demostatic.y = 60;
demostatic.res = demostatic.x+demostatic.y;
demostatic.disp();
}
}
விடை:-
2 3 5
50 60 110
எனவே static மாறிகள் நிரலின் இறுதிவரை செயல்பாட்டில் இருக்கும்.
சேர்க்கப்பட்டவரியானது வெறும் x,y மாறிகளின் மதிப்புகளைக்கூட்டி விடையைத்தருகிறது.
disp() மெத்தடனாது கொடுக்கப்பட்ட demostatic க்ளாஸின் x,y மாறிகளின் கூட்டிய மதிப்புகளின் விடையைத்தருகிறது.
மாறிலிகள் (constants):-
1. முழு எண் மாறிலிகள்(numeric/integer) - எண்களை மாறா மதிப்புடன் வைத்திருக்க
2. தசம மாறிலிகள்(float/double) = தசம எண்களை மாறா மதிப்புடன் வைத்திருக்க (float = 32bit, double = 64bit)
3. எழுத்து மாறிலிகள்(String/char) = எழுத்து/எழுத்துக்களை மாறா மதிப்புடன் வைத்திருக்க
4. '\' மாறிலிகள்(backslash) = சிறப்புக்குறியீடுகளை உபயோகிக்க
(எ-டு)
1. \n (newline) = புது வெற்று வரியை உருவாக்க
2. \t (tab) = இடைவெளியினை உருவாக்க
3. \b (backspace) = பின்புறம் தள்ள
4. \f (form feed) = முன்புறம் தள்ள
5. \' (single quote) = ஒற்றை மேற்குறியிட
6. \" (double quote) = இரட்டை மேற்குறியிட
7. \0xdd (octal) = எண்மமாக பிரதியிட
8. \0xddd (hexa) = இரட்டைஎண்மமாக பிரதியிட
9. \0uddddd (unicode) = உலகளாவிய எழுத்துருவாக (யுனிகோட்) மாற்ற
இவற்றில் முதல் நான்கும் வெளியீட்டில் (output) அச்சிடாத சிறப்புக் குறியீடுகளாகும்(non-printable); அடுத்த ஐந்தும் '\' ஆல் அச்சிடப்படும் சிறப்புக் குறியீடுகளாகும் (printable).
பிரதியீட்டு மாறிலிகள்(symbolic constants):-
பிரதியீட்டு மாறிலிகள் ஒரு மதிப்பினை குறிப்பிட்ட சொல்லுக்கே அர்ப்பணிக்கப்பயன்படுகிறது. இவ்வகையான மாறிலிகளை தெரிவிக்கும்போது பெரிய ஆங்கில எழுத்துக்களில் பெயரிடல் வேண்டும். அதற்கான
வரைமுறை: final data_type VARIABLE_NAME = value;
(எ.டு) final float PI = 3.14
மாறிகள் (variables) :-
1. முழு எண் மாறிகள்(numeric/integer)
2. தசம மாறிகள்(float/double)
3. எழுத்து மாறிகள்(string/char)
4. ஆம்/இல்லை மாறி (boolean)
ஆரம்ப மதிப்புகள்:- (default values)
byte,short, int = 0
long = 0L
float = 0.0f
double = 0.0d
char = null
boolean = false
தரவு மாற்றி (type casting):-
ஒரு தரவு வகையிலிருந்து மற்றொரு தரவு வகைக்கு ஒரு மாறியை மாற்றுவதற்கு 'டைப் காஸ்ட்டிங்' என்று பெயர்.
வரைமுறை:-
datatype variablename1 = (datatype) variablename2
(எ.டு) int m = 123.45 (இப்போது m-ன் மதிப்பு 123, அதாவது தசம மாறி முழு எண் மாறியாகி இருக்கிறது)
int x = 'A' (இப்போது x ன் மதிப்பு 65, அதாவது எழுத்தானது எண் மதிப்பாக மாற்றப்பட்டுள்ளது)
மாறிகளின் எல்லை(scope):-
1. சொந்த மாறி (local) - கொடுக்கப்பட்ட மெத்தடுக்குள் அதன் செயல்பாடு தற்காலிகமானதாக இருக்கும்.
2. வகுப்பு மாறி (class) - கொடுக்கப்பட்ட வகுப்பிற்குள் அதன் செயல்பாடு வீரியமானதாக இருக்கும். இதை நகல்வகுப்பின்றி அப்படியே இதன் மற்ற மெத்தடுகளிலும் உபயோகிக்கலாம்.
3. நகல்வகுப்பு மாறி (instance) - குறிப்பிட்ட ஆப்ஜெக்டின் எல்லைக்குள் இதன் மதிப்பு வீரியமானதாக இருக்கும். இதனால் ஒவ்வொரு ஆப்ஜெக்ட்டுக்கும் ஒவ்வொரு விதமான மதிப்புகளை மாற்றி அமைக்க முடியும்.
இதற்கு சென்ற பாடத்தில் கொடுக்கப்பட்ட நிரலே சிறந்த உ.ம் ஆகும்.
இயக்கிகளைப்பற்றியும் (operators) அது தொடர்பான சின்னச் சின்ன நிரல்களைப்பற்றியும் (program) அடுத்த பாகத்தில் பார்ப்போம்.
.