หน้าเว็บ

ຊະນິດຂໍ້ມູນຕົວເລກທົດສະນິຍົມ

ຊະນິດຂໍ້ມູນຕົວເລກທົດສະນິຍົມ

ຂໍ້​ມູນ​ຈຳນວນ​ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ​ຄື​ເລກຈຳນວນ​ຈິງ (real number) ​ເຊິ່ງ​ໃນ​ລະບົບ​
ຄອມ​ພິວ​ເຕີ​ຈະ​ເກັບຂໍ້​ມູນ​ປະ​ເພດ​ນີ້ ​ໂດຍ​ແບ່ງ​ຈຳນວນ​ບິດ​ທີ່​ເກັບ​ຂໍ້​ມູນ​ເປັນ​ສອງ​ສ່ວນ​ຄື​ສ່ວນ​ທີ່​ເປັນຄວາມ​ລະອຽດ​ຂອງ​ຕົວ​ເລກ (mantissa) ​ແລະ​ ສ່ວນ​ທີ່​ເປັນ​ຈຳນວນ​ເລກ​ຍົກ​ກຳລັງ (exponent) ​ໂດຍ​ສ່ວນ​ທີ່​ເປັນຄວາມ​ລະອຽດ​ຂອງ​ຕົວ​ເລກ​ຈະ​ເກັບ​ຄ່າ​ໃນ​ຊ່ວງ​ຕັ້ງ​ແຕ່ -1.0​ເຖິງ1.0
​ແລະ​ສ່ວນ​ທີ່​ເປັນ​ເລກ​ຍົກ​ກຳລັງ​ຈະ​ເກັບ​ຄ່າ​ທີ່​ເປັນ​ເລກ​ຍົກ​ກຳ​ລັງ​ສອງ ພາສາ​ຈາ​ວາ ​ເກັບ​ເລກ​ຈຳນວນ​ຈິງ​ຕາມ​ມາດຕະຖານ IEEE 754 ​ເຊິ່ງຈະ​ແບ່ງ​ເລກ​ຈຳນວນ​ຈິງ​ອອກ​ເປັນ single precision ​ແລະ double precision ​ໂດຍ​ທີ່​ຕົວ​​ແປ​ແບບ single precision ​ຈະ​ໃຊ້​ເນື້ອ​ທີ່​​ໜ່ວຍ​ຄວາມ​ຈຳຈຳນວນ 32 ບິດ ​ແບ່ງ​ເປັນສ່ວນ​ທີ່​ເປັນຄວາມ​ລະອຽດ​ຂອງ​ຕົວ​​ເລກ​ຈຳນວນ 24 ບິດ ​ແລະ​ສ່ວນ​ທີ່​ເປັນ​ຈຳນວນ​ເລກ​ຍົກ​ກຳລັງ​ຈຳນວນ 8 ບິດ ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ2.2 ສ່ວນ​ຕົວ​ເລກ​ແບບ double precision ຈະ​ໃຊ້​ເນື້ອ​ທີ່​ໜ່ວຍ​ຄວາມ​ຈຳ​ຈຳນວນ 64 ບິດ ​ແບ່ງ​ເປັນ​ສ່ວນ​ທີ່​ເປັນຄວາມ​ລະອຽດ​ຂອງ​ຕົວ​ເລກ​ຈຳນວນ 53 ບິ​ດ ​ແລະ​ສ່ວນ​ທີ່​ເປັນ​ຈຳນວນ​ເລກ​ຍົກ​ກຳລັງ​ຈຳນວນ 11 ບິດ


ຮູບ​ທີ2.2 ຈຳນວນ​ບິດ mantissa ​ແລະ exponent ສຳຫລັບ​ຕົວ​ແປ​ແບບ single precision

 ພາສາ​ຈາ​ວາ​ກຳນົດຊະນິດ​ຂໍ້​ມູນ​ຕົວ​ເລກ​ຈຳນວນ​ທົດ​ສະ​ນິຍົມ​ໄວ້​ສອງ​ຊະນິດ float ແລະ double
