Reading Time: 6 minutes

 

ආයුබෝවන්! කොහොමද යාලුවනේ ! object oriented  මීලග පාඩමත් සමගින් ඔන්න මං අදත් ආවා ඔයාල හමුවෙන්න.object oriented මීලග කොටසට ඔයාලා හැමෝම සාදරයෙන් පිලිගන්නවා.කලින් පාඩමේදි අපි කථා කලා constructor overloading ගැන හා this කියන keyword එක ගැන.හැමෝටම මතකයි නේද? පොඩි හරි අමතක වීමක් තියනවනම් කලින් පාඩම ඉක්මනින් බලන් එන්නකෝ.අද නම් මම කලින් පාඩම මතක් කරන්න යන්නෙ නැහැ.ඇයියේ දන්නවද? ඒ තමයි අපි අද බලන්න යන්නෙ object oriented concept එකේ තියෙන අලුත්ම කොටසක් ගැන.ඒ කොටස පටන් ගන්න ඉස්සරින් ඒ ගැන පොඩි හැදින්වීමක් කරන්නම්.ඇත්තටම කියනවනම් අපි මේ ඉදිරියට කථා කරන්න යන කොටස් කිහිපය තමයි object oriented concept එකේ තියෙන වැදගත්ම ටික.ඒ නිසා මේ පාඩම් කිහිපයේ මොකක් හෝ පොඩි අපැහැදිලි තැනක් තිබුනොත් කොමෙන්ටුවක් දාන්න ඕනි හොදේ☺☺

හරි එහෙනං අපි බලමු මොකක්ද අද පාඩම කියලා.මෙතැන් සිට ඉදිරියට අපි කථා කරන්න බලාපොරොත්තු වන්නේ object oriented  concept එකේ තියෙන features කිහිපයක් ගැන.මේවා අපිට  ප්‍රධාන වශයෙන් කොටස් හතරකට වෙන් කරන්න පුලුවන් මෙන්න මේ විදියට.

1. Inheritance

2.Encapsulation

3.polymorphism

4.Interface

කියලා.අද අපි කථා කරන්න යන්නෙ මෙහි පලමු වැන්න ගැන.ඒ කියන්නෙ inheritance ගැන.ඇත්තටම යාලුවනේ මොකක්ද මේ inheritance කියන්නේ.inherit කරනවා කියන එකේ සරලම අදහස තමයි එක පරම්පරාවකින් තවත් පරම්පරාවකට යම් කිසි දෙයක් දායාද කරනවා කරනවා කියන එකයි. හරියට නිකන් මෙන්න මේ වගේ .

එහෙම කිව්වම ඔයාලා බලනවා ඇති කොහොමද මේක programming වලට සම්බන්ධ වෙන්නෙ කියලා. මෙන්න මෙහෙමයි inheritance කියන feature එක programming වලට අපි සම්බන්ධ කර ගන්නෙ.හරි මං උදාහරණයකින්ම පැහැදිලි කරන්නම්කෝ.

දැන් ඔයා හිතන්න ඔයාට කෙනෙක් කියනවා teacher,student හා doctor කියලා object තුනක් හදන්න කියලා.එතකොට ඔයා මොකද කරන්නෙ?ඉස්සරෝම class තුනක් හදනවා teacher , student හා doctor කියලා.ඊට පස්සෙ object තුන හදනවා.code එක ලිව්වොත් මෙන්න මේ වගේ නේද.

class Teacher{
      String name;
      int age;
      String Gender;
      String Designation;
      int salary;

      void eat(){
         // statements
      }
  
      void walk(){
         // statements
      }
  
      void teach(){
         // statements
      }

      void takeExams(){
         // statements
      }
}

class Doctor{
      String name;
      int age ;
      String Gender;
      String Designation;
      String salary;

      void eat(){
           // statements
      }

      void walk(){
           // statements
      }
   
      void ChackUp(){
           //  statements
      }

      void presribe(){
          // statements
      }


}

class Student{
      String name;
      int age;
      String Gender;
      String programe;
      int studyYear;

      void eat(){
           // statements
      }

      void walk(){
          // statements
      }

      void study(){
          // statements
      }

      void heldYear(){
         // statements
      }
}

 // then you can create objects 

class CraateObject{
        public static void main(String s[]){
    
                      // creating teacher object
        
             Teacher teacher1=new Teacher();

                     // creating doctor object
   
             Doctor doctor1=new Doctor();

                    // creating student object
            
             Student student1=new Student();

       }

}

