หน้าเว็บ

ການສືບທອດ

ການ​ສືບ​ທອດ

ຄຸນ​ລັກສະນະ​ເດັ່ນ​ປະການ​ໜຶ່ງ​ຂອງ​ການຂຽນ​ໂປຣ​ແກຣມ​ເຊີງ​ອອບ​ເຈັກ​ຄື ຄວາມ​ສາມາດ​ທີ່​ຈະ​ນຳ​ເອົາ​ໂປຣ​ແກຣມທີ່​ອອກ​ແບບ​ໄວ້​ແລ້ວ​ມາ​ໃຊ້​​ໃໝ່​ໄດ້ ​ເຊິ່ງສຳ​ຫລັບ​ໂປຣ​ແກຣມ​ເຊີງ​ກະບວນ​ການຈຳ​ທຳ​ໄດ້​ໂດຍ​ການ​ກຳນົດ​ຄຳ​ສັ່ງ​ທີ່​ຕ້ອງ​ໃຊ້​ດຸ​ໄວ້​ໃນ​ໂປຣ​ແກຣມຍ່ອຍ (ຟັງ​ຊັນ ຫລື Procedure) ​ເຊິ່ງຈະ​ມີ​ຄວາ​ມຊັບຊ້ອນ​ໃນ​ການ​ອອກ​ແບບ​ເພື່ອ​ໃຫ້​ໄດ້​ໂປຣ​ແກຣມຍ່ອຍ​ທີ່​ເໝາະ​ສົມ​ເຮັດ​ໃຫ້ການ​ນຳ​ໂປຣ​ແກຣມມາ​ໃຊ້​ໃໝ່​ຂອງ​ໂປຣ​ແກຣມ​ເຊີງ​ກະບວນ​ການ​ຄ່ອນ​ຂ້າງ​ຈະ​ເປັນ​ໄດ້​ຍາກ​ກວ່າ ​ແລ​ະ​​ເມືອ​ໂປຣ​ແກຣມມີ​ຄວາມ​ຊັບຊ້ອນ​ຂຶ້ນ​ການ​ນຳ​ໂປຣ​ແກຣມມາ​ໃຊ້​ໃໝ່​ກໍ່​ເປັນ​ໄປ​ໄດ້​ຍາກ​ຂຶ້ນ ​ເນື່ອງ​ຈາກ​ເຮົາ​ບໍ່​ສາມາດ​ອອກ​ແບບ​ໂປຣ​ແກຣມຄວບ​ຄຸມ​ປັນຫາ​ທັງ​ໝົດ​ໄວ້​ລ່ວງ​ໜ້າ​ໄດ້
      ວິທີ​ການ​ນຳ​ໂປຣ​ແກຣມມາ​ໃຊ້​ໃໝ່​ຂອງ​ໂປຣ​ແກຣມ​ເຊີງ​ອອບ​ເຈັກ ຈະ​ໃຊ້​ຫລັກການ​ຂອງ​ການ​ສືບ​ທອດ ​ເຊິ່ງ​ເປັນ​ການ​ນິຍາມ​ຄາດ​ໃໝ່​ຈາກ​ຮູບ​ແບບ​ຂອງ​ຄາດ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ ​ໂດຍ​ຄາດ​ໃໝ່​ຈະ​ນຳ​ຄຸ​ນລັກສະນະ​ແລະ​​ເມ​ທອດ​ຂອງ​ຄາດ​ເກົ່າ​ມາ​ໃຊ້​​ໄດ້ ​ໂດຍ​ທົ່ວ​ໄປ​ຄາດ​ຕ່າງໆ ທີ່​ມີ​ຢູ່​ຈະ​ມີ​ໂຄງ​ສ້າງ​ທີ່​ມີ​ຄວາມ​ສຳພັນ​ກັນ​ຕາມ​ລຳດັບ​ຊັ້ນ ​ເຮົາ​ສາມາດ​ທີ່​ຈະ​ອອກ​ແບບ​ໂປຣ​ແກ​ຣມ​ເຊີງ​ອອບ​ເຈັກ​ເພື່ອ​ສ້າງ​ຄາດ​ທີ່​ເປັນ​ຄາດ​ແບບ​ທົ່ງ​ໄປ ​(Generalized Class) ເຊິ​ງຈະ​ມີ​ຄຸນ​ລັກສະນະ​ແລະ​ເມ​ທອດ​ເພື່ອ​ໃຫ້​ຄາດ​ອື່ນໆ ທີ່​ເປັນ​​ຄາດ​ສະ​ເພາະ (Specific Class) ສືບ​ທອດ​ໄດ້ ຄາດ​ທີ່​ເປັນ​ຄາດ​ແບບ​ທົ່ວ​ໄປ​ຈະ​​ເອີ້ນ​ວ່າ​ເປັນ superclass ຫລື parent classສ່ວນ​ຄາດ​ທີ່​ເປັນ​ຄາດ​ສະ​ເພາະ​ທີ່​ສື​ບທອດ​ມາ​ຈະ​ເອີ້ນ​ວ່າ​ເປັນ subclass ຫລື child class
     ຮູບ​ທີ 4.8 ສະ​ແດງ​ຕົວຢ່າງ​ຂອງ​ຄາດ​ທີ່​ໃຊ້​ຫລັກການ​ຂອງ​ການ​ສືບ​ທອດ ຕົວຢ່າງ​ນີ້​ຈະ​ມີ​ຄາດ ​Student ເປັນ​ຄາດ​ແບບ​ທົ່ວ​ໄປ​ແລະ​ມີ​ຄາດ GradStudent ,PartTimeStudent ​ແລະ FullTimeStuedent ສືບ​ທອດ​ຈາກ​ຄາດ ​Student ແລະ​ຄາດ PhDStudent ​ຈະ​ສືບ​ທອດ​ຈາກ​ຄາດ GradStudent ອີກ​ຊັ້ນ​ໜຶ່ງ ການ​ສືບ​ທອດ​ຈະ​ມີ​ຜົນ​ນ​ໃຫ້​ຄຸນ​ລັກສະນະ​  ແລະ​ເມ​ທອດ​ຂອງ Superclass ສືບ​ທອດ​ໄປ​ຍັງ Subclass ຕົວຢ່າງ​ເຊັ່ນ ຖ້າ​ຄາດ Student ​ໃນ​ຮູບ​ທີ 4.8 ມີ​ຄຸນ​ລັກສະນະ id, name, gpa ​ແລະ MIN_GPA ​ແລະ​ມີ​ເມ​ທອດ setId (), setName (), setGpa () ​ແລະ showDetails () ຄາດ GradStudent, PartTimeStudent ​ແລະ FullTimeStudent ກໍ່​ຈະ​ສື​ບທອດ​ຄຸນ​ລັກສະນະ​ແລະ​ເມ​ທອດ​ເຫລົ່າ​ນັ້ນ​ມາ​ດ້ວຍ​ນອກຈາກ​ນີ້​ຄາດ PhDStudent ທີ່​ສື​ບທອດ​ຈາກ​ຄາດ GradStudent ກໍ່​ຈະ​ໄດ້​ຮັບ​ຄຸນ​ລັກສະນະ​ແລະ​ເມ​ທອດ​ທີ່​ສືບ​ທອດ​ມາ​ຈາກ​ຄາດ Student ທີ່​ເປັນ superclass ຂອງ​ຄາດ GradStudent ດ້ວຍ
      ຂໍ້​ດີ​ຂອງ​ການ​ສືບ​ທອດ​ຄື ຄວາມ​ສາມາດ​ໃນ​ການ​ທີ່​ຈະ​ນຳ​ໂປຣ​ແກຣມ​ເກົ່າ​ມາ​ພັດທະນາ​ເພີ່ມ​ເຕີມ​ໃໝ່​ໄດ້​ງ່າຍ​ຂຶ້ນ ​ແລະ​ຍັງ​ຊ່ວຍ​​ເຮັດ​ໃຫ້​ໂປຣ​ແກ​ຣມ​ແຕ່​ລະ​​ໂປຣ​ແກຣມມີ​ຂະໜາດ​ນ້ອຍ ​ເຊິ່ງ​ເຮັດ​ໃຫ້​ງ່າຍ​ຕໍ່​ການ​ເຂົ້າ​ໃຈ​ແລ​ການ​ປັບປຸງ​ແກ້​ໄຂ​ໂປຣ​ແກຣມທຳ​ໄດ້​ງ່າຍ​ຂຶ້ນ ​ໂດຍ​ໃນ​ພາສາ​ຈາ​ວາ​ຈະ​ໃຊ້​ຄີ​ເວີ​ດ ​ເພື່ອ​ລະບຸ​ການ​ສືບ​ທອດ ​ໂປຣ​ແກຣມທີ 4.4 ສະ​ແດງ​ຕົວຢ່າງ​ຂອງ​ຄາດ​ທີ່​ໃຊ້​ຫລັກການ​ໃນ​ການ​ສືບ​ທອດ​ຕາມ​ໃດ​ອະ​ແກຣມຂອງ​ຄາດ​ໃນ​ຮູບທີ 4.8



