1/6/12

Operators and Precedence

අද අපි ජවා Operators ගැන කතා කරමු

Simple Assignment Operator (ආදේශ කිරීම්)

=       Simple assignment operator (මේ operator එකෙන් තමා යම්කිසි සමානකිරීමක් හෝ අගයක් ආදේශ කිරීම වගේ දෙයක් කරන්නේ)

Arithmetic Operators (ගනිත කර්ම)

+       Additive operator (also used
        for String concatenation) (එකතු කිරීමකදි යොදා ගන්නේ මේ operator එකයි .. ඒවගේම String concatenation string දෙකක් එකතු කරන්නත් මේ operator එක යොදා ගන්නවා )
-       Subtraction operator (අඩු කිරීමේ operator  එක )
*       Multiplication operator (ගුනකිරීමේ operator  එක)
/       Division operator (බෙදීම operator  එක)
%       Remainder operator (ඉතිරි අගය ලබා ගැනීමේ operator  එක)

මේ operators වලින් පලමු එක ඇර අනිත් සියලුම operators පාවිච්චි කරන්න පුලුවන් integer හා floating point වර්ගයේ data types සමග පමනයි ඒත්  Remainder operator එක floating point සදහා යොදාගන්න බෑ 

Unary Operators

+       Unary plus operator; indicates
        positive value (numbers are 
        positive without this, however)
-       Unary minus operator; negates
        an expression
ඉහත දැක්වෙන operators දෙක මගින් සංඛ්‍යාවක +/- භාවය එහෙමත් නැත්නම් sign එක දක්වන්න යොදා ගන්නවා ධණ සංඛ්‍යා සදහා + ලකුන විශේසයෙන් යෙදීම අවශ්‍ය වෙන් නෑ 
++      Increment operator; increments
        a value by 1

--      Decrement operator; decrements
        a value by 1
සංඛ්‍යාවක අගය එකකින් වැඩි කිරිමට හෝ අඩු කිරීමට යොදා ගන්නවා .. මෙය හරියට
i=i+1 සමාන වෙනවා .. මෙහිදි විශේශයෙන් මතක තබා ගත යුත්තේ අගය 1 වැඩිවෙනවා හෝ අඩුවෙනවා යන්නයි නැතුව අගය ඒකක එකකින් අඩු වෙනවා හෝ වැඩිවෙනවා නොවෙයි
එම නිසා
float a =5.2f;
a++;
අගය 5.3 වෙන් නෑ 6.2 වෙන්නේ

a = ++i මෙහිදී i ගේ වැඩිවුන අගය තමා a තුලට යන්නේ
a =i++  මෙතන්දි i ගෙ දැන් තිබුනු අගය තමා a තුලට යන්නේ ඊට පසුව තමා i ගෙ අගය වැඩි වෙන්නේ
!       Logical complement operator;
        inverts the value of a boolean

boolean වර්ගයේ අගයක් ප්‍රති අගය ගැනීමට යොදා ගන්නවා .. මතක තියගන්නම ඕනි නම් true නම් false false නම් true 

Equality and Relational Operators

==      Equal to (යම් කිසි අගයන් දෙකක් ස්මානද කියලා බලන්න යොදා ගන්නේ මේ operator එක තමයි)
!=      Not equal to (අගයන් දෙකක් අසමානද කියලා බලන්න යොදාගන්නේ මේ operator එක)

මේ operators දෙකම numerical හා reference කියන type එක්ක භාවිතා කරන්න පුලුවන් නමුත්  reference type එකත් එක්ක භාවිතා වෙද්දි memory location සමානද නැද්ද කියලා විතරයි

>       Greater than
>=      Greater than or equal to
<       Less than
<=      Less than or equal to

වැඩිද ..වැඩි හෝ සමානද ..අඩුද අඩුහෝ සමානද කියලා බලන්න තමා මේ operators භාවිතා වෙන්නේ

මේ ඉහල තියෙන operator හැම එකකින්ම එන ප්‍රතිඵලය boolean අගයක්  

Conditional Operators

&&      Conditional-AND 
තාර්කික and operator එක මේ operator එක සමග යොදන මර්මක වලින් එකක් හරි false උනොත් තව දුරටත් කර්මක ක්‍රියවට නන්වන එක නවත්වලා false අගය ලබා දෙනවා

||      Conditional-OR
තාර්කික or operator එක මේ operator එක සමග යොදන මර්මක වලින් එකක් හරි true උනොත් තව දුරටත් කර්මක ක්‍රියවට නන්වන එක නවත්වලා true අගය ලබා දෙනවා
?:      Ternary (shorthand for 
        if-then-else statement)

වැඩිය භාවිතා වෙන් නති එකක් 
<boolean අගයක් ලබා දෙන ප්‍රකාශයක්>?<ක්‍රියාවක්>:<තවත් ක්‍රියාවක්>

boolean අගයක් ලබා දෙන ප්‍රකාශය true උනොත් ? පස්සෙ තියෙන ක්‍රියාව සිදු කරනවා false නම් : පස්සෙ තියෙන ක්‍රියාව සිදු කරනවා

Type Comparison Operator

instanceof      Compares an object to 
                a specified type 

object සමග භාවිතා වෙන ප්‍රධානතම operator එකක් .. යම් කිසි object එකක් class එකකට දක්වන සබදතාවය පෙන්නනවා .. ඒ කියන්නේ මේ object එක හැදුනේ මේ class එකෙන්ද නැද්ද කියලා හොයාගන්න පුලුවන්

Bitwise and Bit Shift Operators

~       Unary bitwise complement
<<      Signed left shift
>>      Signed right shift
>>>     Unsigned right shift
&       Bitwise AND
^       Bitwise exclusive OR
|       Bitwise inclusive OR

මේ operators නම් 1.4 ඉදලා භාවිතයෙන් ගොඩක් දුරට ඈත් වෙලා

මේ තියෙන්නේ ප්‍රමුඛතා වගුව ඉහල තියන එව්වල ප්‍රමුඛතාවය වැඩියි

Operator Precedence
OperatorsPrecedence
postfixexpr++ expr--
unary++expr --expr +expr -expr ~ !
multiplicative* / %
additive+ -
shift<< >> >>>
relational< > <= >= instanceof
equality== !=
bitwise AND&
bitwise exclusive OR^
bitwise inclusive OR|
logical AND&&
logical OR||
ternary? :
assignment= += -= *= /= %= &= ^= |= <<= >>= >>>=

මේ අන්තිම පේලියෙ තියන += -= *= /= %= ඒවයි සිදුවෙන්නේ operator එක වම් පැත්තේ තියන කර්මකයට දකුනුපැත්තේ තියන කර්මකය සිදු කරලා (+.-.*./) එන අගය නැවත වම්පැත්තේ කර්මකය තුල ගබඩා කරන එකයි
i+=5 කියන්නේ i=i+5  කෙටි කරලා ලිවීමක් තමා මෙතන්දි වෙන්නේ

ඊලග පාඩමෙන් class හා interfaces ගැන කතාකරමු

5 comments:

Kanishka | කණියා said...

ඉන්න ගමං බ්ලොග් එක ගැනත් පොඩ්ඩක් බලපං :D

prabath chathuranga said...

elama ela... Math kamathi paththak...

Hit Man said...

oyage blog eka mama lagadi dakke meke godak igena ganna dewal thiyenawa digatama liyanna api balaanwa

සුදු මහත්තයා said...

එලම එල

අටම්පහුර said...

මටනං ග්‍රීක් වාගේ

Post a Comment