ඔයාලා කරපු ඒ ක්‍රමය හරියටම හරි.කිසිම වැරැද්දක් නෑ.හැබැයි මම කියන දේත් පොඩ්ඩක් අහන්නකෝ.පොඩ්ඩක් හොදට කල්පනාවෙන් ඇස් ඇරලා බලන්නකෝ ඔයා හදපු class තුනම දිහා.class තුනේම එක වගේ attributes සහ methods කීපයක්ම තියනවා නේද?තවත් විදියකින් කිව්වොත් class තුනටම පොදු attributes හා methods කිහිපයක්ම තියනවා .ඒ පොදු attributes හා methods ටික එකම class එකකට ගත්තොත් හොදයි කියලා හිතෙනවා නේද. හරි එහෙනන් අපි class තුනටම පොදු attributes හා methods ටික එකම class එකකට ඇරගෙන ඒ class එකට අපි මොකක් හරි නමක් දෙමු. හරි යාලුවනේ, මම ඒ class එකට නමක් දෙනවා person කියලා.හරි අපි එහෙනන් person class එක හදමුකෝ මෙන්න මේ විදියට .

class Person{
      String name;
      int age;
      String Gender;

      void eat(){
           // statements
      }
   
      void walk(){
           // statements
      }
}

හරි ඔයාලට පේනවා දැන් අපි හදා ගත්තු person class එකේ තියෙන්නෙ class තුනටම පොදු attributes හා methods ටික. හරි ඔය හදාගත්තු person class එකට ඔහොමම තියෙන්න දීලා බලන්නකෝ එක එක class එකේ ඉතිරි වුන attributes හා method දිහා.හොදට බැලුවොත් ඔයාලට පේනවා ඇති යාලුවනේ teacher, doctor හා student කියන class තුනේ ඉතිරි වෙලා තියෙන්නෙ එකිනෙකට අනනයය වු attributes හා methods කියලා. තවත් විදියකින් කියනවනම් ඒ ඒ class වලට අදාල special attributes හා methods ඉතිරි වෙලා තියෙන්නෙ.

හරි අපි දැන් ඒ ඉතිරි වුන attributes හා methods ඒ ඒ අදාල class එකට දාලා අලුත් teacher, student හා doctor කියන class තුන හදා ගමු.

class Teacher{
      String Designation;
      int salary;

      void teach(){
         // statements
      }

      void takeExams(){
         // statements
      }
}

class Doctor{
      String Designation;
      String salary;

       void ChackUp(){
           //  statements
      }

      void presribe(){
          // statements
      }
}

class Student{

      String programe;
      int studyYear;

      void study(){
          // statements
      }

      void heldYear(){
         // statements
      }


}

හරි යාලුවනේ දැන් අපි කරන්න ඕනි අමාරුම වැඩ ටික කරලා ඉවරයි.ඒ කියන්නෙ , class තුනේ තිබුන පොදු attributes හා methods හදුනා ගෙන ඒ ටික එක් class එකකට දා ගත්තා . ඊට පස්සෙ teacher, student හා doctor කියන class තුනට අදාල special attributes හා methods ටික ඒ ඒ class වල වෙන වෙනම තියා ගත්තා. තව පොඩි දෙයයි ඉතිරි වෙලා තියෙන්නේ.ඒ තමයි අපි අර person කියලා class එකක් හදලා, class තුනටම අදාලව තියෙන පොදු attributes හා methods හැම එකක්ම teacher,doctor හා student කියන class තුනටම වෙන වෙනම ගන්න ඕනි නේද? අන්න ඒකට අපි පාවිච්චි කරනවා extends කියන keyword එක.

class Teacher  extends Person{
      String Designation;
      int salary;

      void teach(){
         // statements
      }

      void takeExams(){
         // statements
      }
}

class Doctor extends Person{
      String Designation;
      String salary;

       void ChackUp(){
           //  statements
      }

      void presribe(){
          // statements
      }
}

class Student extends Person{

      String programe;
      int studyYear;

      void study(){
          // statements
      }

      void heldYear(){
         // statements
      }


}