ຮູບ​ທີ 4.8 ຕົວຢ່າງ​ຂອງ​ຄາດ​ທີ່​ໃຊ້​ຫລັກການ​ຂອງ​ການ​ສືບ​ທອດ














​ໂປຣ​ແກຣມທີ 4.4 ​ຕົວຢ່າງ​ການ​ໃຊ້​ງານ​ຫລັກກາ​ນ​ໃນ​ການ​ສືບ​ທອດ
public class PartTimeStudent extends Student { }
------------------------------------------------------
public class FullTimeStudent extends Student { }
------------------------------------------------------
public class GradStudent extends Student {
    private String thesisTitle;
    private String supervisor;
    public void setThesisTitle(String t) {
        thesisTitle = t;
    }
    public void setSupervisor(String s) {
        supervisor = s;
    }
}
------------------------------------------------------
public class PhDStudent extends GradStudent {
    public boolean passQualify;
    public boolean isPassQualify() {
        return passQualify;
    }
}
 
 
























4.3.3 ການ​ມີ​ໄດ້​ຫລາຍ​ຮູບ​ແບບ
       ຫລັການ​ຂອງ​ການ​ມີ​ໄດ້​ຫລາຍ​ຮູບ​ແບບ​ຄື ຄຸນ​ສົມ​ບັດ​ຂອງ​ໂປຣ​ແກຣມ​ເຊີງ​ອອບ​ເຈັກ​ທີ່​ສາມ​າດຕອບ​ສະໜອງ​ຕໍ່​ຂ່າວສານ (​ເມ​ທອດ) ດຽວ​ກັນ​ດ້ວຍ​ວິທີ​ການ​ທີ່​ຕ່າງ​ກັນ ​ແລະ​ສາມາດ​ກຳນົດ​ອອບ​ເຈັກ​ໄດ້​ຫລາຍ​ຮູບ​ແບບ ຫລັກການ​ຂອງ​ການ​ມີ​ໄດ້​ຫລາຍ​ຮູູບ​ແບບ​ເປັນ​ຫລັກການ​ທີ່​ສືບ​ທອດ​ເນື່ອງ​ຈາກ​ຫັລການ​ຂອງ​ການ​ສືບ​ທອດ​ຕົວຢ່າງ​ເຊັ່ນ ຮູບ​ທີ 4.9 ມີ​ຄາດ Ball ​ເຊິ່ງ​ເປັນ superclass ຂອງ​ຄາດ SoccerBall ​ແລະ TennisBall

ຮູບ​ທີ 4.9 ຕົວຢ່າງ​ຂອງ​ຄາດ Ball

      ຄາດ Ball ອາດ​ມີ​ເມ​ທອດ ​throwBall () ເພື່ອ​ກຳນົດ​ພຶດຕິ​ກຳ​ການ​​ໂຍນ​ລູກບານເຊິ​ງ subclass ທີ່​ຊື່ ​SoccerBall ແລະ TennisBall ອາດ​ກຳນົດ​ວິທີ​ການ​ໂຍນ​ລູກ​ບານ​ແຕ່​ລະ​ຊະນິດ​ທີ່​ແຕກຕ່າງ​ກັນ​ກ່າວ​ຄື​ຂຽນ​ຄຳ​ສັ່ງ​ໃນ​ເມ​ທອດ throwBall () ສືບ​ທອດ​ມາ​ດ້ວຍ​ຊຸດ​ຄຳ​ສັ່ງ​ທີ່​ຕ່າງ​ກັນ​ດັ່ງ​ສະ​ແດງ​​ໃນ​ຮູບ​ທີ 4.5 ຫລັກການ​ຂອງ​ການ​ມີ​ບໍ່​ໄດ້​ຫລາຍ​ຮູບ​ແບບ​ຍັງ​ລວມ​ໄປ​ເຖິງ​ຄວາມ​ສາມາດ​ທີ່​ຈະ​ອ້າງ​ອີງ​ອອບ​ເຈັກ​ທີ່​ສືບ​ທອດ​ມາ​ໄດ້​ຫລາຍ​ຮູບ​​ແບບ ຕົວຢ່າງ​ເຊັ່ນ​ຄາດ SoccerBall ທີ່​ສືບ​ທອດ​ມາ​ຈາກ​ຄາດ Ball ສາມາດ​ທີ່​ຈະ​ອ້າງ​ອີງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ ​SoccerBall ໄດ້​ທັງ​ໃນ​ຮູບ​​ແບບ​ຂອງ SoccerBall ຫລື Ball ​ໄດ້​ຕົວຢ່າງ​ເຊັ່ນ​ຄຳ​ສັ່ງ

          SoccerBall b2 = new SoccerBall();
          Ball b3 = new SoccerBall();
   
     ​ເຊິ່ງຂໍ້​ດີ​ຂອງ​ການ​ໃຊ້​ຫລັກການ​ຂອງ​ການ​ມີ​ໄດ້​ຫລາຍ​ຮູບ​ແບບ​ຄື ​ເຮັດ​ໃຫ້​ໂປ​ຣ​ແກຣມສາມາດ​ປັບ​ປ່ຽນ​ຫລື​ເພີ່ມ​ເຕີມ​ໄດ້​ງ່າຍ​ຂຶ້ນ








ໂປຣ​ແກຣມທີ 4.5 ຕົວຢ່າງ​ການ​ໃຊ້​ຫລັກການ​ຂອງ​ການ​ມີ​ໄດ້​ຫລາຍ​ຮູບ​ແບບ
Text Box: public class Ball {
    public void throwBall() { }
}
--------------------------------------------------------------
public class SoccerBall extends Ball {
    public void throwBall() {
        System.out.println(“Throwing soccerball”);
    }
}
--------------------------------------------------------------
public class TennisBall extends Ball {
    public void throwBall() {
        System.out.println(“Throwing tennisball”);
    }
}
--------------------------------------------------------------
public class TestBall {
    public static void main(String args[]) {
        Ball b1 = new Ball();
        SoccerBall b2 = new SoccerBall();
        Ball b3 = new SoccerBall();
    }
}
 


























4.4 ການ​ຂຽນ​ໂປຣ​ແກຣມ​ເຊີງ​ອອບ​ເຈັກ​ເພື່ອ​ສ້າງ​ຄາດ​ແບບ ​abstract ແລະ​ອິນ​ເຕີ​ 
    ເຟດ
     ​ໂປຣ​ແກຣມ​ເຊີງ​ອອບ​ເຈັກນອກ​ເໜືອ​ຈາກ​ການ​ນິຍາມ​ຄາດ​ແລ້ວ ​ໃນ​ບາງ​ກໍລະນີ​ເຮົາ​ອາດ​ຈຳ​ເປັນ​ທີ່​ຈະ​ຕ້ອງ​ນິຍາມ​ເມ​ທອດ​ຕ່າງໆ ພາຍ​ໃນ​ຄາດ​ຂຶ້ນ​ມາ​ກ່ອນ​ໄດ້ ​ໂດຍ​ຍັງ​ບໍ່​ຕ້ອງ​ລະບຸ​ຄຳ​ສັ່ງ​ຫລື​ວິທີ​ການ​ຂອງ​ຄາດ​ນັ້ນ ​ເຊັ່ນ ​ເຮົາ​ອາດ​ຕ້ອງກາ​ນກຳນົດ​ຄາດ​ຊື່ Vehicle (ຍານ​ພາຫາ​ນະ) ​ເຊິ່ງອາດ​ມີ​ເມ​ທອດ​ທີ່​ຊື່ move () ຢູ່​ທັງ​ນີ້​ອາດ​ມີ​ຄາດ​ອື່ນໆ ທີ່​ຈະ​ສືບ​ທອດ​ຈາກ ​Vehicle ເຊັ່ນ Car ຫລື Motorbike ​ເຊິ່ງຈະ​ມີ​ວິທີ​ການ​ຫລື​ຄຳ​ສັ່ງ​ໃນ​ການ move () ທີ່​ແຕກ​ຕ່າງ​ກັນ​ພາສາ​ຈາ​ວາ​ໄດ້​ກຳນົດ​ຄາດ​ລັກສະນະ​ນີ​ໄວ້​ສອງ​ແບບ​ຄື ຄາດ​ແບບ abstract ​ແລະ​ອິນ​ເຕີ​ເຟດ

4.4.1  ຄາດ​ແບບ abstract
         ຄາດ​ທີ່​ມີ modifier ​ເປັນ abstract ຈະ​ໝາຍ​ຄວາມ​ວ່າ​ຄາດ​ນັ້ນ​ຍັງ​ເປັນ​ຄາດ​ທີ່​ບໍ່​ສົມບູນ ​ໂດຍ​ມີ​ເມ​ທອດ​ແບບ ​abstract ເຊິ່ງ​ເປັນ​​ເມ​ທອດ​ທີ່​ຍັງ​ບໍ່​ສົມບູນ​ຢ່າ​ງນ້ອຍ​ໜຶ່ງ​ເມ​ທອດ​ຢູ່​ໃນ​ຄາດ ​ເມ​ທອດ​ແບບ abstract ຈະ​ມີ​ຮູບ​ແບບ​ການ

ປະກາດ​ດັ່ງ​ນີ້
     [modifier] abstract return_type methodName([arguments]);
 
 


   ທັງ​ນີ້​ເມ​ທອດ​ແບບ ​abstract ເປັນ​ເມ​ທອດ​ທີ່​ຍັງ​ບໍ່​ສົມບູນ ​ເນື່ອງ​ຈາກ​ບໍ່​ມີ​ບ໋ອກຄຳ​ສັ່ງ ({ })ຢູ່​ພາຍ​ໃນ​ເມ​ທອດ​ໂປຣ​ແກຣມ 4.6 ສະ​ແດງ​ຕົວຢ່າງ​ຂອງ​ຄາດ Student ທີ່​ເປັນ​ຄາດ​ແບບ abstract ຄາດ​ນີ້​ຈະ​ມີ​ເມ​ທອດ showDetails () ​ເຊິ່ງ​ເປັນ​ເມ​ທອດ​ແບບ abstract ຢູ່​ພາຍ​ໃນ​ຄາດ

ໂປຣ​ແກ​ຣມທີ 4.6 ຕົວຢ່າງ​ຄາດ​ແບບ abstract
Text Box: public abstract class Student {
     protected String id;
     protected String name;
     protected double gpa;
     public void setId(String ID) {
         id = ID;
     }
     public void setName(String n) {
         name = n;
     }
     public void setGpa(double GPA) {
         gpa = GPA;
     }
     public abstract void showDetails();
}
 
















     ຄາດ​ແບບ abstract ກຳນົດ​ຂຶ້ນ​ມາ​ເພື່ອ​ໃຫ້​ຄາດ​ອື່ນ​ສື​ບທອດ ​ໂດຍ​ຄາດ​ທີ່​ມາ​ສືບ​ທອດ​ຈະຕ້ອງ​ກຳນົດ​ບ໋ອກຄຳ​ສັ່ງ​​ໃນ​ເມ​ທອດ​ທີ່​ຍັງ​ບໍ່​ສົມບູນ ທັງ​ນີ້​ເຮົາ​ສາມາດ​ຈະ​ສ້າງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ແບບ ​abstract ໄດ້​ໂປຣ​ແກຣມທີ 4.7 ສະ​ແດງ​ຕົວຢ່າງ​ຂອງ​ຄາດ FullTimeStudent ທີ່​ສືບ​ທອດ​ມາ​ຈາກ​ຄາດ Student ຄາດ​ນີ້​ຈະ​ຕ້ອງການ​ກຳນົດ​ບ໋ອກຄຳ​ສັ່ງ​ໃນ​ເມ​ທອດ showDetails () ​ເພື່ອ​​ເຮັດ​ໃຫ້​ເປັນ​ເມ​ທອດ​ທີ່​ສົມບູນ ​ເຊິ່ງຈະ​ເຮັດ​ໃຫ້​ຄາດ FullTimeStudent ​ເປັນ​ຄາດ​ທີ່​ສາມາດ​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ໄດ້ ອັນ​ໜຶ່ງ​ເຖິງ​ວ່າ​ເຮົາບໍ່​ສາມາດສ້າງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ ​Student ໄດ້​ແຕ່​ເຮົາ​ສາມາດ​ປະກາດ​ອອບ​ເຈັກ​ຂອງ​ຄາດ ​Student ແລະ​ສ້າງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ ​FullTimeStudentໄດ້​ຕາມ​ຫລັກການ​ຂອງ​ການ​ມີ​ໄດ້​ຫລາຍ​ຮູບ​ແບບ​ດັ່ງ​ນີ້​
       Student s1 = new FullTimeStudent();

ໂປຣ​ແກ​ຣມທີ 4.7 ຕົວຢ່າງ​ຄາດ​ທີ່​ສືບ​ທອດ​ມາ​ຈາກ​ຄາດ​ແບບ abstract
Text Box: public class FullTimeStudent extends Student {
     private int credit;
     private final int MAX_YEAR = 4;
     public FullTimeStudent(int c) {
          credit = c;
     }
     public void showDetails() {
          System.out.println("ID: "+id);
          System.out.println("Name: "+name);
          System.out.println("GPA: "+gpa);
          System.out.println("Credit: "+credit);
     }
}
 
















4.4.2  ອິນ​ເຕີ​ເຟດ
       ອີນ​ເຕີ​ເຟດ (interface) ມີ​ລັກສະນະ​ຄ່າ​ຍກັບ​ຄາດ​ແບບ ​abstract ແຕ່​ຈະ​ປະກອບ​ດ້ວຍ​ເມ​ທອດ​ທີ່​ຍັງ​ບໍ່​ສົມບູນ​ເທົ່າ​ນັ້ນ ​ໂດຍ​ມີ​ຮູບ​​ແບບ
      [modifier] interface InterfaceName {
           [methods();]
      }
 
 



​ໂດຍ​ທີ່
  • InterfaceName ຄື​ຊື່​ຂອງ​ອິນ​ເຕີ​ເຟດ
  • ​Methods () ເປັນ​ເມ​ທອດ​ທີ່​ຍັງ​ບໍ່​ສົມບູນ​ເຊັ່ນ​ດຽວ​ກັບ​ເມ​ທອດ​ແບບ ​abstract ແຕ່​ບໍ່​ຕ້ອງ​ໃຊ້​ຄີ​ເວີ​ດ abstract

    ​ໂປຣ​ແກ​ຣມທີ່ 4.8 ສະ​ແດງຕົວຢ່າງ​ຂອງ​ກໍລະນີ​ກຳນົດ​ອິນ​ເຕີ​ເຟດ Student ອິນ​ເຕີ​ເຟດນີ້​ຈະ​ມີ​ເມ​ທອດ 4​ ເມທອດ​ທີ່​ຍັງ​ບໍ່​ມີ​ບ໋ອກຄຳ​ສັ່ງ​ຄື​ເມ​ທອດ setId (), setName, setGpa ​ແລະ showDetails ()

ໂປຣ​ແກຣມທີ 4.8 ຕົວຢ່າ​ງອິນ​ເຕີ​ເຟດ
public interface Student {
     public void setId(String ID);
     public void setName(String n);
     public void setGpa(double GPA);
     public void showDetails();
}
 
 









    ອິນ​ເຕີ​ເຟດກຳນົດ​ຂຶ້ນ​ມາ​ເພື່ອ​ໃຫ້​ຄາດ​ອື່ນ​ນຳ​ໄປ​ໃຊ້​ງານ​ໂດຍ​ໃຊ້​ຄີ​ເວີ​ດ ​implements ໂດຍ​ມີ​ຮູບ​ແບບ​ດັ່ງ​ນີ້
        [modifier] class ClassName implements InterfaceName {
            [methods();]
        }
 
 





     ​ໂປຣ​ແກຣມທີ 4.9 ​ໄດ້​ສະ​ແດງ​ຜົນ​ຢ່າງ​ຂອງ​ຄາດ PartTimeStudent ທີ່ implements ອິນ​ເຕີ​ເຟດ Student ຄາດ​ທີ່ implements ອິນ​ເຕີ​ເຟດຈະ​ຕ້ອງ​ຂຽນ​ບ໋ອກຄຳ​ສັ່ງ​ໃນ​ເມ​ທອດ​ທຸກ​ເມ​ທອດ​ທີ່​ກຳນົດ​ໄວ້​ໃນ​ອິນ​ເຕີ​ເຟດ ​ເພື່ອ​​ເຮັດໃຫ້​ເມ​ທອດ​ເຫລົ່າ​ນີ້​ສົມບູນ ​ແລະ​ສາມາດ​ສ້າງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ສະ​ນັ້ນ​ໄດ້
      ອິນ​ເຕີ​ເຟດຈະ​ຄື​ກັບ​ຄາດ​ແບບ abstract ກົງ​ທີ່​ເຮົາ​ຈະ​ບໍ່​ສາມາດ​ສ້າງ ອອບ​ເຈັກ​ຂອງ​ອິນ​ເຕີ​ເຟດ​ໄດ້​ປະ​ໂຫຍ​ດຂອງ​ອິນ​ເຕີ​ເຟດກໍ່​ຄື​ການ​ກຳນົດ​ຮູບ​ແບບ​ຂອງ​ເມ​ທອດ​ຕ່າງໆ ທີ່​ຄາດ​ອື່ນໆ ຈະ​ຕ້ອງ implements ​ໄວ້​ລ່ວງ​ໜ້າ ​ເຊິ່ງສາມາດ​ອາ​​ໃສ​ຫລັກການ​ຂອງ​ການ​ມີ​ໄດ້​ຫລາຍ​ຮູບ​ແບບ​ມາ​ເອີ້ນ​ໃຊ້​ເມ​ທອດ​ເຫລົ່າ​ນັ້ນ​ໄດ້​ຈາກ​ຄາດ​ທີ implements ອິນ​ເຕີ​ເຟດ​ເຊັ່ນ ຄຳ​ສັ່ງ
        Student s1 = new PartTimeStudent(6);
        s1.setId(“1111”);
        s1.setName(“Thana”);
        s1.setGpa(3.00);
        s1.showDetails();

     ອິນ​ເຕີ​ເຟດຍັງ​ຊ່ວຍ​ໃນ​ການ​ສືບ​ທອດ​ແບບ​ຫລາຍ​ຄາດ​ໄດ້ (Multiple Inheritance) ​ເນື່ອງ​ຈາ​ພາສາ​ຈາ​ວາ​ກຳນົດ​​ໃຫ້​ຄາດ​ໃດໆ ສາມາດ​ສືບ​ທອດ​ຄາດ​ອື່ນ​ໄດ້​ພຽງ​ຄາດ​ດຽວ​​ເທົ່າ​ກັນ ​ແຕ່​ຈະ​ສາມາດ implements ອິນ​ເຕີ​ເຟດ​ໄດ້​ຫລາຍ​ອິນ​ເຕີ​ເຟດ ​ເຊັ່ນ
            public class MyApplet extends Applet implements
                             MouseListener,ActionListener {
                  ...
            }

    ​ເປັນ​ໂປຣ​ແກຣມຈາ​ວາ​ແອ​ບ​ເພດ​ທີ່​ສືບ​ທອດ​ມາ​ຈາກ​ຄາດ Applet ​ແຕ່​ຂະນະ​ດຽວກັນ​ເປັນ​ຄາດ​ທີ່ implements ອິນ​ເຕີ​ເຟດ MouseListener ​ແລະ ActionListener ​ເປັນ​ຕົ້ນ