​ໂດຍ​ທີ່​ຊະນິດ float ຈະ​ເກັບ​ຂໍ້​ມູນ​ຈຳນວນ 32 ບິດຕາມ​ມາດຕະຖານ​ແບບ single precision
ສ່ວນ​ຂໍ້​ມູນ​ຊະນິດ double ຈະ​ເກັບ​ຂໍ້​ມູນ​ຈຳນວນ 64 ບິດ​ຕາ​ມມາດຕະຖານ​​ແບບ double precision ພາສາ​ຈາ​ວາ​ກຳນົດ​ຂໍ້​ມູນ​ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ​ໃຫ້​ເປັນ​​ເລກ​ທີ່​ມີ​ເຄື່ອງໝາຍ​ຈຸດ​ທົດ​ສະ​ນິຍົມ​ເຊັ່ນ: 3.14 ຫລື 3.0 ນອກຈາກ​ນີ້​ຍັງ​ສາມາດ​ຂຽນ​ຢູ່​ໃນ​ຮູບ​ແບບ​ຂອງ​ຕົວ​ເລກ​ຍົກ​ກຳລັງ​ສິບ (exponential form) ​ໄດ້​ໂດຍ​ໃຊ້​ຕົວ​ອັກສອນ E ຫລື e ລະບຸ​ຈຳນວນ​ທີ່​ເປັນ​ເລກ​ຍົກ​ກຳລັງ​ສິບ 6.02E23 ຫລື 2e-7
       ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ຊະນິດ​ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ ​ໂດຍ​ທົ່ວ​ໄປ​ຈະ​ຖືກ​ກຳນົດ​ໃຫ້​ມີ​ຊະນິດ​ຂໍ້​ມູນ​ເປັນ double ​ແຕ່​ພາສາ​ຈາ​ວາ​ສາມາດ​ກຳນົດ​ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ໃຫ້​ມີ​ຊະນິດ​ຂໍ້​ມູນ​ເປັນ float ​ໄດ້​ໂດຍ​ໃສ່​ຕົວອັກສອນ f ຫລື F ຕໍ່​ທ້າຍ​ເຊັ່ນ: 2.718F ຫລື 3.14f ​ເປັນ​ຕົ້ນ
       ນອກ​ຈາ​ນີ້​ພາສາ​ຈາ​ວາ​ຈະ​ກຳນົດ​ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ຊະນິດ​ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ​ທີ່​ມີ​ອັກສອນ D ຫລື d ຕໍ່​ທ້າຍ​ວ່າ​ເປັນ​ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ທີ່​ມີ​ຊະນິດ​ຂໍ້​ມູນ​ເປັນ double ​ເຊັ່ນ: 3.14D ​ແຕ່​ເນື່ອງ​ຈາກ​ໂດຍ​ທົ່ວ​ໄປ​ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ຊະນິດ​ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ​ຈະ​ຖື​ກກຳນົດ​ໃຫ້​​ເປັນ​ຊະນິດ double ຢູ່​ແລ້ວ ຈຶ່ງ​ບໍ່​ມີ​ຄວາມ​ຈຳ​ເປັນ​ຕ້ອງ​ໃສ່​ອັກສອນ D ຫລື d ຕໍ່​ທ້າຍ
ຕົວຢ່າງ​ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ຂອງ​ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ​ທີ່​ຖືກຕ້ອງ
12. 12E2 12.0e2 12.0e2F -3.14F
ຕົວຢ່າງ​ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ຂອງ​ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ​ທີ່ບໍ່​ຖືກຕ້ອງ
1,234.0 1.2E108F

2.4 ຕົວ​ແປ​ແລະ​ຄ່າ​ຄົງ​ທີ່
     ຂໍ້​ມູນ​ທີ່​ເກັບ​ຢູ່​ໃນ​ໂປຣ​ແກຣມ​ເຊັ່ນຂໍ້​ມູນ​ທີ່​ເປັນ​ລັກສະ​ນະ​ຂອງ​ອອບ​ເຈັກ ຄຸນ​ລັກສະນະ​ຂອງ​ຄາດ ​ແລະ​ຂໍ້​ມູນ​ໃນ​ເມ​ທອດ ຈະ​ແບ່ງ​​ເປັນ​ສອງ​ປະ​ເພດ​ຄື​ຕົວ​ແປ​ແລະ​ຄ່າ​ຄົງ​ທີ່ ​ເຊິ່ງຕົວ​ແປ​ຄື​ຂໍ້​ມູນ​ທີ່​ສາມາດ​ປ່ຽນ​ແປ​ງຄ່າ​ໄດ້​ໃນ​ໂປຣ​ແກຣມ ​ໂດຍ​ໃຊ້​ຄຳ​ສັ່ງ​ກຳນົດ​ຄ່າສ່ວນ​ຄ່າ​ຄົງ​ທີ່​ຄື​ຂໍ້​ມູນ​ທີ່​ກຳນົດ​ຄ່າ​ໄດ້​ພຽງ​ເທື່ອ​ດຽວ​ ແລະບໍ່​ສາມາດ​ປ່ຽນ​ແປງ​ຄ່າ​ໄດ້​ໃນ​ໂປຣ​ແກຣມທັງ​ຕົວ​ແປ​​ແລະ​ຄ່າ​ຄົງ​ທີ່​ທີ່​ຈະຕ້ອງ​ມີການ​ປະກາດ​ຊື່​ແລະ​ຊະນິດ​ຂໍ້​ມູນ ​ເພື່ອ​ທີ່​ຈະ​ກຽມ​ເນື້ອ​ທີ່​ໃນ​ໜ່ວຍ​ຄວາມ​ຈຳ​ສຳ​ຫລັບ​ເກັບຂໍ້​ມູນ
ຄຳ​ສັ່ງ​ໃນ​ການ​ປະກາດຕົວ​ແປ​ຂອງ​ພາສາ​ຈາ​ວາ​ມີ​ຮູບ​ແບບ​ດັ່ງ​ນີ້

[modifier] dataType variableName[,variableName];
ໂດຍ​ທີ່
  • Modifier ຄື​ຄີ​ເວີ​ດລະບຸ​ຄຸນສົມບັດ​ຕ່າງໆ ຂອງ​ຕົວ​ແປ access modifier ສ່ວນ​ກໍລະນີ​ທີ່​ບໍ່​ລະບຸ​ຖື​ວ່າ​ເປັນ default
  • dataType ຄື​ຊະນິດ​ຂໍ້​ມູນ
  • variableName ຄື​ຊື່​ຂອງ​ຕົວ​ແປ​ທີ່​ເປັນ​ໄປ​ຕາມ​ກົດ​ການ​ຕັ້ງ​ຊື່
ຕົວຢ່າງ​ເຊັ່ນ ຄຳ​ສັ່ງ
        int amount;
ເປັນ​ການ​ປະກາດ​ຕົວ​ແປ amount ​ໃຫ້​ມີຊະນິດ​ຂໍ້​ມູນ int
       double x;
​ເປັນ​ການ​ປະກາດ​ຕົວ​ແປ x ​ໃຫ້​ມີ​ຊະນິດ​ຂໍ້​ມູນ double
       ນອກຈາກ​ນີ້​ຈາ​ວາ​ຍັງ​ອະນຸຍາດ ​ໃຫ້​ສາມາດ​ປະກາດ​ຊື່​ຕົວ​ແປ​ທີ່​ເປັນ​ຊະນິດ​ຂໍ້​ມູນ​ດຽວ​ກັນ​ໄດ້​ຫລາຍໆ ຕົວ​ແປ​ພາຍ​ໃນ​ຄຳ​ສັ່ງ​ດຽວ​ກັນ ຕົວ​ຢ່າງ
        float price, wholeSalePrice;
​ເປັນ​ຄຳ​ສັ່ງ​ປະກາດ​ຕົວ​ແປ price ​ແລະ wholeSalePrice ​ໃຫ້​ມີ​ຊະນິດ​ຂໍ້​ມູນ​ເປັນ float

2.4.1 ຄຳ​ສັ່ງ​ຄ່າ​ກຳນົດ​ຄ່າ
       ຕົວ​ແປ​ທີ່​ມີ​ການ​ປະກາ​ດຊະນິດ​ຂໍ້​ມູນ​ແລ້ວ​ສາມາດ​ທີ່​ຈະ​ກຳນົດ​ຫລື​ປ່ຽນ​ແປງ​ຄ່າ​ໄດ້​ໂດຍ​ໃຊ້​ຄຳ​ສັ່ງ​ກຳນົດ​ຄ່າ (assignment statement) ເຊິ່ງມີ​ຮູບ​ແບບ​ດັ່ງ​ນີ້ 
variableName = expression; __
variableName = expression;
 
 

​ໂດຍ​ທີ່
  • variableName ຄື​ຊື່​ຕົວ​ແປ
  • expression ຄື​ນິພົດ​ເຊິ່ງ​ເປັນຜົນ​ລັບ​ທີ່​ໄດ້​ຈາ​ກການ​ຄຳນວນ​ຂໍ້ຄວາມ​ທີ່​ອາດ​ປະ​ກອບ​ໄປ​ດ້ວຍ​ຄ່າ​ຄົງ​ທີ່​ຂໍ້​ມູນ​ຕົວ​ແປ ​ແລະຕົວ​ດຳ​ເນີນ​ການ (operator) ຕ່າງໆ ​ເຊິ່ງນິພົດ​ອາດ​ເປັນ​ນິພົດ​ທີ່​ໃຫ້​ຜົນ​ລັບ​ເປັນ​ຂໍ້​ມູນ​ຄ່າ​ຄົງ​ທີ່​ຊະນິດ​ຕົງ​ເລກ​ຈຳນວນ​ເຕັມ ຕັກ​ກະ ຕົວ​ເລກ​ທົດ​ສະ​ນິຍົມ ອັກສອນ ຫລື ຂໍ້ຄວາມ ທັງ​ນີ້​ຂຶ້ນ​ຢູ່​ກັບ​ຊະນິດ​ຂໍ້​ມູນ​ແລ​ະຄຳ​ສັ່ງ​ທີ່​ໃຊ້

ຕົວຢ່າງ​ຕໍ່​ໄປ​ນີ້​ສະ​ແດງ​ການ​ໃຊ້​ຄຳ​ສັ່ງ​ກຳນົດ​ຄ່າ​ສຳ​ຫລັບ​ຕົວ​ແປ ທີ່​ໄດ້​ທຳ​ການ​ປະກາດ​ຊະນິດ​ຂໍ້​ມູນ​​ໄວ້​ແລ້ວ
      x = 1;
      radius = 3.14;
      c = ‘a’;
      y = x+4*3;
ຄຳ​ສັ່ງ​ກຳນົດຄ່າ​ຈະ​ສັ່ງ​ງານ​ໃຫ້​ເຄື່ອງ​ຄອມ​ພິວ​ເຕີ​ທຳ​ງານ​ສອງ​ຂັ້ນ​ຕອນ​ຄື ຄຳນວນ​ຜົນ​ລັບ​ຂອງ​ນິພົດ ​ແລ້ວ​ເກັບ​ຜົນ​ລັບ​ທີ່​ໄດ້​ໃນ​ຕົວ​ແປ​ເຊັ່ນ:ຄຳ​ສັ່ງ
amount = 121+14;
ຈະ​ມີ​ຂັ້ນ​ຕອນ​ຄຳນວນ​ຫາ​ຜົນ​ລັບ​ເຊິ່ງຈະ​ໄດ້​ຄ່າ​ເປັນ 135 ​ແລ້ວ​ເກັບ​ຜົນ​ລັບ​ທີ່​ໄດ້​ລົງ​ໃນ​ຕົວ​ແປ amount
ຄຳ​ສັ່ງ​ກຳນົດ​ຄ່າ​ຈະ​ຕ້ອງ​ມີ​ຊື່​ຕົວ​ແປ​ຢູ່​ທາງ​ຊ້າຍ​ມື ​ການ​ໃຊ້​ຄຳ​ສັ່ງ​ເຊັ່ນ:

           1 = x;
​   
    ເປັນ​ການ​ໃຊ້​ຄຳ​ສັ່ງ​ທີ່​ບໍ່​ຖືກຕ້ອງ ​ເພາະ​ຄ່າ​ຄົງ​ທີ່​ໃດໆ ບໍ່​ສາມາ​ທີ່​ຈະ​ເກັບ​ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ນິພົດ
(ຄ່າ​ຂອງx) ​ໄດ້
   
      ນອກ​ຈາກ​ນີ້​ເຮົາ​ສາມາດ​ທີ່​ຈະ​ນຳ​ຊື່​ຕົວ​ແປ​ທີ່​ຈະ​ກຳນົດ​ຄ່າ​ມາ​ປະກອບ​ໃນ​ນິພົດ​ໄດ້ ​ເຊັ່ນ:
              x = x+1;
   
      ​ເປັນ​ຄຳ​ສັ່ງ​ທີ່​ໃຫ້​ນິພົດ​ເພີ່ມ​ຄ່າ​ຂອງ​ຕົວ​ແປ​ x ທີ່​ມີ​ຢູ່​ແລ້ວ​ໄປ​ອີກ​ 1 ​ແລ້​ວນຳ​ຜົນ​ລັບ​ທີ່​ໄດ້​ເກັບ​ໄວ້​​ໃນ​ຕົວ​ແປ x ​ຄື​ເກົ່າ ​ເຊັ່ນ: ຖ້າ x ມີຄ່າ​ເປັນ 5 ຈະ​ກາຍ​ເປັນ 6
ເຮົາ​ສາມາດ​ທີ່​ຈະ​ປະກາດ​ແລະ​ກຳນົດ​ຄ່າ​ເລີ່​ມຕົ້ນ​ຂອງ​ຕົວ​ແປ ພາຍ​ໃນ​ຄຳ​ສັ່ງ​ດຽວ​ກັນ​ໄດ້ ​ໂດຍ​ມີ​
ຮູບ​ແບບ​ຄຳ​ສັ່ງ​ດັ່ງ​ນີ້

[modifier] dataType variableName = expression [,variableName = expression];
 
 


ເຊັ່ນ:
    int amount = 123;
    float price = 12.0f;
    double x = 4.0, y = 2.5;
   
​    ໂປຣ​ແກຣມທີ2.3 ​ເປັນ​ຕົວຢ່າງ​ທີ່​ສະ​ແດງ​ການ​ປະກາດຕົວ​ແປ​ແລະ​ການ​ໃຊ້​ຄຳ​ສັ່ງ​ກຳນົດ​ຂອງ​ຕົວ​ແປ​ທີ່​ມີ​ຊະນິດ​ຂໍ້​ມູນຕ່າ​ງໆ ​ເຊິ່ງ​ໂປຣ​ແກຣມນີ້​ຈະ​ໃຫ້​ຜົນ​ລັບ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ2.3







ໂປຣມ​ແກຣມທີ2.3 ຕົວຢ່າງ​ການ​ໃຊ້​ຄຳ​ສັ່ງ​ກຳນົດ​ຄ່າ
Text Box: public class VariableAssignDemo {
   public void showDemo() {
       int x,y;
       boolean b1;
       float z = 3.414f; /* The program will not be
                          compiled successfully if
                          a character f is missing */
       double w;
       x = 5;
       y = 4;
       b1 = (x > y);
       w = x * 3.2;
       System.out.println("x = " + x + " y = " + y);
       System.out.println("b1 = " + b1);
       System.out.println("z = " + z + " w = " + w);
   }
}
-----------------------------------------------------------------
public class Main {
     public static void main(String args[]) {
         VariableAssignDemo obj = new VariableAssignDemo();
         obj.showDemo();
     }
}
 



























ຮູບ​ທີ2.3 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ2.3

2.4.2 ຄ່າ​ຄົງ​ທີ່
       ການ​ປະກາດ​ຄ່າ​ຄົງ​ທີ່​ໃນ​ພາສາ​ຈາ​ວາ​ທຳ​ໄດ້​ໂດຍ​ການ​ໃສ່​ຄີ​​ເວີ​ດ final ໜ້າ​ຄຳ​ສັ່ງ​ປະກາດ​ຊື່​ໂດຍ​ມີ​ຮູບ​ແບບ​ດັ່ງ​ນີ້
[modifier] final dataType CONSTANT_NAME = expression;
 
 


​ໂດຍ​ທີ່
  • modifier ຄື​ເວີ​ດລະບຸ​ຄຸນ​ສົມບັດ​ຕ່າງໆ ຂອງ​ຄ່າ​ຄົງ​ທີ່​ເຊັ່ນ access modifier
  • dataType ຄື​ຊະນິດ​ຂໍ້​ມູນ​ຂອງ​ຄ່າ​ຄົງ​ທີ່
  • CONSTANT_NAME ຄື​ຊື່​ຂອງ​ຄ່ຄົງ​ທີ່​ເຊິ່ງ​ໂດຍ​ທົ່ວ​ໄປ​ນິຍາມ​ໃຊ້​ຕົວ​ອັກສອນ​ພິມ​​ໃຫຍ່​ແລະ​ແຍກ​ຄຳ​ດ້ວຍ​​ເຄື່ອງໝາຍ _
  • Expression ຄື​ນິພົດ​ທີ່​ໃຫ້​ຜົນ​ລັບ​ເປັນ​ຊະນິດ​ຂໍ້​ມູນ​ທີ່​ສອດຄ່ອງ​ກັບ​ຊະນິດ​ຂໍ້​ມູນ​ຂອງ​ຄ່າ​ຄົງ​ທີ່
ຕົວຢ່າງ​ເຊັ່ນ ຄຳ​ສັ່ງ
         final int MINIMUM = 4;
         final double MIN_GPA = 2.00;
    ​ເປັນ​ການ​ປະກາດ​ຄ່າ​ຄົງ​ທີ່ MINIMUM ​ໃຫ້​ມີ​ຊະນິດ​ຂໍ້​ມູນ​ເປັນ int ​ໂດຍ​ມີຄ່າ​ເປັນ 4 ​ແລະ​ຄ່າ​ຄົງ​ທີ່​ MIN_GPA ​ໃຫ້​ມີ​ຊະນິດ​ຂໍ້​ມູນ​ເປັນ double ​ໂດຍ​ມີຄ່າ​ເປັນ 2.00
    ຄ່າ​ຄົງ​ທີ່​ຈະ​ກຳນົດ​ຄ່າ​ໄດ້​ພຽງ​​ເທື່ອດຽວ ​ໂດຍ​ຈະ​ຕ້ອງ​ມີ​ການ​ກຳນົດ​ກ່ອນ​ທີ່​ຈະ​ມີ​ການ​ເອີ້ນ​ໃຊ້​ງານ ​ເຊິ່ງ​ເມື່ອ​ກຳນົດ​ຄ່າ​ແລ້ວ​ຈະ​ບໍ່​ສາມາດ​ປ່ຽນ​ແປງ​ຄ່າໄດ້
    ​ໂປຣ​ແກຣມທີ2.4 ​ເປັນ​ຕົວຢ່າງ​ທີ່​ສະ​ແດງ​ການ​ປະກາດ​ຄ່າ​ຄົງ​ທີ່​ແລະ​ການ​ໃຊ້​ຄ່າ​ຄົງ​ທີ່ ​ເຊິ່ງຈະ​ໃຫ້​ຜົນ​ລັບ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ2.4


Text Box: public class ConstantDemo {
  public void showDemo() {
      final int MAXIMUM = 10;
      final double MIN_GPA;
      System.out.println("Maximum is " + MAXIMUM);
      MIN_GPA = 2.00;
      System.out.println("Minimum GPA is " + MIN_GPA);
//     MIN_GPA = 3.00; //illegal
  }
}
--------------------------------------------------------
public class Main {
     public static void main(String args[]) {
         ConstantDemo obj = new ConstantDemo();
         obj.showDemo();
     }
}


ໂປຣ​ແກຣມທີ2.4 ຕົວຢ່າງ​ສະ​ແດງ​ການ​ປະກາດ​ຄ່າ​ຄົງ​ທີ່





















ຮູບທີ2.4 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ2.4




2.4.3 ຂອບ​ເຂດ​ຂອງ​ຕົວ​ແປ​ແລະ​ຄ່າ​ຄົງ​ທີ່
      ຕົວ​ແປ​ແລະ​ຄ່າ​ຄົງ​ທີ່​ເຊິ່ງປະກາດ​ຂຶ້ນ​ຈະ​ສາມາດ​ໃຊ້​ງານ​ພາຍ​ໃນ​ບ໋ອກຄຳ​ສັ່ງ {} ທີ່​ປະກາດ​ເທົ່າ​ນັ້ນ ​ໂດຍ​ພາສາ​ຈາ​ວາ​ແບ່ງ​ຕົວ​ແປ​ແລະ​ຄ່າ​ຄົງ​ທີ່​ເປັນ​ສອງ​ປະ​ເພດ​ຄື:
1.   ຕົວ​ແປ​ຫລື​ຄ່າ​ຄົງ​ທີ່​ທີ່​ເປັນ​ຄຸນ​ລັກສະນະ​ຂອງ​ອອບ​ເຈັກ​ຫລື​ຄຸນ​ລັກສະນະ​ຂອງ​ຄາດ
2.   ຕົວ​ແປ​ຫລື​ຄ່າ​ຄົງ​ທີ່​ທີ່ຢູ່​ໃນ​ບ໋ອກຂອງ​ເມ​ທອດ​ທີ່​ເອີ້ນ​ວ່າ​ຄ່າ​ຄົງ​ທີ່​ພາຍ​ໃນ (Local Constant) ຫລື​ຕົວ​​ແປ​ພາຍ​ໃນ (Local Variable)
       ຕົວ​ແປ​ຫລື​ຄ່າ​ຄົງ​ທີ່​ ທີ່​ເປັນ​ຄຸນ​ລັກສະນະ​ຂອງ​ອອບ​ເຈັກ​ຫລື​ຄຸນ​ລັກສະນະ​ຂອງ​ຄາດຄື ຕົວ​ແປ​ຫລື​ຄົງ​ທີ່​ທີ່​​ປະກາດ​ພາຍ​ໃນ​ບ໋ອກຂອງ​ຄາດ ​ເຊິ່ງຢູ່​ນອກ​ເມ​ທອດ​ຂອງ​ຄາດ ຕົວ​ແປ​ຫລື​ຄ່າ​ຄົງ​​ທີ່​ປະ​ເພດ​ນີ້​ຈະ​ມີ​ຂອບ​ເຂດ​ໃຊ້​ງານ​ຢູ່​ພາຍ​ໃນ​ຢູ່​ພາຍ​ໃນ​ຄາດ​ໂດຍ​ທີ່​ທຸກໆ ​ເມ​ທອດ​ໃນ​ຄາດ​ສາມາດ​ເອີ້ນ​ໃຊ້​ໄດ້ ສຳ​ຫລັບ​ຕົວ​ແປ​ປະ​ເພດ​ນີ້​ຈະ​ຖືກ​ກຳນົດ​ຄ່າ​ເລີ່​ມຕົ້ນ​ໃຫ້ໂດຍ​ອັດຕະ​ໂນ​ມັດ​ດັ່ງ​ຕາຕະລາງ​ທີ2.5
ຕາຕະລາງ​ທີ2.5 ຄ່າ​ເລີ່​ມຕົ້ນ​ທີ່​ຖືກ​ກຳນົດ​ໃຫ້​ອັດຕະ​ໂນ​ມັດ
ຊະນິດ​ຂໍ້​ມູນ
ຄ່າ​ເລີ່​ມຕົ້ນ
Boolean
False
Byte
0
Short
0
Int
0
Long
0L
Float
0.0f
Double
0.0
Char
‘\u0000’
ຄາດ
Null

     ສຳ​ຫລັບ​ຄ່າ​ຄົງ​ທີ່​ຫລື​ຕົງ​ແປ​ທີ່ຢູ່​ພາຍ​ໃນ​ບ໋ອກຂອງ​ເມ​ທອດ ຈະ​ມີ​ຂອບ​ເຂດ​ການ​ໃຊ້​ງານ​ຢູ່​ພາຍ​ໃນ​ບ໋ອກ​ເທົ່າ​ນັ້ນ
​ໂປຣ​ແກຣມທີ2.5 ສະ​ແດງ​ຕົວຢ່າງ​ຕົວ​ແປ​ທີ່​ເປັນ​ຄຸນ​ລັກສະນະ​ຂອງ​ອອບ​ເຈັກ ​ແລະ​ຕົວ​ແປ​ທີ່​ເປັນຕົວ​ແປ​ພາຍ​ໃນ ​ໂດຍ​ໂປຣ​ແກຣມນີ້​ມີ​ຕົວ​ແປ i ທີ່​ເປັນຄຸນ​ລັກສະນະ​ຂອງ​ອອບ​ເຈັກ ​ສ່ວນ​ຕົວ​ແປ j ​ແລະ k ​ໃນ​ເມ​ທອດ method2() ກໍ່​ເປັນ​ຕົວ​ແປ​ພາຍ​ໃນ​ອີກ​ຕົວໜຶ່ງ​ເຮົາ​ບໍ່ສາມາດທີ່​ຈະ​ເອີ້ນ​ໃຊ້​ຕົວ​ແປ k ນອກ​ເມ​ທອດ method1() ​ໄດ້ ນອກຈາກ​ນີ້​ຕົວ​ແປ j ​ໃນ​ເມ​ທອດ​ທັງ​ສອງ​ຈະ​ຖື​ວ່າ​ເປັນ​ຕົວ​ແປ​ຄົນ​ລະ​ຕົວ​ກັນ



ໂປຣ​ແກຣມທີ2.5 ຕົວຢ່າງ​ສະ​ແດງ​ຂອບ​ເຂດ​ຂອງ​ຕົວ​ແປ
Text Box: public class VariableScopeDemo {
   public int i;                // object variable
   public void method1() {
       int j = 4;              // local variable
       int k = 2;             // another local variable
   }
   public void method2() {
       int j = 0;              // local variable
       System.out.println(i);    // calling an object variable i
//      System.out.println(k);   // illegal
   }







}













     ຕົວ​ແປ​ທີ່​ເປັນ​ຄຸນ​ລັກສະນະ​ຂອງ​ອອບ​ເຈັກ​ຈະ​ສາມາດ​ເກັບ ​ແລະ​ປ່ຽນ​​ແປງ​ຄ່າ​ທີ່​ເກັບ​ໄວ້​ໃນ​ໜ່ວຍ​ຄວາມ​ຈຳ​ໄດ້​ຕາບ​ໃດ​ທີ່​ອອບ​ເຈັກ​ຍັງ​ຖືກ​ອ້າງ​ອີງ​ໃນ​ໂປ​ຣ​ແກຣມ ຕົວ​ແປ​ພາຍ​ໃນ​ຈະ​ເປັນຕົວ​ແປ​ທີ່​ກຳນົດ​ໃນ​ບ໋ອກຂອງ​ເມ​ທອດ ​ເຊິ່ງຈະ​ມີ​ຂອບ​ເຂດ​ການ​ໃຊ້​ງານ​ຢູ່​ພາຍ​ໃນ​ບ໋ອກທີ່​ກຳນົດ​ຂຶ້ນ​ເທົ່າ​ນັ້ນ ຕົວ​ແປ​ປະ​ເພດ​ນີ້​ຈະ​ຖືກ​ສ້າງ​ຂຶ້ນ​ເມື່ອ​ມີ​ການ​ເອີ້ນ​ໃຊ້​ງານ​​ເມ​ທອດ​ທີ່​ຕົວ​ແປ​ປະກາດ​ຢູ່ ​ແລະ​ຈະ​ຖືກ​ລົບ​ຖິມ​ເມື່ອ​ສິ້ນ​ສຸດ​ການ​ທຳ​ງານ​ຂອງ​ເມ​ທອດ ​ດັ່ງ​ນັ້ນ​ໃນ​ບາງ​ເທື່ອ​ຈະ​ເອີ້ນ​ຕົວ​ແປ​ປະ​ເພດ​ນີ້​ວ່າ​ຕົວ​ແປ​ຊົ່ວຄາວ (temporary variable) ຕົວ​ແປ​ທີ່​ປະກາດ​ຢູ່​​ໃນ argument ຂອງ​ເມ​ທອດ ກໍ່​ຈັດ​ຢູ່​ໃນ​ຕົວ​ແປ​ປະ​ເພດ​ນີ້​ຄື​ກັນ

    ​ໂປຣ​ແກຣມທີ2.6 ສະ​ແດງ​ຕົວຢ່າງ​ຂອງ​ການ​ປະກາດ​ແລະ​ໃຊ້​ງານ​ຕົວ​ແປ​ພາຍ​ໃນ​ແລະ​ຕົວ​ແປ​ຂອງ​ອອບ​ເຈັກ ຄາດ ScopeExample ຈະ​ມີ​ຕົວ​ແປ​ຂອງ​ອອບ​ເຈັກ i ທີ່​ຖືກ​ສ້າງ​ຂຶ້ນ​ເມື່ອ​ມີ​ການ​ສ້າ​ງອອບ​ເຈັກ​ຂອງ​ຄາດ​ແລະ​ເກັບ​ຢູ່​ໃນ Heap Memory  ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ2.5 ​​ແລະ​​ເມື່ອ​ມີ​ການ​ເອີ້ນ​ໃຊ້​ເມ​ທອດ method1() ​ແລະ method2 () ຕົວ​ແປ​ພາຍ​ໃນ i ​ແລະ j ຈະ​ຖືກ​ສ້າງ​ຂຶ້ນ​ແລະ​ຖືກ​ລົບ​ຖິມ​ໄປ​ເມື່ອ​ອອກ​ຈາກ​ເມ​ທອດ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ2.5