ඔන්න ඔහොම තමයි extends keyword එක පාවිච්චි කරලා එක් class එකක තියෙන attributes සහ methods තවත් class එකකට ගන්නේ.පොදු attributes හා methods තියාගත්ත class එකට අපි කියනවා super class එක කියලා.අපෙ උදාහරණයේ හැටියටනම් super class එක වෙන්නෙ person class එකයි.inherit කරපු class එක එහෙමත් නැත්නම් special attributes හා methods තියාගත්තු class එකට අපි කියනවා sub class එක කියලා.අපෙ උදාහරණයේ නම් sub classes වෙන්නෙ teacher,doctor හා student කියන class තුනයි.
inheritance වරදී inherit වෙලා තියනවා කියලා අපි පෙන්නන්නෙ sub class එකේ ඉඳලා super class එකට ඊතලයක් ඇඳලා.හරියට මෙන්න මේ වගේ.

ඔයාලා මතක තියා ගන්න ඕනි වැදගත්ම කාරණය තමයි sub class එකක් super class එකකින් inherit වෙද්දි super class එකේ තියෙන privet නොවන සියලුම attributes හා methods sub class එකට එනවා කියන එක.ඊට පස්සෙ ඒ ආව attributes හා methods ඔක්කොම sub class එකේ තබුන ඒවා විදියටම තමයි වැඩ කරන්නෙ.කිසිම වෙනසක් නැහැ.ඔන්න ඕකට තමයි යාලුවනේ inheritance කියලා කියන්නේ.හරි යාලුවනේ, ඔයාලට දැනටමත් තේරෙනවා ඇතිනෙ මේ ක්‍රමයේ තියෙන වාසිය.කලින් කුමයේදී නම් ඔයාලා class තුනටම පොදු attributes හා methods ටික තුන් පාරක්ම define කලා නමුත් මේ කුමයේදී නම් define කලේ එක පාරයි.ඔන්න ඕක තමයි inheritance කියන feature එකේ තියන වාසිය.ඔයාගෙ programe එකේ ස්භාවය අනුව ඔයාලට මේ feature එකේ වාසිය ගන්න පුලුවන්.ඔයාගෙ programe එකේ එක එක class වල පොදු attributes හා methods ගොඩක් තියනවනම් inheritance පාවිච්චි කරන එක ඔයාට පට්ට වාසියි නේද.

භරි අපි තවත් විදියකින් inheritance ගැන හිතමුකො.ඒකට මං මෙන්න මේ වගේ උදාහරනයක් ගන්නම්කෝ.හොදට මේ යටින් දීලා තියෙන රූපය බලන්නකෝ.

                       

ඇත්තටම මේකේ තියෙන්නෙ පරම්පරාවල් දෙකක එහෙමත් නැත්නම් generation දෙකක තාක්ෂණයන් එකතු කරලා හදපු ජංගම දුරකථන කීපයක්නෙ.හොදට හිතලා බලන්න කලින් generation එකේ තිබුන දුරකථනයේ features කීපයක් ගැන.ඒ features වලින් දෙකක් අපි ගනිමු call හා message කියලා. අලුත් generation එකේ දුරකථන ගැන බැලුවොත් මේ features දෙක එහෙමම තියනවා කියලා ඔයාලට තේරෙනවා.හැබැයි ඊට අමතරව camera, video ,audio කියලා අලුත් features කීපයකුත් ඇවිත් තියනවා.ඒ කියන්නෙ කලින් generation එකේ තිබුන features ඇරගෙන මීලග generation එක දියුණු කරලා හදලා තියනවා.ඔන්න ඔය දේ programming පැත්තෙන් හිතුවොත් මෙන්න මේ වගේ.එක class එකකින්( super class) inherit කරලා තව class එකක් (sub class) හදනවා ඊට වඩා දියුණු තත්වයේ පවතින.inheritance කියන feature එකින් ඔන්න ඔය අදහසත් කියවෙනවා.

ඔන්න ඔය අදහස් දෙක තමයි inheritance එකෙන් කියවෙන්නෙ.ඇත්තටම කියනවනං inheritance කියන්නේ කලින් class එකේ(super class) තිබුන දේවලුත් දෙවලුත් ඇරගෙන ඊට වඩා හොද class එකක්(sub class) එකක් හදන එකටයි . හැමෝටම තේරෙන්න ඇති කියලා හිතනවා අද පාඩම .inheritance වල තියෙන විශේෂ අවස්තා කීපයක් සමගින් මීලග පාඩමේදී හමුවෙමු.ස්තූතියි!

Categories: OOP

Gayan Sampath

Undergraduate at University of colombo school of computing | Blogger @thesigma.gq

Leave a Reply

Your email address will not be published. Required fields are marked *