ໂປຣ​ແກຣມທີ 4.9 ຕົວຢ່າງ​ຄາດ​ implements ອິນ​ເຕີ​ເຟດ

Text Box: public class PartTimeStudent implements Student {
     private String id;
     private String name;
     private double gpa;
     private int credit;
     private final int MAX_YEAR = 8;
     public PartTimeStudent(int c) {
          credit = c;
     }
     public void setId(String ID) {
          id = ID;
     }
     public void setName(String n) {
          name = n;
     }
     public void setGpa(double GPA) {
          gpa = GPA;
     }
     public void showDetails() {
          System.out.println(“ID: “+id);
          System.out.println(“Name: “+name);
          System.out.println(“GPA: “+gpa);
          System.out.println(“Credit: “+credit);
     }
}
 































4.5 ​​ແພັກ​ເກດ
     ​​ແພັກ​ເກດ​ຈະ​ເປັນ​ທີ່​ລວບ​ລວມຄາດ​ແລະ​ອິນ​ເຕີ​ເຟດຕ່າງໆ​ ທີ່​ມີໜ້າ​ທີ່​ການ​ທຳ​ງານ​ຄ່າ​ຍກັນ​ໄວ​​ໃນ​ທີ່​ດຽວ​ກັນ ​ໂດຍ​ທົ່ວ​ໄປ​ໂປຣ​ແກຣມພາສາ​ຈາ​ວາ​ຈະ​ປະກ​ອບ​ໄປ​ດ້ວຍ​ຄາດ​ຫລາຍ​ຄາດ​ທີ່​ປະກາດຢູ່​​ໃນ​ໂປຣ​ແກຣມ​ໄຟ​ຕ່າງໆ ​ໄຟ​ໂປຣ​ແກຣມພາສາ​ຈາ​ວາ​ແຕ່ລະ​​ໄຟ​ອາດ​ມີ​ຄາດ​ທີ່​ປະກາດ​ໄວ້​ຫລາຍ​ຄາດ​ໄດ້ ​ແຕ່​ຈະ​ມີ​ຄາດ​ທີ່​ມີ ​access modifier ເປັນ public ​ໄດ້​ພຽງ​ຄາດ​ດຽວ ​ເຊິ່ງວິ​ທີການ​ປະຕິບັດ​ທີ່​ນິຍົມ​ໃຊ້​ຄື​ການ​ກຳນົດ​ໃຫ້​ໃນ​ແຕ່ລະ​ໂປຣ​ແກຣມ​ໄຟ​ມີ​ຄາດ​ພຽງ​ຄາດ​ດຽວ ​ໂດຍ​ມີ​ຊື່​​ໄຟ​ເປັນ​ຊື່​ດຽວ​ກັບ​ຊື່​ຄາດ
     ການຈັດ​ລະບົບ​ໄຟ​ແລະ​ຄາດ​ຈຶ່ງ​ຈຳ​ເປັນ​ຢ່າງ​ຍິ່ງ​ສຳ​ຫລັບ​ການ​ພັດທະນາ​ໂປຣ​ແກຣມຂະໜາດ​ໃຫຍ່​ເຮົາ​ສາມາດ​ທີ່​ຈະ​ແບ່ງ​ໂປ​ຣ​ແກຣມ​ໃຫ້​ເປັນ​​ແພັກ​ເກດ​ຕ່າງໆ ​ໂດຍ​ຈັດ​ກຸ່ມ​ຂອງ​ຄາດ​ທີ່​ທຳ​ງານ​ຄ່າ​ຍກັນ​ໄວ້​ໃນ​​ແພັກ​ເກດ​ດຽວ​ກັນ ​​ແພັກ​ເກດ​ແຕ່​ລະ​ແພັກ​ເກດ​ຈະ​ໃຊ້​ໃນ​ການ​ເກັບ​ຄາດ​ຫລື​​ແພັກ​ເກດ​ຍ່ອຍ​ໄດ້
     ​ເຊິ່ງ​ໂປຣ​ແກຣມຈາ​ວາ​ຈະ​ສ້າວ​ໄດ້​ເລັກ​ທໍ​ລີ ທີ່​ມີ​ຊື່​ດຽວ​ກັບ​ແພັກ​ເກດ ​ໃນ​ການ​ເກັບ​ຄາດ​ຫລື​ແພັກ​ເກດ​ຍ່ອຍ​ເຫລົ່າ​ນັ້ນ ຮູບ​ທີ່ 4.10 ສະ​ແດງ​ຕົວຢ່າງ​ໂຄງ​ສ້າ​ງ​ໄດ​ເລັກ​ທໍ​ລີ​ຂອງ​ໂປຣ​ແກຣມທີ່​ມີ​ຄາດ​ແລະ​ແພັກ​ເກດ​ຫລາຍໆ ຕົວ​ໂປຣ​ແກຣມຈະ​ຢູ່​ໃນ​ແພັກ​ເກດ ​ເຊິ່ງຈະ​ປະກອບ​ດ້ວຍ​ແພັກ​​ເກດ​ຍ່ອຍ 3 ​ແພັກ​ເກດ​ຄື domain, GUI ​ແລະ reports ​ໂດຍ​ໂປຣ​ແກຣມ Student.class, Teacher.class ​ແລະ Subject.class ຈະ​ຢູ່​ໃນ​ແພັກ​ເກດ​ຍ່ອຍ domain ສ່ວນ​ໂປຣ​ແກຣມ Report.class ຈະ​ຢູ່​ໃນ​​ແພັກ​ເກດ​ຍ່ອຍ reports
ຮູບ​ທີ 4.10 ຕົວຢ່າງ​ແພັກ​ເກດ
4.5.1 ການ​ປະກາດ​ແລະ​ໃຊ້​ແພັກ​ເກດ
 ​ໂຄງ​ສ້າ​ໂປ​ຣ​ແກຣມ​ໄຟ​ຂອງ​ພາສາ​ຈາ​ວາ​ຈະ​ປະ​ກອບດ້ວຍ​ຄຳ​ສັ່ງ​ດັ່ງນີ້
         [<package_declaration>]
         [<import_declaration>]
         [<class_declaration>]
 
 





​ໂດຍ​ທີ່
  • ​package_declaration ເປັນ​ການ​ລະບຸ​ວ່າ​ໂປ​ຣ​ແກຣມ​ໄຟ​ຢູ່​ໃນ​ແພັກ​ເກດ​ໃດ
  • ​Import_declaration ເປັນຄຳ​ສັ່ງ​ໃນ​ການ​ເອີ້ນ​ໃຊ້​ແພັກ​ເກດ​ອື່ນໆ
  • ​class_declaration ເປັນ​ຄຳ​ສັ່ງ​ໃນ​ການ​ປະກາດ​ຄາດ

   ຄຳ​ສັ່ງ​ໃນ​ການ​ລະບຸ​ແພັກ​ເກ​ດຈະ​ມີ​ຮູບ​ແບບ​ດັ່ງ​ນີ້
       package <package_name>[<sub_package_name>]
 
 


ຕົວຢ່າ​ງ​ເຊັ່ນ
        package faculty.domain;
ຫລື
        package faculty;
​   ໂປ​ຣ​ແກຣມ​ໄຟ​ໜຶ່ງ​ໄຟ​ຈະ​ມີ​ຄຳ​ສັ່ງ ​package ໄດ້​ພຽງ​ຄຳ​ສັ່ງ​ດຽວ ​ໂດຍ​ຈະ​ຕ້ອງ​ເປັນ​ຄຳ​ສັ່ງ​ທຳ​ອິດ​ຂອງ​ໂປຣ​ແກຣມ​ໃນ​ກໍລະນີ​ບໍ່​ມີ​ຄຳ​ສັ່ງ ​package ໂປຣ​ແກຣມ​ໄຟ​ນັ້ນ​ຈະ​ຖືກ​ກຳນົດ​ໄວ້​ໃນ​ແພັກ​ເກດ default
   ການ​ເອີ້ນ​ໃຊ້​ແພັກ​ເກດ​ອື່ນໆ ຈະ​ທຳ​ໄດ້​ໂດຍ​ການ​ໃຊ້​ຄຳ​ສັ່ງ import ​ເຊິ່ງມີ​ຮູບ​ແບບ​ຂອງ​ຄຳ​ສັ່ງ​ດັ່ງ​ນີ້
   import <package_name>[.<sub_package_name>].<Class_name>
ຫລື
   import <package_name>[.<sub_package_name>].*;
 
 




ຕົວຢ່າ​ງ​ເຊັ່ນ
   import faculty.reports.Report;
ຫລື
   import java.awt.*;
     ຄຳ​ສັ່ງ import ຈະ​ຕ້ອງ​ກຳນົດ​ໄວ້​ກ່ອນ​ຄຳ​ສັ່ງ​ການ​ປະກາດ​ຄາດ ​ເຊິ່ງ​ໂປຣ​ແກຣມ​ໄຟ​ພາສາ​ຈາ​ວາ​ແຕ່ລະ​ໂປ​ຣ​ແກຣມສາມາດ​ມີ​ຄຳ​ສັ່ງ ​import ໄດ້​ຫລາຍ​ຄຳ​ສັ່ງ
4.6 Unified Modeling Language
     Unified Modeling Language (UML) ​ເປັນ​ພາສາ​ທີ່​ໃຊ້​ຮູ​ບກຣາບຟິກ​ເພື່ອ​ຈຳລອງ​ລະບົບ​ຊອບ​​ແວ UML ຖືກ​ພັດທະນາ​ຂຶ້ນ​​ເພື່ອ​ຈຳລອງ​ໂປຣ​ແກຣມ​ເຊີງ​ອອບ​ເຈັກ​ໃນ​ຕົ້ນ​ທົດ​ສະ​ວັດ 1990 ​ເຊິ່ງ​ໃນ​ປັດຈຸບັນ UML ​ໄດ້​ກາຍ​ເປັນ​ມາດຕະຖານ​ທີ່​ໃຊ້​ໃນ​ການ​ຈຳລອງ​ລະບົບ​ຊອບ​​ແວ​ຕາມ​ຂໍ້​ກຳນົດ​ຂອງ OMG (Object Management Group) ໜັງສື​ເລັ່ມນີ້​ຈະ​ໃຊ້​ສັນຍາ​ລັກ​ຂອງ UML ​ໃນ​ການ​ຈຳລອງ​ລະບົບ​ໂປຣ​ແກຣມຕ່າງ​ໆ ​​ແຕ່​ເນື່ອງ​ຈາກ UML ​ເປັນພາສາ​ຈາ​ວາ​ທີ່​ມີ​ຂໍ້​ກຳນົດ​ຕ່າງໆ ຫລາ​ຍດັ່ງນັ້ນ​ເນື້ອ​ຫາ​ໃນ​ບົດ​ນີ້​ຈະ​ກ່າວ​ເຖິງ​ສະ​ເພາະ​ສ່ວນ​ຕ່າງໆ ທີ່​ຈຳ​ເປັນຕໍ່ຄວາມ​ເຂົ້າ​ໃຈ​ທີ່​ຈະ​ໃຊ້​ໃນ​ໜັງ​ສື​ເລັ່ມນີ້​ເທົ່າ​ນັ້ນ
4.6.1  ​ໄດ​ອະ​ແກຣມຂອງ​ຄາດ
       ​ ໄດ​ອະ​ແກຣມຂອງ​ຄາດ (Class Diagram) ​ເປັນ​ສັນຍາ​ລັກ​ທີ່​ໃຊ້​ສະ​ແດງ​ຄາດ​ໃນ UML ​ໂດຍ​ໄດ​ອະ​ແກຣມຂອງ​ຄາດ​ຈະ​ປະ​ກອບດ້ວຍສ່ວນ​ຕ່າງໆ ສາມ​ສ່ວນ​ຄື ຊື່​ຂອງ​ຄາດ ຄຸນ​ລັກສະນະ​ພາຍ​ໃນ​ຄາດ ​ແລະ​ເມ​ທອດ​ພາຍ​ໃນ​ຄາດ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 4.11 ​ໄດ​ອະ​ແກຣມຂອງ​ຄາດ​ຈະ​ລະບຸ​ຂໍ້​ມູນ​ຕ່າງໆ ສຳ​ຫລັບ​ຄຸ​ນລັກສະນະ​ພາຍ​ໃນ​ຄາດຄື ຊື່​ຂອງ​ຄຸນ​ລັກສະນະ ຊະນິດ​ຂໍ້​ມູນ​ສະຖານະ​ການ​ເຂົ້າ​ເຖິງ​ (access model) ​ແລະ​ຄ່າ​ເລີ່​ມຕົ້ນ ສ່ວນ​ເມ​ທອດ​ພາຍ​ໃນ​ຄາດ​ຈະ​ລະບຸ​ເຖິງ​ສະຖານະ​ການ​ເຂົ້າ​ເຖິງ ຊື່​ຂອງ​ເມ​ທອດ ຊະນິດ​ຂໍ້​ມູນ​ຂອງ argument ​ແລະ​ຊະນິດ​ຂໍ້​ມູນ​ຂອງ​ຄ່າ​ທີ່​ສົ່ງ​ກັບ ສຳ​ຫລັບ​ສະຖານະ​ການ​ເຂົ້າ​ເຖິງ ​UML ໄດ້​ກຳນົດ​ສັນຍາ​ລັກ​ຕ່າງໆ​ ໄວ້​ດັ່ງ​ນີ້
      + ສຳ​ຫລັບ public
      + ສຳ​ຫລັບ private
ຮູບ​ທີ 4.11 ຕົວຢ່າງ UML ຂອງ​ຄາດ Student
     ​ໄດ​ອະ​ແກຣມຂອງ​ຄາດ​ສາມາດ​ທີ່​ຈະ​ສະ​ແດງ​ຄວາມ​ສຳພັນ​ຂອງ​ຄາດ ທີ່​ມີ​ການ​ສືບ​ທອດ​ກັນ ​ໂດຍ​ການ​ໃຊ້​ລູກ​ສອນ​ເປັນ​ສັນຍາ​ລັກ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 4.8 ນອກ​ຈາ​ກນີ້​ໄດ​ອະ​ແກຣມຂອງຄາດ ຍັງ​ສາມາດທີ່​ຈະ​ສະ​ແດ​ງຄວາມ​ສຳພັນ​ຫລື​ສະ​ແດງ​ຄຸນ​ສົມບັດ​ອື່ນໆ ​ເຊັ່ນ ສະ​ແດງ​ວ່າ​ເປັນ​ຄາດ​ແບບ ​interface ໄດ້​ອີກ​ດ້ວຍ
6.6.2    ໄດ​ອະ​ແກຣມຂອງ​ອອບ​ເຈັກ
        UML ສາມາດ​ທີ​ຈະ​ສະ​ແດງ​​ໃຫ້​ເຫັນ​ໄດ້​ວ່າ​ອອບ​ເຈັກ​ທີ່​ສ້າງ​ຂຶ້ນ​ມາ​ເປັນອອບ​ເຈັກ​ຂອງ​ຄາດ​ໃດ ​ແລະ​ມີ​ຄ່າຂອງ​ຄຸນ​ລັກສະນະ​ຕ່າງ​ໆ ຢ່າງ​​ໃດ ​ໂດຍ​ໃຊ້​ໄດ​ອະ​ແກຣມຂອງ​ອອບ​ເຈັກ (Object Diagram) ທີ່​ປະກອບ​ໄປ​ດ້ວຍ​ສ່ວນ​ຕ່າງໆ ສອງ​ສ່ວນ​ຄື ສ່ວນ​ທີ່​ລະບຸ​ຊື່​ຂອງ​ອອບ​ເຈັກ ​ແລະ​ສ່ວນ​ທີ່​ລະບຸ​ຄ່າ​ຂອງ​ຄຸນ​ລັກສະນະ​ພາຍ​ໃນ​ອອບ​ເຈັກ ດັ່ງ​ຕົວຢ່າ​ງ​ໃນ​ຮູບ​ແບບທີ 4.12 ​ເຊິ່ງ​ເປັນ​ການສະ​ແດງ​ອອບ​ເຈັກ ​s1nແລະ s2 ຂອງ​ຄາດ Student ຈາກ​ຮູບ​ນະ​ເຫັນ​ໄດ້​ວ່າ​ສັນຍາ​ລັກ​ລູກ​ສອນ​ທີ່​ເປັນ​ເສັ້ນ​ປະ​ຈະ​ເປັນ​ການ​ລະບຸ​ວ່າ​ອອບ​ເຈັກ ​s1 ເປັນອອບ​ເຈັກ​ຂອງ​ຄາດ Student


ຮູບ​ທີ 4.12 ​ໄດ​ອະ​ແກຣມຂອງ​ອອບ​ເຈັກ s1 ​ແລະ s2 ຂອງ​ຄາດ Student

ไม่มีความคิดเห็น:

แสดงความคิดเห็น