12/23/11

Access Modifiers හා Variables

අපි අන්තිමට නැවත්තුවෙ කොතැනද ?
Access Modifiers ගැන

මෙතන්දි අපි

private
protected
{default} -not keyword
public
ගැන කතා කරනවා

private

මේක තමා තියෙන පොඩිම ... වගෙම වැඩිම ආරක්ශාවක් තියෙන්නේ මේ modifier එක යෙදුවා කියන්නේ .. ඒ holder ව use කරන්න පුලුවන් ඒ scope එකේ විතරයි

protected

private වගේ මයි නමුත් .. නමුත් මේක use කරන holder සමග සම්බන්දයක් තියෙන ඕනෙම කෙනෙකුට එයාගෙ scope එක අතුලෙත් use කරන්න පුලුවන්

 default :
මේකට කීවර්ඩ් එකක් නෑ ... මුකුත් modifier එකක් use නොකර තියෙනකොට .. අපිට හම්බ වෙන්නේ මේ modifier  එක ..මේකෙ scope එක package ලෙවෙල් එකේ තියෙන්නේ .. ඒ කියන්නේ එක ෆොල්ඩර් එකක් ඇතුලෙ ඕනෑන කෙනෙකුට ඇක්සස් කරන්න පුලුවන්

public

හ්ම් -scope එක තමා ඕනෑම package එකක කෙනෙකුට ඇක්සස් කරන්න පුලුවන්



ලේසි උදාහරනයක් කිව්වොත් හරියට අපි ඉන්න ගෙදර වගේ ...ගේ ඉස්සහර තියෙන පාරට තියෙන්නේ public access modifier එක ඕනෙ කෙනෙකුට පාවිච්චි කරන්න පුලුවන්
හෙදරට තියෙන්නේ ...   default access modifier එක ... ඔයාගෙ අසල්වැසියන්ට විතරනේ ගෙදරට එන්න පුලුවන්  protected access modifier එක තමා ඔයාගෙ කාමරේට තියෙන්නේ අම්මා තාත්තා අයියා ..මල්ලි නැන්දා මාමා ..පුංචි ..හොදම යාලුවා .. මොකක් හරි සම්බන්දයක් තියෙනවා .. පාරෙ යන අයව අපි කාමරේට දා ගන්නෑ නෙ
ඔන්න ඔයාගෙ කාමරේ තියෙන අල්මාරියට නම් private access modifier එක ඔයාට විතරමයි .. ඒක පාවිච්චි කරන්න පුලුවන්

Variables
variable එකක් කියන්නේ මොකද්ද ? 
Memory locations that are associated with identifier
ඒ කියන්නේ මොකක් හරි identifier එකක් එක්ක සම්භන්ද කරපු memory location එකක්
අපිට මේ memory location එකේ value එක program execution එක  throughout  වෙනස් කරන්න පුලුවන් ජාවා වලදි අපි variableස් type එකක් හරි එහෙමත් නැත්නම් class එකක් විදියට හරි  තමා නිරූපනය කරන්න ඕනි
java  වලින් අපිට basic types 8 (primitive types) ක් දීලා තියෙනවා



byte
short
int 
char
long 
float
double
boolean 

මේ තියෙන්නේ ඒක වගුවක් විදියට


 Java Primitive Data Types
TypeValuesDefaultSizeRange
bytesigned integers08 bits-128 to 127
shortsigned integers016 bits-32768 to 32767
intsigned integers032 bits-2147483648 to 2147483647
longsigned integers064 bits-9223372036854775808 to 9223372036854775807
floatIEEE 754 floating point0.032 bits+/-1.4E-45 to +/-3.4028235E+38,
+/-infinity, +/-0, NAN
doubleIEEE 754 floating point0.064 bits+/-4.9E-324 to
+/-1.7976931348623157E+308,
+/-infinity, +/-0, NaN
charUnicode character\u000016 bits\u0000 to \uFFFF
booleantrue, falsefalse1 bit used in 32 bit integerNA



මේ මුල් 7 ම numerical එව්වා ඒවල size එක පහත විදියට තමා වෙනස් වෙන්නේ
byte < short < int < long < float < double
මතක තියා ගන්න ජාවා fairly strict  type ලැංවේජ් එකක් කියලා ඒ කියන්නේ
int type එකකට string type එකේ value එකක් දාන්න දෙන් නෑ

int i = “hello”;

අනිවාර්යෙන්ම

incompatible types   found: java.lang.String
           required: int
     int i = "hello";
                             ^
දෙනවා

byte
short
int 
long 

කියන types default type එක int


float
double 


වල double


float f = 50.5;
int i =5.3;
byte b =5;


මේ හැම විදියකදිම “lose precision”  error  එක ලැබේවි
මේක නිවරදි කරන්න නම්


float f = (float) 50.5; or 
float f = 50.5f; 
int i =(int)5.3;
byte b =(byte)5;


විදියට cast කිරීම බාවිතා කරන්න වෙනවා


char c = 'a'; 

char c = (char) 94; 

char වලට දාන්න පුලුවන් එක අකුරක් විතරයි ..ඒ නැත්නම් cast කරපු int value එකක් දන්නත් පුලුවන්


boolean b = true; 


boolean  වලට දාන්න පුලුවන්  true හා false  values විතරයි

මතක තියගන්න පිලිවෙල byte < short < int < long < float < double පොඩි එකක ලොකු එකකට දාන්න පුලුවන් ලේසියෙන්ම :P (එහෙමයි නේ)  ලොකු එකක් පොඩි එකකට දාන්න යද්දි cast කරන්න ඕනි


අපි ඊ ලගට Reference Types (or class types) variables ගැන කතා කරමු 

4 comments:

Hasitha Jayasooriya said...

ආව් කොල්ල ඇට්ටි හැලෙන්න දෙනව නේහ්? එල එල ;-)

Nishy said...

Yeapeee.......... :)

Diley said...

wasi machooo..

KK Rajapaksha said...

Pattaa... Pata.. Pata...

Post a Comment