Saturday, March 15, 2014

Access Modifiers


මුලින්ම මම කියන්න කැමතියි ජව programming කරන්න හොඳ IDE එකක් වන NetBeens Download කරගෙන install කරගන්න විදිය කියවෙන video එකක්.මං තමයි නිර්මාණයකරේ.  NetBeens වල ඔයාලට ලේසියෙන් programming කරන්න පලුවන්.
    
අද අපි කතාකරන්න යන්නේ ජාවා වල තියන තවත් වැදගත් දෙයක් වෙන Access Modifier ගැන. අපි      මුලින්ම බලමු මේ Access Modifier කියන්නේ මොනවද කියල. Access Modifier කියල කියන්නේ   OOP තියන programming languages වල class , methods, and other members ලාගෙ  accessibility එක control කරන්න තියන key word වලට තමයි සරලවම කිවොත්.පහත chart එකින් පෙන්නනවා language කිහිපයක Access Modifier වර්ග.

   දැන් අපි බලමු ජව වල තියන Access Modifier මොනවද කියල.
            1)            Default

            2)      Private

            3)      Public

            4)      Protected

Default Access Modifier
Default Access Modifier එකට විශ්ෂ key word එකක් නෑ.අපි නික්කම modifier එකක් නැතිව class,veriable .... එකක් declare කොරොත් එක වැටෙන්නේ default Access Modifier ගණයට තමයි.එහෙම දැම්මම ඒ class,veriable,….. එක access කරන්නන පලුවන් ඒ package එක ඇතුලෙදි විතරයි.අනිත් package ඇතුලේ access කරන්න බෑ.package කියන එක හරියට තරෙන්නේ නැතිව ඇති.එකට කමක් නෑ ඉස්සරහ පදමකදී ඒ ගැන බලමු.නමුත් මේකේ වෙන එක මේ විදියට සරලව තරුම් ගන්න පලුවන්.
package main;

public class ClassA {  
  
   int defaultVar;
}

package main;

public class ClassB {
  public static void main(String[] args) {     
    ClassA a = new ClassA();
    int v2 = a.defaultVar;  // works
  }
}

package other;

public class ClassC {
  public static void main(String[] args) {     
    ClassA a = new ClassA();
    int v2 = a.defaultVar;  // doesn't work
  }
}

public Access Modifier
public කියන key word එක දාල හදන class, method, constructor, interface … ජව universe එකේ තියන ඕනෙම class එකකට access කරන්න පලුවන්.එක නිසා public class  එකක් ඇතුලේ හදන ඕනෙම fields, methods, blocks යන ආදියත් ඕනෙම ජව unirverse එකේ තියන class එකකට access කරන්න පලුවන්.අපි උදාහරණ කිහිපයක් බලමු.

public static void main(String[] arguments) {
   // ...
}

    මේ තියන්නේ ඔයාල හැමෝම දන්නා ජාවා වල main method එක.මේ main method එක ඇතුලේ තමයි අපි run වෙන්න ඕන සියලුම code ලියන්නේ.එකට හේතුව තමයි main method එක declare කරනකොට public කරලා declare කරලා තියනවා.




Private Access Modifier
private කියන key word එක use කරලා අපිට පලුවන් බෝහෝම සාර්ථක විදියට data encapsulate කරන්න.encapsulate කියන්නේ software Engineering වල එන concept එකක්.අපි බලමු encapsulate කියන්නේ මොකක්ද කියල.සරලව කිවොත් access කරන්න දෙන්නේ අවශ දේ පමණයි.private විදියට හදන method ,variables access කරන්න පලුවන්  ඒ class එක ඇතුලේ විතරයි.පහත උදාහරණය බලන්න්න.
public class Car {
   public static void main(String []args){
         van v=new van();
         v.start=true;//work
         v.wheel=4;//can't access
         v.number="GA-2545";//can't access
   }
}

class van{
   private int wheel;
   private String number;
   boolean start;

}

ඔයාලට පේනවා ඇති private veriable දෙක වෙන class එකක තුල object එකක් හදල access කරන්න බැරිබව.අපට එක access කරන ඕනනම් get,set method use කරලා කරන්න පලුවන්.

public class Car {
      public static void main(String []args){
            van v=new van();
            v.setNumber("NU-5588");
            v.setWheel(4);
           
            v.getNumber();
            v.getWheel();
      }
}

class van{
      private int wheel;
      private String number;
      private boolean start;
     
      int getWheel(){
            return wheel;
      }
     
      void setWheel(int wheel){
            this.wheel=wheel;
      }
     
      String getNumber(){
            return number;
      }
     
      void setNumber(String number){
            this.number=number;
      }
     
      boolean getStart(int i){
            if(i==1){
                  return true;
            }else{
                  return false;
            }
      }
     
      void setStart(boolean start){
            this.start=start;
      }

}

Protected Access Modifier 

Protected තමයි තේරුම්ගන්න තරමක් අමාරුම access modifier එක වෙන්නේ.class එකකට හරි attribute ,method එකකට හරි Protected key word එක use කරාම එම class එකට access කරන්න පලුවන්,එම class එක තියන package එකේ තියන අනිත් class වලට access කරන්න පලුවන්,තවදුරත් ඒ class එකින් ඉන්හෙරිට් වෙච්ච class එකකත් access කරන්න පලුවන්.default එකත් එක්ක තියන එකම වෙනස තමයි ඉන්හෙරිට් වූ class වලට protected class access කරන්න පලුවන් වීම.
public class Car extends van{
      public static void main(String []args){
            van v=new van();
            v.number="SP-4578";
            v.wheel=5;
           
            v.speed();
      }
}

class van{
      protected int wheel;
      protected String number;
      protected boolean start;
     
      protected void speed(){
            System.out.println("Speed");
      }
     
      private int stop(){
            return 1;
      }
}
Protected key word එක use වෙන්නේ යම් class එකක class variable වල accessibility එක සුබ class වලට පමණක්මද කියල හරියටම confirm කරගන්න තමයි.
මං හිතන්නේ ඔයාලට ජාවා language එකේ තියන access modifiers කුඩා දැනුමක් මේ පොස්ට් එකින් ලැබෙන්න ඇති කියල.
නැවත අලුත් පාඩමකින් හමුවෙමු......   

No comments: