Wednesday, February 17, 2021

Java Programming sinhala tutorial - Abstraction - Part 28

 Abstraction

    OOP concept එකක් වන abstraction මගින් user ට අවශ්‍ය details පමණක් පෙන්නුම් කරන අතර අනවශ්‍ය details hide කරයි. උදාහරණයක් විදියට අපි සලකා බලමු පුද්ගලයෙක් car එකක් driving කිරීම. Car එකෙහි speed එක වැඩි කිරීමට accelerator එක press කල යුතු බව එම පුද්ගලයා දන්නා නමුත් මෙහිදී car එක ඇතුලත සිදු වන process එක එම පුද්ගලයා  දන්නේ නැ.
    Abstraction concept එක අපිට interfaces හා abstract classes මගින් implement කරන්න පුළුවන්.

Abstract Classes & Abstract Methods 

    Abstract classes java hierarchy එකක top level එකේ implementation කල නොහැකි නමුත් methods declare කල යුතු අවස්ථා වලදී භාවිතා කරයි. එනම් fully implementation methods නිර්මාණය කල නොහැකි class මෙලෙස හදුන්වයි. (Abstract නොවන classes අපි concrete classes ලෙස හදුන්වයි)  මෙහිදී පහත කරුණු ගැන සැලකිලිමත් විය යුතුයි.
  • Abstract classes, abstract keyword එක මගින් declare කල යුතුයි.
  • Abstract class එකක method implement කල නොහැකි නම් method abstract කල යුතුය.
  • Abstract method සදහා body එකක් පැවතිය නොහැක.
  • Abstract class වල  abstract method හා  abstract නොවන method තිබිය හැක.
abstract class Vehicle{
      abstract void parkVehicle();
      public void startVehicle(){
            //Implementation
      }
}
  • Abstract class extends කර අලුත් class එකක් නිර්මාණය කල විට  abstract method සියල්ලම implement කල යුතුයි. නොමැති නම් abstract method ලෙසම නිර්මාණය කර subclass එක abstract class එකක් කල යුතුය.
abstract class Vehicle{
      abstract void parkVehicle();
      abstract void startVehicle();
      void stopVehicle(){
            //
      }
}
 
class Van extends Vehicle{
      void parkVehicle(){
            //Implementation
      }
      void startVehicle(){
            //Implementation 
      }
}
abstract class MB extends Vehicle{
 
}
  • Abstract class මගින් object නිර්මාණය කල නොහැක.
abstract class Vehicle{
      abstract void parkVehicle();
}
 
class Demo{
      public static void main(String args[]){
            Vehicle v;
            v = new Vehicle(); // Illegal
      }
}
  • Abstract class එකක abstract methods සියල්ල subclass එකකදී implement කල පසු එම sub class එක මගින් object නිර්මාණය කල හැක. මෙහිදී abstract class type එකෙන් reference variable එක නිර්මාණය කල හැකි අතර sub class එකකදී implement කල methods call වේ.
abstract class Vehicle{
      abstract void parkVehicle();
}
class Car extends Vehicle{
      void parkVehicle(){
            System.out.println("Car parking..");
      }
}
class Demo{
      public static void main(String args[]){
            Vehicle v;
            v = new Car();
            v.parkVehicle();
      }
}
  • Abstract class තුල variable නිර්මාණය කල හැකි අතර abstract variable නිර්මාණය කල නොහැක.
  • Abstract class තුල constructor නිර්මාණය කල හැකි අතර ඒවා abstract නොකළ යුතුයි.
abstract class Vehicle{
      int speed;
      Vehicle(){ // Constructor
            //
      }
      abstract void park();
}
  • Abstract method, static හෝ private හෝ final කල නොහැක.
  • Class hierarchy එකේ abstract class top level එකෙහි මෙන්ම middle level එකෙහි පැවතිය හැක.
Java Interface අපි ඉදිරි ලිපියකින් ඉගෙනගමු.
අපි ඊලග ලිපියෙන් Java Polymorphism ගැන විස්තර ඉගෙන ගනිමු.

- චමෝදි -


Friday, February 12, 2021

Java Programming sinhala tutorial - Encapsulation - Part 27

 Encapsulation

       අද අපි encapsulation ගැන ඉගෙන ගමු. Inheritance වාගේම encapsulation කියන්නෙත් OOP concept එකක්. Data තනි unit එකක් ලෙස සකස් කිරීම encapsulation ලෙස හදුන්වන්න පුළුවන්. මෙය ආරක්ෂක ආවරණයක් වගේ, එම ආවරණයෙන් පිටතින් data access කිරීම වළක්වනවා. උදාහරණයක් විදියට බෙහෙත් කරලක (capsule) ඇතුලත සංකීර්ණ සංයෝග සගවා තිබීම සලකන්න පුළුවන්. 

    Encapsulation හිදී data පමනක් hide කරන අතර ඒ සදහා attributes private කරනු ලබයි. මෙහිදී වෙනත් class එකකට මෙම attributes  access කිරීමට public method නිර්මාණය කල යුතු වේ. ඒවා setters හා getters වේ.



    Encapsulation මගින් ලැබෙන වාසි ලෙස data hide කිරීම, flexibility හා reusability එක වැඩි වීම, unit testing කිරීමට පහසු වීම දක්වන්න පුළුවන්.

අපි ඊලග ලිපියෙන් Java Abstraction ගැන විස්තර ඉගෙන ගනිමු.

- චමෝදි -