- Class variables
- Class methods
උදාහරණයට කලින් static methods නැතහොත් class methods ගැනත් බලලම ඉඳිමු. static methods පොදුවේ භාවිතා වන්නේ class එකෙන් objects සෑදීමෙන් තොරව අදාල method එක භාවිතා කිරීමටයි. class එකක් තුල ඇති static variable හි අගයන් පිටතට ගැනීමට(access කිරීමට) මෙම static methods භාවිතා කලයුතු වනවා. මෙම static methods invoke(call) කිරීම සිදුවන්නේ class එකේ නම හරහායි.
දැන් අපි static සංකල්පය යොදාගැනීමට භාවිතා කරන syntax ගැන අධ්යයනය කරමු.
Syntax 1 : Declaring a static variable
[access modifier] static [datatype] [variable__name] ;ex: private static int studID;
Syntax 2 : Declaring a static method
[access modifier] static [datatype] [method__name]()ex: public static int getSum()
දැන් අපි උදාහරණය බලමු
/** *class : StaticDemo *Author : Kanishka Dilshan *Purpose: introduce static keyword in Java *Blog : http://javaxclass.blogspot.com */ class Student { private String name; private int studId; private static int numberOfStudents; public Student(String name){ this.name=name; //generate a new ID and increment the total value by 1 studId=1000+(numberOfStudents++); } public static int getNumberOfStuds(){ return numberOfStudents; } public void showStudDetails(){ System.out.println("Name : " + name); System.out.println("stID : " + studId); } } public class StaticDemo{ public static void main(String args[]){ Student std1=new Student("Sajith"); Student std2=new Student("Kanishka"); Student std3=new Student("Ravindu"); Student std4=new Student("Sathiranga"); std1.showStudDetails(); std2.showStudDetails(); std3.showStudDetails(); std4.showStudDetails(); System.out.println("Total students : " + Student.getNumberOfStuds()); } }ප්රතිඵලය:
මෙහි name හා studId යන ඒවා instance variable වේ. numberOfStudents යන්න static variable එකකි. student ලා කීයක් ඉන්නවද කියන තමයි numberOfStudents එකේ තබාගන්නේ එය object එකින් එකට වෙනස් වන අගයක් නොවේ. එනිසයි අපි numberOfStudents යන්න static ලෙස යොදාගෙන තිබෙන්නේ. තවද මෙහි getNumberOfStuds() යන method එකත් static මොකද එයත් object එකින් එකට වෙනස් වන්නේ නැහැ(මින් අදහස් කිරීමට උත්සාහ කලේ ඔබ්ජෙක්ට් සඳහා අනන්ය ptoperties එම මෙතඩ් එක තුලින් පිවිසිය(access) නොහැකිය යන්නයි.) අනික එම method එක numberOfStudents නම් static variable එකත් access කරනවා. එම නිසා එය static විය යුතුයි. එමනිසා class එකේ නමයොදාගෙන call කිරීම කලහැකියි 41 වන පේලියේදී ඔබට මෙය දැකගත හැකියි.
තවත් OOP සංකල්ප අපි ඉදිරි පාඩමකදී සාකච්ඡා කරමු.
nice explanation about static
ReplyDeletenice work thnx a lotttttttttttt
ReplyDeleteතවද මෙහි showStudDetails() යන method එකත් static මොකද එයත් object එකින් එකට වෙනස් වන්නේ නැහැ Machan methana waraddakk thiyenwa kiyala mata danenwa poddak ethana pahadili karapan .
ReplyDelete@Anonymous February 12, 2014 at 10:44 PM
ReplyDeleteගොඩක් ස්තුතියි මේ වැරදි තැන පෙන්වා දුන්නට. ඒක නිවැරදි වෙන්න ඕන
showStudDetails එක නෙවෙයි getNumberOfStuds() මෙතඩ් එකයි static වෙන්නෙ. getNumberOfStuds මෙතඩ් එක static නිසා අදාල ඔබ්ජෙක්ට් වලට අනන්ය(specific) properties ඒකෙන් ඇක්සස් කරන්න්නෙ නෑ. ඒකයි මම එතන අදහස් කරන්න උත්සාහ කලේ.
නැවත ස්තුතියි එය නිවැරදි කිරීම පිනිස පෙන්වා දුන්නට.
@Anonymous February 12, 2014 at 10:44 PM
ReplyDeleteඑතන නිවැරදි කලා මචන්. ස්තුතියි.