​ໂປຣ​ແກຣມທີ2.6 ຕົວຢ່າງ​ສະ​ແດງຕົວ​ແປ​ພາຍ​ໃນ​ແລະ​ຕົວ​ແປ​ຂອງ​ອອບ​ເຈັກ​
Text Box: public class ScopeExample {
   private int i=1;
   public void method1() {
      int i=4, j=5;
      this.i = i+j;
      method2(7);
   }
   public void method2(int i) {
      int j=8;
      this.i = i+j;
   }
}
----------------------------------------------------------
public class TestScoping {
   public static void main(String args[]) {
      ScopeExample scope = new ScopeExample();
      scope.method1();
   }
}
 















































ຮູບ​ທີ2.5 ການ​ເກັບ​ຄ່າ​ຂອງ​ຕົວ​ແປ​ໃນ​ໜ່ວຍ​ຄວາມ​ຈຳ

      ພາສາ​ຈາ​ວາ​ກຳນົດ​ວ່າ​ຕ້ອງ​ມີ​ການ​ກຳນົດ​ຄ່າ​ເລີ່​ມຕົ້ນ​ໃຫ້​ກັບ​ຕົວ​ແປ​ທີ່​ປະກາດ​ໄວ້ ກ່ອນ​ທີ່​ຈະ​ສາມາດ​ເອີ້ນ​ໃຊ້​ງານ​ໄດ້​ໃນ​ກໍລະນີ​ຂອງ​ຕົວ​ແປ​ຂອງ​ອອບ​ເຈັກ​ຫລື​ຕົວ​ແປ​ຂອງ​ຄາດ ພາສາ​ຈາ​ວາ​ຈະ​ກຳນົດ​ຄ່າ​ເລີ່​ມຕົ້ນ​ໃຫ້​ໂດຍ​ອັດຕະ​ໂນ​ມັດ​ດັ່ງ​ຕາ​ຕະລາງທີ2.5 ​ແຕ່​ໃນ​ກໍລະນີ​ຂອງ​ຕົວ​ແປ​ພາຍ​ໃນຈະ​ຕ້ອງ​ມີ​ຄຳ​ສັ່ງ​ໃນ​ການ​ກຳນົດ​ຄ່າ​ເລີ່​ມຕົ້ນ​ເອງ ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​ຈະ​ເກີດ​ຂໍ້​ຜິດພາດ​ໃນ​ຂັ້ນ​ຕອນ​ຄອມ​ພາຍ (Compile Error) ຕົວຢ່າງ​ເຊັ່ນ​ ຄຳ​ສັ່ງ
              public void demoMethod(){
              int x = (int)(Math.random()*10);
              int y,z;
              if (x > 5) {
              y = 6;
              }z
              = x+y;
              }
     ຈະ​​ເຮັດ​ໃຫ້​ໂປຣ​ແກຣມບໍ່​ສາມ​າດຄອມ​ພາຍ​ຜ່ານ​ໄດ້​ເນື່ອງ​ຈາກ​ຄ່າ y ມີ​ໂອ​ກາດ​ທີ່​ຈະ​ບໍ່​ຖືກ​ກຳນົດ​ຄ່າ​ເລີ່​ມຕົ້ນ​ກ່ອນ​ໃຊ້​ງານ

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

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