SlideShare a Scribd company logo
บทที่ 2
พื้น ฐานโปรแกรมภาษาจาวา
      (Overview of Java
Programming Language)

    อ.ธนิศ า เครือ ไวศยวรรณ
   คณะเทคโนโลยีส ารสนเทศ
สถาบัน เทคโนโลยีพ ระจอมเกล้า เจ้า
วัต ถุป ระสงค์
 แนะนำา สัญ ลัก ษณ์แ ละคำา ต่า งๆทีใ ช้ใ นภาษาจาวา
                                    ่
 แนะนำา ข้อ มูล ค่า คงที่แ ละชนิด ข้อ มูล แบบพืน ฐานที่
                                                ้
  ใช้ใ นภาษาจาวา
 แนะนำา การประกาศและคำา สั่ง กำา หนดค่า ตัว แปร

 แนะนำา ตัว ดำา เนิน การประเภทต่า งๆ

 อธิบ ายการแปลงชนิด ข้อ มูล

 แนะนำา ชนิด ข้อ มูล แบบอ้า งอิง

 แนะนำา คำา สัง ทีใ ช้ใ นการรับ ข้อ มูล และคำา สั่ง ที่ใ ช้
               ่ ่
  ในการแสดงผล
ไวยากรณ์ภ าษาจาวา (Java
           Syntax)
 คำา หรือ ข้อ ความทีส ามารถเขีย นในโปรแกรมภาษา
                     ่
 จาวาจะต้อ งเป็น คำา หรือ ข้อ ความในรูป แบบใดรูป
 แบบหนึง ของประเภทต่า งๆเหล่า นี้
       ่
  • คอมเม็น ต์ (Comment)
  • Identifier
  • คีย ์เ วิร ์ด (Keywords)
  • สัญ ลัก ษณ์แ ยกคำา (Separators)
  • ช่อ งว่า ง (Whitespace)
  • ข้อ มูล ค่า คงที่ (Literals)
คอมเม็น ต์
 คอมเม็น ต์ค ือ ข้อ ความทีแ ทรกอยูใ นโปรแกรม
                           ่       ่
 คอมเม็น ต์เ ขีย นไว้เ พือ
                          ่
   • อธิบ ายโปรแกรม
   • ให้ผ ู้อ ่า นเข้า ใจโปรแกรมง่า ยยิ่ง ขึ้น
   • ช่ว ยทำา ให้ก ารแก้ไ ขและปรับ ปรุง โปรแกรมเป็น ไปได้
    ง่า ยขึ้น
 ภาษาจาวากำา หนดรูป แบบของการเขีย นคอมเม็น ต์
 ไว้ส ามรูป แบบดัง นี้
   • //  This is a comment
   คอมเม็น ต์ส ำา หรับ ข้อ ความบรรทัด เดีย ว
   • /* This is also a comment */
   คอมเม็น ต์ส ำา หรับ ข้อ ความตั้ง แต่ห นึ่ง บรรทัด ขึ้น ไป
   • /** This is a comment for documentation */
ตัว อย่า งโปรแกรม
/* This program is to show
 /* This program is to show
   how to write comments
    how to write comments */*/
public class CommentDemo {{
 public class CommentDemo
        // Main method
         // Main method
       public static void main(String args[]) {{
        public static void main(String args[])
       /** This is aa comment for documentation */
        /** This is    comment for documentation */
               System.out.println("Document");
                System.out.println("Document");
       }}
}}
Identifier
 identifier  คือ ชือ ทีต ั้ง ขึ้น ในภาษาจาวา ซึง อาจ
                    ่ ่                           ่
 เป็น ชื่อ ของคลาส ชื่อ ของ            ตัว แปร หรือ ชื่อ
 ของเมธอด
 identifier   จะต้อ งเป็น ไปตามกฎการตั้ง ชือ ดัง นี้
                                            ่
  • identifier   จะต้อ งขึ้น ต้น ด้ว ยอัก ขระ A-Z, a-z, _ หรือ
    $ เท่า นั้น
  • identifier ที่ป ระกอบไปด้ว ยตัว อัก ขระมากกว่า หนึ่ง ตัว
    ตัว อัก ขระหลัง จากตัว แรกนั้น จะต้อ งเป็น ตัว อัก ขระข้า ง
    ต้น หรือ เป็น ตัว เลข 0 ถึง 9 เท่า นั้น
  • identifier จะต้อ งไม่ต รงกับ คีย ์เ วิร ์ด

 identifier  ในภาษาจาวาเป็น case sensitive
 ทำา ให้ myVariable แตกต่า งจาก MyVariable
ตัว อย่า งของ Identifier
ถูก ต้อ ง                      ไม่ถ ูก ต้อ ง
  •   MyVariable                   •   My Variable

  •   _MyVariable                  •   9pns
  •   $x                           •   a+c

  •
      This_is_also_a_variable
                                   •   Hello'World
                                   •   public
หลัก การตั้ง ชื่อ ที่ป ฏิบ ัต ิก ัน โดย
                 ทั่ว ไป
 การตั้ง ชือ ของคลาส
            ่
   • จะขึ้น ต้น ด้ว ยตัว อัก ษรพิม พ์ใ หญ่แ ล้ว ตามด้ว ยตัว อัก ษร
     พิม พ์เ ล็ก หรือ ตัว เลข โดยจะใช้ต ัว อัก ษรพิม พ์ใ หญ่
     เฉพาะอัก ษรนำา ของแต่ล ะคำา ที่ต ามมาในชื่อ
   • ควรเป็น คำา นาม
   • ตัว อย่า งเช่น Sample, HelloWorld, Student หรือ
     GraduateStudent เป็น ต้น


 การตั้ง ชือ ของตัว แปร
            ่
   • จะขึ้น ต้น ด้ว ยตัว อัก ษรพิม พ์เ ล็กโดยจะใช้ต ัว อัก ษรพิม พ์
     ใหญ่เ ฉพาะอัก ษรนำา ของแต่ล ะคำา ที่ต ามมาในชื่อ
   • ควรเป็น คำา นามหรือ เป็น ชื่อ สั้น ๆ
   • ตัว อย่า งเช่น x, i, name, id หรือ gpa เป็น ต้น
หลัก การตั้ง ชื่อ ที่ป ฏิบ ัต ิก ัน โดย
                 ทั่ว ไป
 การตั้ง ชือ เมธอด
            ่
   • จะใช้ห ลัก การเดีย วกับ การตั้ง ชื่อ ตัว แปร   แต่ค วรเป็น คำา
     กริย า
   • ตัว อย่า งเช่น   getName, setName      หรือ   showDetails
     เป็น ต้น

 การตั้ง ชือ ค่า คงที่
            ่
   • จะใช้ต ัว อัก ษรพิม พ์ใ หญ่ท ั้ง หมด   และจะแยกคำา โดยใช้
     เครื่อ งหมาย _ (underscore)
   • ควรเป็น คำา นาม
   • ตัว อย่า งเช่น MIN_GPA เป็น ต้น
คีย ์เ วิร ์ด
 คีย เ วิร ์ด คือ ชื่อ ทีม ค วามหมายพิเ ศษในภาษาจาวา
      ์                   ่ ี
 คีย เ วิร ์ด ทุก ตัว จะเป็น ตัว อัก ษรตัว พิม พ์เ ล็ก
      ์
 คีย เ วิร ์ด goto
      ์               และ    const
   • เป็น คีย ์เ วิร ์ด ที่ไ ม่ไ ด้ต รงกับ คำา สั่ง ใดในภาษาจาวา

 คำา ว่า true    และ     false
   • ไม่ไ ด้เ ป็น คีย ์เ วิร ์ด ในภาษาจาวา   แต่จ ะเป็น ข้อ มูล ค่า
     คงที่ช นิด ตรรกะ
 คำา ว่า null
   • ไม่ไ ด้เ ป็น คีย ์เ วิร ์ด ในภาษาจาวา  แต่จ ะเป็น ข้อ มูล ค่า
     คงที่ข องตัว แปรที่ม ีช นิด ข้อ มูล เป็น ประเภทอ้า งอิง
คีย ์เ วิร ์ด ที่ใ ช้ใ นภาษาจาวา
abstract   continue   for          new         switch
assert     default    goto         package     synchronized
boolean    do         if           private     this
break      double     implements   protected   throw
byte       else       import       public      throws
case       enum       instanceof   return      transient
catch      extends    int          short       try
char       final      interface    static      void
class      finally    long         strictfp    volatile
const      float      native       super       while
สัญ ลัก ษณ์์แ ยกคำา
สัญ ลัก ษณ์
                              หน้า ที่
  แยกคำา
              เพื่อ ระบุก ารสิ้น สุด ของคำา สั่ง
     ;
              ต่า งๆ
              สำา หรับ ต่อ ท้า ยเมธอดหรือ คำา สั่ง
    ()
              เช่น if,for
     ,        สำา หรับ แยกตัว แปรหรือ คำา สั่ง
              เพื่อ ใช้ใ นการระบุค ุณ ลัก ษณะ
     .        หรือ เมธอดของ ออปเจ็ค หรือ ใช้
              ในการระบุแ พคเก็จ
    {}        เพื่อ ระบุบ ล็อ กคำา สั่ง
ช่อ งว่า ง
 โปรแกรมภาษาจาวาสามารถทีจ ะมีช ่อ งว่า งเพือ ที่
                         ่                  ่
 แยกคำา ประโยค หรือ คำา สั่ง ต่า งๆภายในโปรแกรม
 ได้
 รูป แบบของช่อ งว่า งประกอบด้ว ย
  • ช่อ งว่า ง (กดคีย ์ Space บนคีย ์บ อร์ด )
  • แท็ป (กดคีย ์ Tab บนคีย ์บ อร์ด )
  • การขึ้น บรรทัด ใหม่ (กดคีย ์ Enter บนคีย ์บ อร์ด )
ข้อ มูล ค่า คงที่
 ข้อ มูล ค่า คงที่ค ือ คำา ทีใ ช้แ สดงข้อ มูล ทีเ ป็น ตัว เลข
                              ่                  ่
  ตัว อัก ขระ ข้อ ความ หรือ ค่า ทางตรรกะ
 ข้อ มูล ค่า คงที่แ บ่ง ออกเป็น   5 ประเภทดัง นี้
   • ตรรกะ (boolean)
   • ตัว อัก ขระ (character)
   • ตัว เลขจำา นวนเต็ม (integral)
   • ตัว เลขทศนิย ม (floating point)
   • ข้อ ความ (string)
ชนิด ข้อ มูล แบบพื้น ฐาน
 ชนิด ข้อ มูล ในภาษาจาวาแบ่ง เป็น สองประเภท
 ใหญ่ๆ คือ
   • ชนิด ข้อ มูล แบบพื้น ฐาน (primitive data type)
   • ชนิด ข้อ มูล แบบอ้า งอิง (reference data type)


 ชนิด ข้อ มูล แบบพืน ฐาน แบ่ง ออกเป็น
                    ้                           4 ประเภท
 ดัง นี้
   • ชนิด ข้อ มูล ตรรกะ (Logical) คือ ชนิด boolean
   • ชนิด ข้อ มูล อัก ขระ (Textual) คือ ชนิด char
   • ชนิด ข้อ มูล ตัว เลข จำา นวนเต็ม (Integral) คือ ชนิด
    byte,short,int และ long
   • ชนิด ข้อ มูล ตัว เลข ทศนิย ม   (Floating point) คือ ชนิด
    float   และ   double
ขนาดและช่ว งค่า ของชนิด ข้อ มูล
       แบบพื้น ฐาน
ชนิด ข้อ มูล ขนาด (บิต )            ช่ว งค่า
  boolean        1           true   หรือ false
                               'u0000' ถึง
   char          16
                                  'uFFFF'
   byte           8           -128 ถึง +127
   short         16        -32,768 ถึง +32,767
    int          32                 -231 ถึง
                              +231-1
                                    -263 ถึง
   long          64
                              +263-1
                               -3.40E+38 ถึง
   float         32
                                +3.40E+38
                             -1.80E+308 ถึง
  double         64
                               +1.80E+308
ข้อ มูล ชนิด ตรรกะ
 ข้อ มูล ชนิด ตรรกะมีข ้อ มูล ค่า คงทีอ ยู่
                                       ่             2 ค่า คือ
   •   true   และ   false

 ตัว อย่า ง เช่น     คำา สั่ง
   •   boolean flag = true;
   เป็น การกำา หนดตัว แปร ที่ช ื่อ ว่า   flag   ให้มีช นิด ข้อ มูล เป็น
       boolean
   โดยกำา หนดให้ม ีค ่า เป็น     true
ข้อ มูล ชนิด ตัว อัก ขระ
 ข้อ มูล ชนิด ตัว อัก ขระใช้เ พือ แสดงตัว อัก ขระหนึง
                                 ่                   ่
  ตัว ซึ่ง ถูก เก็บ อยู่ใ นรูป ของมาตรฐาน Unicode
  ขนาด 16 บิต
 โดยจะมีค ่า ตั้ง แต่    ‘u0000’ ถึง ‘uFFFF’
 ตัว อย่า งเช่น    คำา สั่ง
   •   char letter = ‘u0041';
   เป็น การประกาศตัว แปรที่ช ื่อ ว่า      letter   ให้เ ป็น ข้อ มูล ชนิด
       char
   โดยมีค ่า เป็น u0041 ซึ่ง มีค ่า เท่า กับ ตัว อัก ษร   A

 ตัว อย่า งเช่น    คำา สั่ง
   •   char letter = ‘A’;
   เป็น การประกาศตัว แปรที่ช ื่อ ว่า      letter   ให้เ ป็น ข้อ มูล ชนิด
       char
อัก ขระพิเ ศษที่น ิย มใช้ท ว ไป
                           ั่
อัก ขระ   Unicode    ความหมาย
 'b'     'u000B'    Backspace

 't'     'u0009'       Tab

 'n'     'u000A'     New line

 'r'     'u000D'      Return

 ''     'u005C'    Backslash

 '''     'u0027'   Single quote

 '"'     'u0022'   Double quote
ข้อ มูล ชนิด ตัว เลขจำา นวนเต็ม
 มีช นิด ข้อ มูล พืน ฐาน
                    ้       4 ชนิด คือ
   •   byte, short, int, long
 โดยทัว ไปข้อ มูล ชนิด ตัว เลขจำา นวนเต็ม จะถูก
       ่
  กำา หนดให้ม ช นิด ข้อ มูล เป็น
              ี                    int
 ข้อ มูล ค่า คงที่ส ามารถเขีย นได้ส ามแบบดัง นี้
   • เลขฐานสิบ คือ การเขีย นเลขจำา นวนเต็ม ทั่ว ไป   อาทิเ ช่น
     -121 และ 75362 เป็น ต้น
   • เลขฐานแปดคือ การเขีย นเลขจำา นวนเต็ม ที่ข ึ้น ต้น ด้ว ย
     เลข 0 แล้ว ตามด้ว ยตัว เลขตั้ง แต่ 0 ถึง 7 อาทิเ ช่น
     016 (มีค ่า เท่า กับ 14 ในเลขฐานสิบ )
   • เลขฐานสิบ หกคือ การเขีย นเลขจำา นวนเต็ม ที่ข ึ้น ต้น ด้ว ย
     0x หรือ 0X แล้ว ตามด้ว ยตัว เลขตั้ง แต่ 0 ถึง 9 หรือ
     ตัว อัก ษร A ถึง F อาทิเ ช่น 0xA2 (มีค ่า เท่า กับ 162
     ในเลขฐานสิบ )
ข้อ มูล ชนิด ตัว เลข จำา นวนเต็ม
 ข้อ มูล ค่า คงที่ข องเลขจำา นวนเต็ม ทีเ ป็น ชนิด long
                                        ่
 จะมีต ัว อัก ษร l หรือ L ต่อ ท้า ย อาทิเ ช่น
   • 2l     หมายถึง เลขฐานสิบ ที่ม ีค ่า เป็น 2 ซึ่ง เป็น ข้อ มูล
     ชนิด long
   • 077L      หมายถึง เลขฐานแปดที่เ ป็น ข้อ มูล ชนิด long
   • 0xBAACL หมายถึง เลขฐานสิบ หกที่เ ป็น ข้อ มูล ชนิด
    long
ข้อ มูล ชนิด ตัว เลขทศนิย ม
             (floating point)
 ข้อ มูล ชนิด ตัว เลขทศนิย มจะเป็น เลขทีม ี
                                         ่
  เครื่อ งหมายจุด ทศนิย ม อาทิเ ช่น
   • 3.14   หรือ 3.0
 มีช นิด ข้อ มูล พืน ฐาน
                    ้      2 ชนิด คือ double และ float
 โดยทัว ไปข้อ มูล ชนิด ตัว เลขทศนิย มจะถูก กำา หนด
         ่
  ให้ม ช นิด ข้อ มูล เป็น double
       ี
 สามารถเขีย นในรูป แบบของเลขยกกำา ลัง สิบ
  (exponential form) ได้โ ดยใช้ต ัว อัก ษร E หรือ e
  ระบุจ ำา นวนทีเ ป็น เลขยกกำา ลัง สิบ อาทิเ ช่น
                ่
   • 6.02E23    หรือ 2e-7
ข้อ มูล ชนิด ตัว เลขทศนิย ม
 ข้อ มูล ชนิด ตัว เลขทศนิย มที่ม ช นิด ข้อ มูล เป็น float
                                  ี
  จะมีต ัว อัก ษร F หรือ f ต่อ ท้า ย อาทิเ ช่น
   • 2.718F   หรือ 3.14f
 ข้อ มูล ชนิด ตัว เลขทศนิย มที่ม ช นิด ข้อ มูล เป็น double
                                  ี
  จะมีต ัว อัก ษร D หรือ d ต่อ ท้า ย อาทิเ ช่น
   • 2.718D   (โดยทั่ว ไปไม่จ ำา เป็น ต้อ งใส่ต ัว อัก ษร D เพราะ
    ข้อ มูล ชนิด ตัว เลขทศนิย มจะกำา หนดให้เ ป็น double อยู่
    แล้ว )
ตัว แปร (Variable)
 ตัว แปรคือ ข้อ มูล ทีส ามารถเปลี่ย นแปลงค่า ได้ใ น
                       ่
  โปรแกรมโดยใช้ค ำา สัง กำา หนดค่า
                      ่
 คำา สั่ง ในการประกาศตัว แปรของภาษาจาวามีร ูป
  แบบดัง นี้
     dataType variableName[,variableName];

 ตัว อย่า งเช่น   คำา สั่ง
     int amount;
     double x,y;
     float price,wholeSalePrice;
คำา สัง กำา หนดค่า (Assignment
         ่
                Statement)
 คำา สั่ง กำา หนดค่า จะเป็น คำา สั่ง ทีใ ช้ใ นการ
                                        ่
  เปลี่ย นแปลงค่า ของตัว แปร
 คำา สั่ง กำา หนดค่า   (assignment statement) ซึ่ง มี
  รูป แบบดัง นี้
     variableName = expression;

 ตัว อย่า งเช่น
     x = 1;
     radius = 3.14;
     c = ‘a’;
     y = x+4*3;
     amount = 121+14;
คำา สั่ง ประกาศและกำา หนดค่า ตัว
                  แปร
 เราสามารถทีจ ะประกาศและกำา หนดค่า เริ่ม ต้น ของ
             ่
  ตัว แปรภายในคำา สัง เดีย วกัน โดยมีร ูป แบบคำา สั่ง
                    ่
  ดัง นี้
    dataType variableName = expression
                [,variableName = expression];

 ตัว อย่า งเช่น
    int amount = 123;
    float price = 12.0f;
    double x = 4.0, y = 2.5;
ตัว อย่า งโปรแกรม
public class VariableAssignDemo {
 public class VariableAssignDemo {
    public static void main(String args[]) {
     public static void main(String args[]) {
        int x,y;
         int x,y;
        boolean b1;
         boolean b1;
        float z = 3.414f; /* The program will not be
         float z = 3.414f; /* The program will not be
                           compiled successfully if
                            compiled successfully if
                           a character f is missing */
                            a character f is missing */
        double w;
         double w;
        x = 5;
         x = 5;
        y = 4;
         y = 4;
        b1 = (x > y);
         b1 = (x > y);
        w = x * 3.2;
         w = x * 3.2;
        System.out.println("x = " + x + " y = " + y);
         System.out.println("x = " + x + " y = " + y);
        System.out.println("b1 = " + b1);
         System.out.println("b1 = " + b1);
        System.out.println("z = " + z + " w = " + w);
         System.out.println("z = " + z + " w = " + w);
    }}
}}
ค่า คงที่
 การประกาศค่า คงทีใ นภาษาจาวาทำา ได้โ ดยการ
                   ่
  ใส่ค ีย เ วิร ์ด final หน้า คำา สั่ง ประกาศช์ื์ ่อ โดยมี
          ์
  รูป แบบดัง นี้
     final dataType CONSTANT_NAME = expression;

 ตัว อย่า งเช่น   คำา สั่ง
     final int MINIMUM = 4;
     final double MIN_GPA = 2.00;
ตัว อย่า งโปรแกรม
public class ConstantDemo {
 public class ConstantDemo {
    public static void main(String args[]) {
     public static void main(String args[]) {
        final int MAXIMUM = 10;
         final int MAXIMUM = 10;
        final double MIN_GPA;
         final double MIN_GPA;

           System.out.println("Maximum is " + MAXIMUM);
            System.out.println("Maximum is " + MAXIMUM);
           MIN_GPA = 2.00;
            MIN_GPA = 2.00;
           System.out.println("Minimum GPA is " + MIN_GPA);
            System.out.println("Minimum GPA is " + MIN_GPA);
//
 //        MIN_GPA = 3.00;
            MIN_GPA = 3.00; //illegal
                              //illegal
      }}
}}
ขอบเขตของตัว แปรและค่า คงที่
 ตัว แปรและค่า คงทีซ ึ่ง ประกาศขึ้น จะสามารถใช้
                    ่
 งานภายในบล็อ กคำา สั่ง ({ }) ทีป ระกาศเท่า นัน
                                ่             ้
 ภาษาจาวาแบ่ง ตัว แปรและค่า คงทีเ ป็น สองประเภท
                                 ่
 คือ
  • ตัว แปรหรือ ค่า คงที่ท ี่เ ป็น คุณ ลัก ษณะของออปเจ็ค หรือ
    คุณ ลัก ษณะของคลาส
  • ตัว แปรหรือ ค่า คงที่ท ี่อ ยู่ใ นบล็อ กของเมธอดที่เ รีย กว่า
    ค่า คงที่ภ ายใน (local constant) หรือ ตัว แปรภายใน
    (local variable)
ค่า เริ่ม ต้น อัต โนมัต ิข องตัว แปร
 ตัว แปรทีเ ป็น คุณ ลัก ษณะของออปเจ็ค หรือ
           ่
 คุณ ลัก ษณะของคลาสจะถูก กำา หนดค่า เริ่ม ต้น ให้
 โดยอัต โนมัต ิ
            ชนิด ข้อ มูล ค่า เริ่ม ต้น
               boolean        false
                 byte           0
                short           0
                  int           0
                 long          0L
                float         0.0f
               double          0.0
                 char       'u0000'
                คลาส         null
ตัว อย่า งโปรแกรม
public class VariableScopeDemo {
 public class VariableScopeDemo {
    public int i;
     public int i;     // object variable
                        // object variable

    public void method1() {
     public void method1() {
        int j = 4;
         int j = 4;    // local variable
                        // local variable
        int k = 2;
         int k = 2;    // another local variable
                        // another local variable
    }}
    public void method2() {
     public void method2() {
        int j = 0;
         int j = 0;    // local variable
                        // local variable
        System.out.println(i);
         System.out.println(i);
                       // calling an object variable i
                        // calling an object variable i
//
 //     System.out.println(k);
         System.out.println(k);    // illegal
                                    // illegal
    }}
}}
ตัว ดำา เนิน การ (Operator)
 นิพ จน์ภ าษาจาวาอาจจะประกอบด้ว ยข้อ มูล ค่า
 คงที่ ตัว แปร หรือ ค่า คงทีต ่า งๆ โดยจะมีต ัว ดำา เนิน
                            ่
 การต่า งๆไว้เ พือ คำา นวณหาผลลัพ ธ์ท เ ป็น ชนิด
                 ่                      ี่
 ข้อ มูล ต่า งๆ
 ตัว ดำา เนิน การในภาษาจาวาแบ่ง ออกเป็น           4
 ประเภทคือ
  • ตัว ดำา เนิน การทางคณิต ศาสตร์   (Arithmetic
    Operator)
  • ตัว ดำา เนิน การแบบสัม พัน ธ์ (Relational Operator)
  • ตัว ดำา เนิน การทางตรรกศาสตร์ (Logical Operator)
  • ตัว ดำา เนิน การแบบบิต (Bitwise Operator)
ตัว ดำา เนิน การทางคณิต ศาสตร์

  เครื่อ งหม   ความ     ตัว อย่า ง
     าย        หมาย      นิพ จน์
      +         บวก       a+b
      -          ลบ        a-b
      *         คูณ        a*b
      /          หาร      a/b
               เศษจาก
      %                   a%b
               การหาร
ตัว ดำา เนิน การทางคณิต ศาสตร์แ บบ
                 ย่อ
    เครื่อ งหม                ความ
                 ตัว อย่า ง
       าย                     หมาย
       +=         x+=3        x = x+3
        -=         x-=3       x = x-3
       *=         x*=3        x = x*3
       /=         x/=3        x = x/3
       %=         x%=3        x = x%3
ตัว ดำา เนิน การเพิม ค่า และลดค่า
                       ่
 ตัว ดำา เนิน การเพือ บวกค่า ทีล ะ
                     ่                 1 หรือ ลดค่า ทีล ะ 1
 เครื่อ งหมาย ++          หรือ   --
 ตัว อย่า ง
   •   x++   คือ   x   =   x+1
   •   ++x   คือ   x   =   x+1
   •   x--   คือ   x   =   x-1
   •   --x   คือ   x   =   x-1

 ถ้า วางเครื่อ งหมายไว้ข ้า งหน้า        โปรแกรมจะ
  คำา นวณค่า ก่อ นแล้ว จึง ทำา คำา สั่ง
 ถ้า วางเครื่อ งหมายไว้ข ้า งหลัง        โปรแกรมจะ
  คำา นวณค่า หลัง จากทำา คำา สัง
                               ่
ตัว อย่า งโปรแกรม
  public class IncrementDemo {
   public class IncrementDemo {
      public static void main(String args[]) {
       public static void main(String args[]) {
           int x;
            int x;
           int y;
            int y;
           x = 5;
            x = 5;
           y = x++;
            y = x++;
           System.out.println("x = "+x+" y = "+y);
            System.out.println("x = "+x+" y = "+y);
           y = ++x;
            y = ++x;
           System.out.println("x = "+x+" y = "+y);
            System.out.println("x = "+x+" y = "+y);
      }}
  }}


                              x = 6      y = 5
ผลลัพ ธ์ท ไ ด้จ ากการรัน โปรแกรม 7
          ี่                  x =        y = 7
ตัว ดำา เนิน การแบบสัม พัน ธ์

เครื่อ งห          ตัว อย่า ผลลัพ
          ความหมาย
  มาย                  ง      ธ์
   <      น้อ ยกว่า      3<4    true

        น้อ ยกว่า หรือ
                         3<=4   true
            เท่า กับ
   >       มากกว่า       3>4    false

        มากกว่า หรือ
  >=                     3>=4   false
            เท่า กับ
  ==        เท่า กับ     3==4   false

  !=      ไม่เ ท่า กับ   3!=4   true
ตัว อย่า งโปรแกรม
public class BooleanDemo {
 public class BooleanDemo {
    public static void main(String args[]) {
     public static void main(String args[]) {
         int x = 5;
          int x = 5;
         int y = 4;
          int y = 4;
         boolean b1;
          boolean b1;
         b1 = (x!=y);
          b1 = (x!=y);
         System.out.println("x not equal to y is "+b1);
          System.out.println("x not equal to y is "+b1);
         System.out.println("y less than 0 is "+(y<0));
          System.out.println("y less than 0 is "+(y<0));
    }}
}}
ตัว ดำา เนิน การทางตรรกศาสตร์

   เครื่อ งห
                  ความหมาย
     มาย
        !       กลับ ค่า ทางตรรกะ
    && หรือ
                AND ค่า ทางตรรกะ
        &
    || หรือ |   OR ค่า ทางตรรกะ
                Exclusive-OR ค่า
       ^
                   ทางตรรกะ
ตัว อย่า งการใช้ต ัว ดำา เนิน การทาง
           ตรรกศาสตร์
         นิพ จน์              ผลลัพ ธ์
     (7>6) && (2<1)   false

    (7>6) || (2<1)    true

       !(7>6)         false
ผลลัพ ธ์ข องการกลับ ค่า ทางตรรกะ

         op      !op
         true    false

        false    true
ผลลัพ ธ์ข องการ AND ค่า ทาง
            ตรรกะ

                   op1 &&
  op1      op2
                    op2
   true    true     true

   true    false    false

  false    true     false

  false    false    false
ผลลัพ ธ์ข องการ OR ค่า ทางตรรกะ

                     op1 ||
    op1      op2
                      op2
     true    true     true

     true    false    true

    false    true     true

    false    false   false
ผลลัพ ธ์ข อง Exculsive ORค่า ทาง
              ตรรกะ

                     op1 ^
     op1     op2
                      op2
     true     true    false

     true    false    true

    false     true    true

    false    false    false
ตัว ดำา เนิน การแบบบิต
 ตัว ดำา เนิน การแบบบิต ของเลขจำา นวนเต็ม

                ตัว ดำา เนิน
                               ความหมาย
                    การ
                              Compleme
                     ~
                                   nt
                       &         AND
                        |         OR
 ตัว ดำา เนิน การแบบ shift บิต
                       ^         XOR
                 ตัว ดำา เนิน
                               ความหมาย
                     การ
                              signed right
                     >>
                                  shift
                              unsigned
ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน
               การ
   ลำา ดับ
              เรีย งจาก        ตัว ดำา เนิน การ
      ที่
             ขวาไปซ้า ย   (R   ++, --, +, -, ~, !
     1
                  to L)          (data type)
             ซ้า ยไปขวา   (L
     2                             *, /, %
                  to R)
             ซ้า ยไปขวา   (L
     3                               +, -
                  to R)
             ซ้า ยไปขวา   (L
     4                          <<, >>, >>>
                  to R)
             ซ้า ยไปขวา   (L    <, >, <=, >=,
     5
                  to R)            instanceof

             ซ้า ยไปขวา   (L
ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน
               การ
   ลำา ดับ
              เรีย งจาก        ตัว ดำา เนิน การ
      ที่
             ซ้า ยไปขวา   (L
     8                                ^
                  to R)
             ซ้า ยไปขวา   (L
     9                                |
                  to R)
             ซ้า ยไปขวา   (L
     10                              &&
                  to R)
             ซ้า ยไปขวา   (L
     11                               ||
                  to R)
             ขวาไปซ้า ย   (R
     12                               ?:
                  to L)
                                  =, +=, -=,
ตัว อย่า ง
คำา สัง
      ่  x = 2+3*4-(7+2); คำา นวณหาผลลัพ ธ์
 ตามลำา ดับ ดัง นี้
 คำา นวณหาผลลัพ ธ์ค ่า   7+2 ทำา ให้ไ ด้
    x = 2+3*4-9
 คำา นวณหาผลลัพ ธ์ค ่า   3*4 ทำา ให้ไ ด้
    x = 2+12-9
 คำา นวณหาผลลัพ ธ์ค ่า   2+12 ทำา ให้ไ ด้
    x = 14-9
 คำา นวณหาผลลัพ ธ์ค ่า   14-9 ทำา ให้ไ ด้
    x=5
การแปลงชนิด ข้อ มูล
 ในกรณีท ต ัว ถูก ดำา เนิน การทัง สองมีช นิด ข้อ มูล ที่
          ี่                     ้
  ต่า งกัน ภาษาจาวาจะมีห ลัก การแปลงชนิด ข้อ มูล
  (type conversion) ดัง นี้
   • ถ้า ตัว ถูก ดำา เนิน การตัว หนึ่ง มีช นิด ข้อ มูล เป็น double
                                                                ตัว
    ถูก ดำา เนิน การอีก ตัว หนึ่ง จะถูก แปลงให้ม ีช นิด ข้อ มูล เป็น
    double โดยอัต โนมัต ิ

   • ถ้า ตัว ถูก ดำา เนิน การทั้ง สองไม่ไ ด้ม ีช นิด ข้อ มูล เป็น double
     แต่ม ีต ัว ถูก ดำา เนิน การตัว หนึ่ง ที่ม ีช นิด ข้อ มูล เป็น float
    ตัว ถูก ดำา เนิน การอีก ตัว หนึ่ง จะถูก แปลงให้ม ีช นิด ข้อ มูล
    เป็น float โดยอัต โนมัต ิ

   • ถ้า ตัว ถูก ดำา เนิน การทั้ง สองไม่ไ ด้ม ีช นิด ข้อ มูล เป็น double
     หรือ float แต่ม ีต ัว ถูก ดำา เนิน การตัว หนึ่ง ที่ม ีช นิด ข้อ มูล
การแปลงชนิด ข้อ มูล
 กรณีอ ื่น ๆ ตัว ถูก ดำา เนิน การทัง สองจะแปลงให้ม ี
                                    ้
  ชนิด ข้อ มูล เป็น int
 ตัว อย่า ง
   byte b1, b2, b3;
   b1 = 2;
   b2 = 4;
   b3 = b1+b2;            //illegal
   • คำา สั่ง กำา หนดค่า b3 ไม่ถ ูก ต้อ งเนื่อ งจาก b1+b2   จะให้ค ่า
     ข้อ มูล ที่ม ีช นิด ข้อ มูล เป็น int
การแปลงชนิด ข้อ มูล
 การแปลงชนิด ข้อ มูล มีส องรูป แบบคือ

  • การแปลงข้อ มูล ที่ก ว้า งขึ้น (widening conversion)
    คือ การแปลงจากชนิด ข้อ มูล ที่ม ีข นาดเล็ก กว่า ไปเป็น
    ชนิด ข้อ มูล ที่ม ีข นาดใหญ่ก ว่า

  • การแปลงข้อ มูล ที่แ คบลง      (narrowing conversion)
    คือ การแปลงจากชนิด ข้อ มูล ที่ม ีข นาดใหญ่ก ว่า ไปเป็น
    ชนิด ข้อ มูล ที่ม ีข นาดเล็ก ลง ซึ่ง อาจมีผ ลให้เ สีย ความ
    ละเอีย ดของข้อ มูล บางส่ว นไป
หลัก การการแปลงชนิด ข้อ มูล
 ชนิด ข้อ มูล ตัว เลขจำา นวนเต็ม สามารถแปลงให้เ ป็น
 ชนิด ข้อ มูล ตัว เลขทศนิย มได้
 ชนิด ข้อ มูล float   สามารถแปลงให้เ ป็น ชนิด ข้อ มูล
  double ได้
 ชนิด ข้อ มูล ตัว เลขจำา นวนเต็ม มีข นาดเรีย งกัน จาก
 น้อ ยไปมากดัง นี้
          byte → short → int → long
 ชนิด ข้อ มูล char    สามารถแปลงให้เ ป็น ชนิด ข้อ มูล
  int ได้
 ชนิด ข้อ มูล boolean
                    จะไม่ม ค วามสัม พัน ธ์ก ับ ชนิด
                           ี
 ข้อ มูล แบบพืน ฐานอื่น ๆ
              ้
ตัว อย่า งของการแปลงชนิด ข้อ มูล
ภาษาจาวาจะปรับ ชนิด ข้อ มูล ให้อ ัต โนมัต ิ ในกรณี
 ต่อ ไปนี้
 กำา หนดค่า ชนิด ข้อ มูล ทีเ ล็ก กว่า ให้ก ับ ตัว แปรชนิด
                            ่
  ข้อ มูล ทีใ หญ่ก ว่า อาทิเ ช่น
            ่
   int i = 4;
   long l = i;
   นิพ จน์ i จะถูก ปรับ ชนิด ข้อ มูล จาก int     ให้เ ป็น   long   โดย
       อัต โนมัต ิ
 กำา หนดค่า ชนิด ข้อ มูล จำา นวนเต็ม ให้ก บ จำา นวนเลข
                                           ั
  ทศนิย มอาทิเ ช่น
   •   double x = 3;
   นิพ จน์ 3 จะถูก ปรับ ชนิด ข้อ มูล จาก   int   ให้เ ป็น   double
    โดยอัต โนมัต ิ
ตัว อย่า งโปรแกรม

public class PromotionDemo {
 public class PromotionDemo {
    public static void main(String args[]) {
     public static void main(String args[]) {
       int i;
        int i;
       long l;
        long l;
       float fl = 4.2f;
        float fl = 4.2f;
       i = 4;
        i = 4;
       l = i;
        l = i;
       fl = i;
        fl = i;
       double x = fl;
        double x = fl;
       fl = 4.2;
        fl = 4.2;        //illegal
                          //illegal
    }}
}}
Typecasting
 เราสามารถแปลงชนิด ข้อ มูล ขนาดใหญ่                ให้เ ป็น
  ชนิด ข้อ มูล ทีเ ล็ก กว่า ได้โ ดยวิธ ีก ารทีเ รีย กว่า
                 ่                            ่
  typecasting
 รูป แบบคำา สั่ง
     (target_type)expression;

 จะทำา ให้โ ปรแกรมสามารถคอมไพล์ผ ่า นได้

 บางกรณีอ าจทำา ให้ข ้อ มูล บางส่ว น สูญ หายไป
ตัว อย่า งของ Typecasting
 ตัว อย่า ง
   int amount = (int) 3.0;
   • แปลงนิพ จน์ท ี่ม ีค ่า 3.0   ข้อ มูล ชนิด double ให้เ ป็น ชนิด
     int


 ตัว อย่า งทีม ก ารตัด ข้อ มูล ออก
              ่ ี
   int x;
   double y = 1.25;
   x = (int) y;
ตัว อย่า งโปรแกรม

public class TypecastingDemo {
 public class TypecastingDemo {
    public static void main(String args[]) {
     public static void main(String args[]) {
       byte b1 = 4;
        byte b1 = 4;
       byte b2 = 3;
        byte b2 = 3;
       byte b3;
        byte b3;
       b3 = (byte)(b1+b2);
        b3 = (byte)(b1+b2);
       float fl;
        float fl;
       fl = (float)3.2;
        fl = (float)3.2;
    }}
}}
ชนิด ข้อ มูล แบบอ้า งอิง
 ชนิด ข้อ มูล แบบอ้า งอิง คือ ออปเจ็ค ในภาษาจาวา
  โดยแบ่ง ออกเป็น สองแบบคือ
   •   ชนิด ข้อ มูล ที่เ ป็น คลาส
   •   ชนิด ข้อ มูล ที่เ ป็น อะเรย์
 ชนิด ข้อ มูล แบบอ้า งอิง จะมีว ิธ ีก ารเก็บ ข้อ มูล ใน
  หน่ว ยความจำา ทีแ ตกต่า งจากการเก็บ ข้อ มูล ของ
                  ่
  ชนิด ข้อ มูล แบบพืน ฐานอาทิเ ช่น คำา สั่ง
                    ้
   int x = 7;
   String s = new String("Thana");
การประกาศตัว แปรและจองเนื้อ ทีใ น
                              ่
        หน่ว ยความจำา
 อาทิเ ช่น คำา สั่ง

                  int x;

            Date d;        d = new Date(16,8,2002);
คลาส          String

   String  เป็น คลาสทีก ำา หนดไว้ใ น Java API ตัว แปร
                          ่
    ทีม ช นิด ข้อ มูล เป็น String ก็ค ือ ออปเจ็ค ชนิด หนึง
      ่ ี                                                ่
    ซึ่ง String มีข ้อ แตกต่า งจากออปเจ็ค ทัว ๆไปดัง นี้
                                               ่
     •   String  เป็น ออปเจ็ค ที่ม ีค ่า คงที่ข ้อ มูล ซึ่ง ก็ค ือ ข้อ ความ
         ใดๆ ที่อ ยู่ภ ายในเครื่อ งหมาย double quote (“ ”)
         ตัว อย่า งเช่น
                  “This is a java course”
     •        เป็น ออปเจ็ค ที่ส ามารถสร้า งหรือ กำา หนดค่า ได้
         String
         โดยไม่จ ำา เป็น ต้อ งใช้ค ำา สั่ง new ตัว อย่า งเช่น เรา
         สามารถใช้ค ำา สั่ง
                  String s = “Thana”;
     • โดยไม่จ ำา เป็น ที่จ ะต้อ งใช้ค ำา สั่ง
                  String s = new String(“Thana”);
ตัว อย่า งโปรแกรม
public class StringDemo {
 public class StringDemo {
     public static void main(Stirng args[]){
      public static void main(Stirng args[]){
           String s1 = "Thana";
            String s1 = "Thana";
           String s2 = "Thana";
            String s2 = "Thana";
           String s3 = new String("Thana");
            String s3 = new String("Thana");
        }}
}}
คำา อธิบ ายโปรแกรม
 กรณีท ไ ม่ใ ช้ค ำา สั่ง new
        ี่                ภาษาจาวาจะพิจ ารณาจาก
  String Pool ว่า มีข ้อ ความเดิม อยู่ห รือ ไม่
 กรณีท ใ ช้ค ำา สัง new
        ี่         ่  ภาษาจาวาจะสร้า งข้อ ความ
  ใหม่แ ละจองเนือ ทีใ นหน่ว ยความจำา เสมอ
                ้ ่
String    เป็น ออปเจ็ค ที่เ ปลี่ย นค่า ไม่
                    ได้
 ตัว อย่า งเช่น   คำา สั่ง
     String s1;
     s1 = “Thanachart";
     s1 = “Somchai";
ตัว ดำา เนิน การที่ใ ช้ก ับ ข้อ มูล ชนิด
                           String
   String  เป็น ออปเจ็ค ทีม ต ัว ดำา เนิน การทีใ ช้ใ นการ
                           ่ ี                  ่
    เชือ มข้อ ความสองข้อ ความเข้า ด้ว ยกัน โดยใช้
       ่
    เครื่อ งหมาย + อาทิเ ช่น
       String s1 = “Hello” + “ World”;
 ตัว ดำา เนิน การในการเชื่อ มข้อ ความสามารถใช้
    เชือ มข้อ มูล ชนิด String กับ ตัว ถูก ดำา เนิน การที่เ ป็น
        ่
    ชนิด ข้อ มูล อื่น ๆ ภาษาจาวาจะแปลงชนิด ข้อ มูล ดัง
    กล่า วให้เ ป็น ชนิด String โดยอัต โนมัต ิอ าทิเ ช่น คำา
    สั่ง
       String s1 = “This";
       String s2 = s1 + “ is a test ”;
       String s3 = s1+4;
คำา สั่ง อิน พุต และเอาท์พ ุต
 ออปเจ็ค System.in    เป็น ออปเจ็ค ทีม เ มธอดสำา หรับ
                                      ่ ี
 การอ่า นข้อ มูล ทางอุป กรณ์อ ิน พุต มาตรฐาน ซึ่ง
 โดยทัว ไปก็ค ือ คีย บ อร์ด
      ่              ์
 ออปเจ็ค System.outเป็น ออปเจ็ค ทีม เ มธอดสำา หรับ
                                   ่ ี
 การแสดงข้อ มูล ออกทางอุป กรณ์เ อาท์พ ต  ุ
 มาตรฐานซึ่ง โดยทัว ไปคือ จอภาพ
                  ่
 ออปเจ็ค System.err
                   เป็น ออปเจ็ค ที่ม เ มธอดสำา หรับ
                                     ี
 การแสดงข้อ ผิด พลาด (error) ออกทางอุป กรณ์ท ี่
 ใช้ใ นการแสดงข้อ ผิด พลาด ซึง โดยทัว ไปจะ
                             ่          ่
 กำา หนดเป็น จอภาพ
System.out.println

 ออปเจ็ค System.out
                   หมายถึง ออปเจ็ค ทีช อ
                                       ่ ื่   out   ซึ่ง
 เป็น คุณ ลัก ษณะของคลาสทีช ื่อ System
                          ่
 ออปเจ็ค ทีช ื่อ out เป็น ออปเจ็ค ของคลาส
            ่
  PrintStream ทีม เ มธอดทีน ย มใช้ท ว ไปคือ
                 ่ ี        ่ ิ     ั่
          print(String s)

    และ   println(String s)
ตัว อย่า งโปรแกรม
   public class PrintDemo {
    public class PrintDemo {
       public static void main(String args[]) {
        public static void main(String args[]) {
           int x = 3, y = 4, z = 5;
            int x = 3, y = 4, z = 5;
           System.out.print("x = "+x);
            System.out.print("x = "+x);
           System.out.println(" y = "+y);
            System.out.println(" y = "+y);
           System.out.println("z = "+z);
            System.out.println("z = "+z);
       }}
   }}

                              x = 3 y = 4
ผลลัพ ธ์ท ไ ด้จ ากการรัน โปรแกรม 5
          ี่                  z =
การ รับ ข้อ มูล เข้า มาทาง
           Command Line
 เมธอดทีช ื่อ main() จะมี argument เป็น String
             ่
  args[] ซึง สามารถที่จ ะ รับ argument ทีส ง ผ่า นมา
           ่                             ่ ่
  จาก command line ได้
 ตัว อย่า งเช่น
  public class Sample {
     public static void main(String args[]) {
         System.out.println(“My name is ” + args[0] +
                           “ and I am a ” + args[1]);
     }
 }
 ถ้า ป้อ นอิน พุต ตรง    command line เป็น     java
  Sample Tommy boy
 จะได้ผ ลลัพ ธ์ค ือ     My name is Tommy and I am a boy
สรุป เนื้อ หาของบท
 คอมเม็น ต์
           คือ ข้อ ความทีแ ทรกอยูภ ายในโปรแกรม
                         ่       ่
 ซึ่ง คอมไพเลอร์จ ะไม่แ ปลข้อ ความนี้ใ ห้เ ป็น ส่ว น
 หนึง ของโปรแกรม
      ่
 identifier  คือ ชือ ทีต ั้ง ขึ้น ในภาษาจาวา ซึ่ง อาจ
                    ่ ่
 เป็น ชื่อ ของคลาส ชื่อ ของ             ตัว แปร ชื่อ ของ
 เมธอด หรือ ชื่อ ของค่า คงที่ ซึง จะต้อ งเป็น ไปตาม
                                      ่
 กฎการตั้ง ชือ่
 การตั้ง ชือ ในภาษาจาวา
            ่
   • สำา หรับ คลาส นิย มขึ้น ต้น ด้ว ยตัว อัก ษรพิม พ์ใ หญ่
   • สำา หรับ เมธอดและตัว แปร นิย มขึ้น ต้น ด้ว ยตัว อัก ษร
     พิม พ์เ ล็ก
   • ถ้า ชื่อ ที่ต ั้ง ขึ้น มีม ากกว่า 1 คำา นิย มขึ้น ต้น คำา ใหม่ด ้ว ยตัว
     อัก ษรพิม พ์ใ หญ่
สรุป เนื้อ หาของบท
 คีย เ วิร ์ด คือ ชื่อ ทีม ค วามหมายพิเ ศษในภาษาจาวา
      ์                   ่ ี
  คอมไพเลอร์ข องภาษา จาวาจะเข้า ใจความ
  หมายและคำา สัง ทีจ ะต้อ งดำา เนิน การสำา หรับ
                     ่ ่
  คีย เ วิร ์ด แต่ล ะตัว
      ์
 ข้อ มูล ค่า คงที่ค ือ คำา ทีใ ช้แ สดงข้อ มูล ทีเ ป็น ตัว เลข
                              ่                  ่
  ตัว อัก ขระ ข้อ ความ หรือ ค่า ทางตรรกะ
 ชนิด ข้อ มูล ในภาษาจาวาแบ่ง เป็น สองประเภทคือ
  ชนิด ข้อ มูล แบบพืน ฐานและชนิด ข้อ มูล แบบอ้า งอิง
                    ้
 ชนิด ข้อ มูล แบบพืน ฐานทีใ ช้ใ นภาษาจาวามี
                    ้      ่
  ทัง หมด 8 ชนิด คือ
    ้                    char,byte,
  short,int,long,float,double      และ   boolean
สรุป เนื้อ หาของบท
 ข้อ มูล ทีเ ก็บ อยูใ นโปรแกรมแบ่ง เป็น สองประเภท
            ่        ่
    คือ ตัว แปรและค่า คงที่ ซึง ตัว แปรคือ ข้อ มูล ที่
                               ่
    สามารถเปลี่ย นแปลงค่า ได้ใ นโปรแกรมโดยใช้ค ำา
    สั่ง กำา หนดค่า ส่ว นค่า คงทีค ือ ข้อ มูล ทีก ำา หนดค่า ได้
                                 ่              ่
    เพีย งครั้ง เดีย วและไม่ส ามารถเปลี่ย นแปลงค่า ได้
    ในโปรแกรม
 ตัว แปรทีม ก ารประกาศชนิด ข้อ มูล แล้ว สามารถที่
           ่ ี
    จะกำา หนดหรือ เปลี่ย นแปลงค่า ได้โ ดยใช้ค ำา สั่ง
    กำา หนดค่า
 การประกาศค่า คงทีใ นภาษาจาวาทำา ได้โ ดยการ
                   ่
    ใส่ค ีย เ วิร ์ด
            ์          final   หน้า คำา สั่ง ประกาศชื่อ

สรุป เนื้อ หาของบท
 ตัว ดำา เนิน การที่ใ ช้ใ นภาษาจาวามีท ง หมด
                                        ั้             4 แบบ
 คือ
   • ตัว ดำา เนิน การทางคณิต ศาสตร์   : +, -, *, /, %, +=, -=, *=,
     /=, %=, ++ และ --
   • ตัว ดำา เนิน การทางตรรกศาสตร์ : <, <=, >, >=, == และ
      !=
   • ตัว ดำา เนิน การแบบสัม พัน ธ์ : !, &&, &, || และ |
   • ตัว ดำา เนิน การแบบบิต : ~, &, |, ^, >>, >>> และ <<

 กรณีท น พ จน์ใ ดๆมีต ัว ดำา เนิน การมากกว่า หนึง ตัว
        ี่ ิ                                     ่
 ภาษาจาวาจะจัด ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน
 การ เพือ คำา นวณหาผลลัพ ธ์ต ามลำา ดับ ความ สำา คัญ
        ่
 ของตัว ดำา เนิน การ
สรุป เนื้อ หาของบท
 ความแตกต่า งระหว่า งการแปลงข้อ มูล โดย
 อัต โนมัต ิแ ละ Typecasting
   • การแปลงข้อ มูล โดยอัต โนมัต ิค ือ         การที่ช นิด ข้อ มูล ที่ม ี
     ขนาดเล็ก กว่า ถูก แปลงให้เ ป็น ชนิด ข้อ มูล ที่ม ีข นาดใหญ่
     กว่า โดยอัต โนมัต ิ
   • Typecasting คือ การที่จ ะต้อ งระบุช นิด ข้อ มูล ที่ม ีข นาด
     ใหญ่ก ว่า ให้ก ับ นิพ จน์ท ี่ม ีช นิด ข้อ มูล ขนาดเล็ก กว่า
 ชนิด ข้อ มูล แบบอ้า งอิง ซึง ก็ค ือ ออปเจ็ค ในภาษา
                             ่
 จาวา โดยแบ่ง ออกเป็น สองแบบคือ ชนิด ข้อ มูล ที่
 เป็น คลาส และชนิด ข้อ มูล ทีเ ป็น อะเรย์
                             ่
 ข้อ มูล ทีเ ก็บ ในหน่ว ยความจำา ของชนิด ข้อ มูล แบบ
            ่
 อ้า งอิง จะเป็น ตำา แหน่ง อ้า งอิง ทีเ ก็บ ข้อ มูล ในหน่ว ย
                                      ่
 ความจำา แต่ใ นกรณีข องชนิด ข้อ มูล แบบพืน ฐาน      ้
สรุป เนื้อ หาของบท
   String   เป็น ชนิด ข้อ มูล แบบคลาส ไม่ใ ช่ช นิด ข้อ มูล
  แบบพืน ฐาน
           ้
 คำา สั่ง ทีใ ช้ใ นการแสดงผลลัพ ธ์ข องข้อ มูล ในภาษา
              ่
  จาวาคือ คำา สั่ง System.out.println()
 เมธอดทีช ื่อ main() จะมี argument เป็น String
                  ่
  args[] ซึง สามารถที่จ ะ รับ argument ทีส ง ผ่า นมา
                ่                              ่ ่
  จาก command line ได้
แบบฝึก หัด
 แบบฝึก หัด ที่
            1 การประกาศและกำา หนดค่า เริ่ม ต้น
 ของตัว แปรและค่า คงที่
 แบบฝึก หัด ที่   2 การใช้ค ำา สั่ง กำา หนดค่า และนิพ จน์
   • จงเขีย นโปรแกรมภาษาจาวาเพื่อ คำา นวณหาค่า รากที่
    สองของสมการ
                   ax2 + bx + c = 0
    แล้ว พิม พ์ผ ลลัพ ธ์อ อกทางจอภาพ
 แบบฝึก หัด ที่3 การเขีย นโปรแกรมเพือ รับ ค่า
                                     ่
 อิน พุต ผ่า นทาง command line
   • จงเขีย นโปรแกรมภาษาจาวาเพื่อ คำา นวณหาค่า พื้น ที่
    ของวงกลม โดยมีก ารรับ ค่า รัศ มี (radius) เข้า มา แล้ว
    พิม พ์ผ ลลัพ ธ์ท ี่ไ ด้อ อกทางจอภาพ

More Related Content

What's hot (20)

PDF
คู่มือ Canon EOS 500D ภาษาไทย
Nara Tuntratisthan
 
PDF
การใช้คำว่า “ทรง” ในคำราชาศัพท์และการไม่ใช้คำว่า “ทรง” ในคำราชาศัพท์
Piyarerk Bunkoson
 
PDF
Ms excel 2016
smittichai chaiyawong
 
PDF
เครื่องมือต่างๆ ในโปรแกรม Paint
Benjapeon Jantakhot
 
PDF
วิเคราะห์คำประพันธ์
kwanboonpaitoon
 
PDF
บทความ วิเคราะห์ เพลง
Niran Dankasai
 
PPTX
ศาสนาซิกข์
Sudarat Ngonroth
 
PPTX
1.2 ส่วนต่างๆของหน้าจอของโปรแกรม sketch up 2015
วิชา อาคม
 
PDF
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิก
KruOrraphan Kongmun
 
PDF
ใบงานที่ 7 การคำนวณในตารางทำงาน
Meaw Sukee
 
PDF
คู่มือผลิตและประกันคุณภาพเภสัชตำรับโรงพยาบาลยา จากสมุนไพรในบัญชียาหลักแห่งชาต...
Utai Sukviwatsirikul
 
PPTX
อุปกรณ์เครือข่ายคอมพิวเตอร์
iamohm204
 
PPT
ระดับของภาษา
ณรงค์ศักดิ์ กาหลง
 
PPTX
10 intro-taxonomy
Killercute Coco Cola
 
PPTX
Wolfgang kohler
Wichapas Sungkapes
 
PDF
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
Khon Kaen University
 
PDF
โครโมโซม
Wan Ngamwongwan
 
PDF
ใบความรู้การสร้างคำในภาษาไทย
ห้องเรียน ภาษาไทยออนไลน์
 
PDF
ไขสันหลัง
Wan Ngamwongwan
 
PDF
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์
Joop Ssk
 
คู่มือ Canon EOS 500D ภาษาไทย
Nara Tuntratisthan
 
การใช้คำว่า “ทรง” ในคำราชาศัพท์และการไม่ใช้คำว่า “ทรง” ในคำราชาศัพท์
Piyarerk Bunkoson
 
Ms excel 2016
smittichai chaiyawong
 
เครื่องมือต่างๆ ในโปรแกรม Paint
Benjapeon Jantakhot
 
วิเคราะห์คำประพันธ์
kwanboonpaitoon
 
บทความ วิเคราะห์ เพลง
Niran Dankasai
 
ศาสนาซิกข์
Sudarat Ngonroth
 
1.2 ส่วนต่างๆของหน้าจอของโปรแกรม sketch up 2015
วิชา อาคม
 
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิก
KruOrraphan Kongmun
 
ใบงานที่ 7 การคำนวณในตารางทำงาน
Meaw Sukee
 
คู่มือผลิตและประกันคุณภาพเภสัชตำรับโรงพยาบาลยา จากสมุนไพรในบัญชียาหลักแห่งชาต...
Utai Sukviwatsirikul
 
อุปกรณ์เครือข่ายคอมพิวเตอร์
iamohm204
 
ระดับของภาษา
ณรงค์ศักดิ์ กาหลง
 
10 intro-taxonomy
Killercute Coco Cola
 
Wolfgang kohler
Wichapas Sungkapes
 
แผนการเรียนรู้การใช้งานโปรแกรม Microsoft Office Excel
Khon Kaen University
 
โครโมโซม
Wan Ngamwongwan
 
ใบความรู้การสร้างคำในภาษาไทย
ห้องเรียน ภาษาไทยออนไลน์
 
ไขสันหลัง
Wan Ngamwongwan
 
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์
Joop Ssk
 

Similar to Java Programming [2/12] : Overview of Java Programming Language (20)

PPT
งาน
nineza3214
 
PPT
Work
nineza3214
 
PDF
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
 
PDF
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
 
PDF
พื้นฐานโปรแกรมภาษาจาวา
Thanachart Numnonda
 
PDF
Java-Chapter 02 Data Operations and Processing
Wongyos Keardsri
 
PDF
ภาษา C#
ictyangtalad
 
PDF
พื้นฐานภาษาจาวา
T'tle Tanwarat
 
PDF
Java-Chapter 01 Introduction to Java Programming
Wongyos Keardsri
 
PDF
พื้นฐานภาษาจาวา
JK133
 
PDF
Chapter 1 : ทบทวนภาษาจาวา
Akkradet Keawyoo
 
PPT
พื้นฐานภาษาจาวา
Aeew Autaporn
 
PDF
2.Java fundamentals
UsableLabs
 
PDF
พื้นฐานภาษาจาวา
Saranporn Rungrueang
 
PPT
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
KEk YourJust'one
 
PDF
ใบความรู้ที่ 5
SubLt Masu
 
PDF
Java-Chapter 08 Methods
Wongyos Keardsri
 
PDF
Structure Statement VB.NET 2005
Warawut
 
PDF
ตัวแปรกับชนิดของข้อมูล
เทวัญ ภูพานทอง
 
งาน
nineza3214
 
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
 
บทที่ 3 พื้นฐานภาษา Java
Itslvle Parin
 
พื้นฐานโปรแกรมภาษาจาวา
Thanachart Numnonda
 
Java-Chapter 02 Data Operations and Processing
Wongyos Keardsri
 
ภาษา C#
ictyangtalad
 
พื้นฐานภาษาจาวา
T'tle Tanwarat
 
Java-Chapter 01 Introduction to Java Programming
Wongyos Keardsri
 
พื้นฐานภาษาจาวา
JK133
 
Chapter 1 : ทบทวนภาษาจาวา
Akkradet Keawyoo
 
พื้นฐานภาษาจาวา
Aeew Autaporn
 
2.Java fundamentals
UsableLabs
 
พื้นฐานภาษาจาวา
Saranporn Rungrueang
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
KEk YourJust'one
 
ใบความรู้ที่ 5
SubLt Masu
 
Java-Chapter 08 Methods
Wongyos Keardsri
 
Structure Statement VB.NET 2005
Warawut
 
ตัวแปรกับชนิดของข้อมูล
เทวัญ ภูพานทอง
 
Ad

More from IMC Institute (20)

PDF
นิตยสาร Digital Trends ฉบับที่ 14
IMC Institute
 
PDF
Digital trends Vol 4 No. 13 Sep-Dec 2019
IMC Institute
 
PDF
บทความ The evolution of AI
IMC Institute
 
PDF
IT Trends eMagazine Vol 4. No.12
IMC Institute
 
PDF
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IMC Institute
 
PDF
IT Trends 2019: Putting Digital Transformation to Work
IMC Institute
 
PDF
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
IMC Institute
 
PDF
IT Trends eMagazine Vol 4. No.11
IMC Institute
 
PDF
แนวทางการทำ Digital transformation
IMC Institute
 
PDF
บทความ The New Silicon Valley
IMC Institute
 
PDF
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
IMC Institute
 
PDF
แนวทางการทำ Digital transformation
IMC Institute
 
PDF
The Power of Big Data for a new economy (Sample)
IMC Institute
 
PDF
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
IMC Institute
 
PDF
IT Trends eMagazine Vol 3. No.9
IMC Institute
 
PDF
Thailand software & software market survey 2016
IMC Institute
 
PPTX
Developing Business Blockchain Applications on Hyperledger
IMC Institute
 
PDF
Digital transformation @thanachart.org
IMC Institute
 
PDF
บทความ Big Data จากบล็อก thanachart.org
IMC Institute
 
PDF
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
IMC Institute
 
นิตยสาร Digital Trends ฉบับที่ 14
IMC Institute
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
IMC Institute
 
บทความ The evolution of AI
IMC Institute
 
IT Trends eMagazine Vol 4. No.12
IMC Institute
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IMC Institute
 
IT Trends 2019: Putting Digital Transformation to Work
IMC Institute
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
IMC Institute
 
IT Trends eMagazine Vol 4. No.11
IMC Institute
 
แนวทางการทำ Digital transformation
IMC Institute
 
บทความ The New Silicon Valley
IMC Institute
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
IMC Institute
 
แนวทางการทำ Digital transformation
IMC Institute
 
The Power of Big Data for a new economy (Sample)
IMC Institute
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
IMC Institute
 
IT Trends eMagazine Vol 3. No.9
IMC Institute
 
Thailand software & software market survey 2016
IMC Institute
 
Developing Business Blockchain Applications on Hyperledger
IMC Institute
 
Digital transformation @thanachart.org
IMC Institute
 
บทความ Big Data จากบล็อก thanachart.org
IMC Institute
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
IMC Institute
 
Ad

Java Programming [2/12] : Overview of Java Programming Language

  • 1. บทที่ 2 พื้น ฐานโปรแกรมภาษาจาวา (Overview of Java Programming Language) อ.ธนิศ า เครือ ไวศยวรรณ คณะเทคโนโลยีส ารสนเทศ สถาบัน เทคโนโลยีพ ระจอมเกล้า เจ้า
  • 2. วัต ถุป ระสงค์  แนะนำา สัญ ลัก ษณ์แ ละคำา ต่า งๆทีใ ช้ใ นภาษาจาวา ่  แนะนำา ข้อ มูล ค่า คงที่แ ละชนิด ข้อ มูล แบบพืน ฐานที่ ้ ใช้ใ นภาษาจาวา  แนะนำา การประกาศและคำา สั่ง กำา หนดค่า ตัว แปร  แนะนำา ตัว ดำา เนิน การประเภทต่า งๆ  อธิบ ายการแปลงชนิด ข้อ มูล  แนะนำา ชนิด ข้อ มูล แบบอ้า งอิง  แนะนำา คำา สัง ทีใ ช้ใ นการรับ ข้อ มูล และคำา สั่ง ที่ใ ช้ ่ ่ ในการแสดงผล
  • 3. ไวยากรณ์ภ าษาจาวา (Java Syntax)  คำา หรือ ข้อ ความทีส ามารถเขีย นในโปรแกรมภาษา ่ จาวาจะต้อ งเป็น คำา หรือ ข้อ ความในรูป แบบใดรูป แบบหนึง ของประเภทต่า งๆเหล่า นี้ ่ • คอมเม็น ต์ (Comment) • Identifier • คีย ์เ วิร ์ด (Keywords) • สัญ ลัก ษณ์แ ยกคำา (Separators) • ช่อ งว่า ง (Whitespace) • ข้อ มูล ค่า คงที่ (Literals)
  • 4. คอมเม็น ต์  คอมเม็น ต์ค ือ ข้อ ความทีแ ทรกอยูใ นโปรแกรม ่ ่  คอมเม็น ต์เ ขีย นไว้เ พือ ่ • อธิบ ายโปรแกรม • ให้ผ ู้อ ่า นเข้า ใจโปรแกรมง่า ยยิ่ง ขึ้น • ช่ว ยทำา ให้ก ารแก้ไ ขและปรับ ปรุง โปรแกรมเป็น ไปได้ ง่า ยขึ้น  ภาษาจาวากำา หนดรูป แบบของการเขีย นคอมเม็น ต์ ไว้ส ามรูป แบบดัง นี้ • // This is a comment คอมเม็น ต์ส ำา หรับ ข้อ ความบรรทัด เดีย ว • /* This is also a comment */ คอมเม็น ต์ส ำา หรับ ข้อ ความตั้ง แต่ห นึ่ง บรรทัด ขึ้น ไป • /** This is a comment for documentation */
  • 5. ตัว อย่า งโปรแกรม /* This program is to show /* This program is to show how to write comments how to write comments */*/ public class CommentDemo {{ public class CommentDemo // Main method // Main method public static void main(String args[]) {{ public static void main(String args[]) /** This is aa comment for documentation */ /** This is comment for documentation */ System.out.println("Document"); System.out.println("Document"); }} }}
  • 6. Identifier  identifier คือ ชือ ทีต ั้ง ขึ้น ในภาษาจาวา ซึง อาจ ่ ่ ่ เป็น ชื่อ ของคลาส ชื่อ ของ ตัว แปร หรือ ชื่อ ของเมธอด  identifier จะต้อ งเป็น ไปตามกฎการตั้ง ชือ ดัง นี้ ่ • identifier จะต้อ งขึ้น ต้น ด้ว ยอัก ขระ A-Z, a-z, _ หรือ $ เท่า นั้น • identifier ที่ป ระกอบไปด้ว ยตัว อัก ขระมากกว่า หนึ่ง ตัว ตัว อัก ขระหลัง จากตัว แรกนั้น จะต้อ งเป็น ตัว อัก ขระข้า ง ต้น หรือ เป็น ตัว เลข 0 ถึง 9 เท่า นั้น • identifier จะต้อ งไม่ต รงกับ คีย ์เ วิร ์ด  identifier ในภาษาจาวาเป็น case sensitive ทำา ให้ myVariable แตกต่า งจาก MyVariable
  • 7. ตัว อย่า งของ Identifier ถูก ต้อ ง ไม่ถ ูก ต้อ ง • MyVariable • My Variable • _MyVariable • 9pns • $x • a+c • This_is_also_a_variable • Hello'World • public
  • 8. หลัก การตั้ง ชื่อ ที่ป ฏิบ ัต ิก ัน โดย ทั่ว ไป  การตั้ง ชือ ของคลาส ่ • จะขึ้น ต้น ด้ว ยตัว อัก ษรพิม พ์ใ หญ่แ ล้ว ตามด้ว ยตัว อัก ษร พิม พ์เ ล็ก หรือ ตัว เลข โดยจะใช้ต ัว อัก ษรพิม พ์ใ หญ่ เฉพาะอัก ษรนำา ของแต่ล ะคำา ที่ต ามมาในชื่อ • ควรเป็น คำา นาม • ตัว อย่า งเช่น Sample, HelloWorld, Student หรือ GraduateStudent เป็น ต้น  การตั้ง ชือ ของตัว แปร ่ • จะขึ้น ต้น ด้ว ยตัว อัก ษรพิม พ์เ ล็กโดยจะใช้ต ัว อัก ษรพิม พ์ ใหญ่เ ฉพาะอัก ษรนำา ของแต่ล ะคำา ที่ต ามมาในชื่อ • ควรเป็น คำา นามหรือ เป็น ชื่อ สั้น ๆ • ตัว อย่า งเช่น x, i, name, id หรือ gpa เป็น ต้น
  • 9. หลัก การตั้ง ชื่อ ที่ป ฏิบ ัต ิก ัน โดย ทั่ว ไป  การตั้ง ชือ เมธอด ่ • จะใช้ห ลัก การเดีย วกับ การตั้ง ชื่อ ตัว แปร แต่ค วรเป็น คำา กริย า • ตัว อย่า งเช่น getName, setName หรือ showDetails เป็น ต้น  การตั้ง ชือ ค่า คงที่ ่ • จะใช้ต ัว อัก ษรพิม พ์ใ หญ่ท ั้ง หมด และจะแยกคำา โดยใช้ เครื่อ งหมาย _ (underscore) • ควรเป็น คำา นาม • ตัว อย่า งเช่น MIN_GPA เป็น ต้น
  • 10. คีย ์เ วิร ์ด  คีย เ วิร ์ด คือ ชื่อ ทีม ค วามหมายพิเ ศษในภาษาจาวา ์ ่ ี  คีย เ วิร ์ด ทุก ตัว จะเป็น ตัว อัก ษรตัว พิม พ์เ ล็ก ์  คีย เ วิร ์ด goto ์ และ const • เป็น คีย ์เ วิร ์ด ที่ไ ม่ไ ด้ต รงกับ คำา สั่ง ใดในภาษาจาวา  คำา ว่า true และ false • ไม่ไ ด้เ ป็น คีย ์เ วิร ์ด ในภาษาจาวา แต่จ ะเป็น ข้อ มูล ค่า คงที่ช นิด ตรรกะ  คำา ว่า null • ไม่ไ ด้เ ป็น คีย ์เ วิร ์ด ในภาษาจาวา แต่จ ะเป็น ข้อ มูล ค่า คงที่ข องตัว แปรที่ม ีช นิด ข้อ มูล เป็น ประเภทอ้า งอิง
  • 11. คีย ์เ วิร ์ด ที่ใ ช้ใ นภาษาจาวา abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while
  • 12. สัญ ลัก ษณ์์แ ยกคำา สัญ ลัก ษณ์ หน้า ที่ แยกคำา เพื่อ ระบุก ารสิ้น สุด ของคำา สั่ง ; ต่า งๆ สำา หรับ ต่อ ท้า ยเมธอดหรือ คำา สั่ง () เช่น if,for , สำา หรับ แยกตัว แปรหรือ คำา สั่ง เพื่อ ใช้ใ นการระบุค ุณ ลัก ษณะ . หรือ เมธอดของ ออปเจ็ค หรือ ใช้ ในการระบุแ พคเก็จ {} เพื่อ ระบุบ ล็อ กคำา สั่ง
  • 13. ช่อ งว่า ง  โปรแกรมภาษาจาวาสามารถทีจ ะมีช ่อ งว่า งเพือ ที่ ่ ่ แยกคำา ประโยค หรือ คำา สั่ง ต่า งๆภายในโปรแกรม ได้  รูป แบบของช่อ งว่า งประกอบด้ว ย • ช่อ งว่า ง (กดคีย ์ Space บนคีย ์บ อร์ด ) • แท็ป (กดคีย ์ Tab บนคีย ์บ อร์ด ) • การขึ้น บรรทัด ใหม่ (กดคีย ์ Enter บนคีย ์บ อร์ด )
  • 14. ข้อ มูล ค่า คงที่  ข้อ มูล ค่า คงที่ค ือ คำา ทีใ ช้แ สดงข้อ มูล ทีเ ป็น ตัว เลข ่ ่ ตัว อัก ขระ ข้อ ความ หรือ ค่า ทางตรรกะ  ข้อ มูล ค่า คงที่แ บ่ง ออกเป็น 5 ประเภทดัง นี้ • ตรรกะ (boolean) • ตัว อัก ขระ (character) • ตัว เลขจำา นวนเต็ม (integral) • ตัว เลขทศนิย ม (floating point) • ข้อ ความ (string)
  • 15. ชนิด ข้อ มูล แบบพื้น ฐาน  ชนิด ข้อ มูล ในภาษาจาวาแบ่ง เป็น สองประเภท ใหญ่ๆ คือ • ชนิด ข้อ มูล แบบพื้น ฐาน (primitive data type) • ชนิด ข้อ มูล แบบอ้า งอิง (reference data type)  ชนิด ข้อ มูล แบบพืน ฐาน แบ่ง ออกเป็น ้ 4 ประเภท ดัง นี้ • ชนิด ข้อ มูล ตรรกะ (Logical) คือ ชนิด boolean • ชนิด ข้อ มูล อัก ขระ (Textual) คือ ชนิด char • ชนิด ข้อ มูล ตัว เลข จำา นวนเต็ม (Integral) คือ ชนิด byte,short,int และ long • ชนิด ข้อ มูล ตัว เลข ทศนิย ม (Floating point) คือ ชนิด float และ double
  • 16. ขนาดและช่ว งค่า ของชนิด ข้อ มูล แบบพื้น ฐาน ชนิด ข้อ มูล ขนาด (บิต ) ช่ว งค่า boolean 1 true หรือ false 'u0000' ถึง char 16 'uFFFF' byte 8 -128 ถึง +127 short 16 -32,768 ถึง +32,767 int 32 -231 ถึง +231-1 -263 ถึง long 64 +263-1 -3.40E+38 ถึง float 32 +3.40E+38 -1.80E+308 ถึง double 64 +1.80E+308
  • 17. ข้อ มูล ชนิด ตรรกะ  ข้อ มูล ชนิด ตรรกะมีข ้อ มูล ค่า คงทีอ ยู่ ่ 2 ค่า คือ • true และ false  ตัว อย่า ง เช่น คำา สั่ง • boolean flag = true; เป็น การกำา หนดตัว แปร ที่ช ื่อ ว่า flag ให้มีช นิด ข้อ มูล เป็น boolean โดยกำา หนดให้ม ีค ่า เป็น true
  • 18. ข้อ มูล ชนิด ตัว อัก ขระ  ข้อ มูล ชนิด ตัว อัก ขระใช้เ พือ แสดงตัว อัก ขระหนึง ่ ่ ตัว ซึ่ง ถูก เก็บ อยู่ใ นรูป ของมาตรฐาน Unicode ขนาด 16 บิต  โดยจะมีค ่า ตั้ง แต่ ‘u0000’ ถึง ‘uFFFF’  ตัว อย่า งเช่น คำา สั่ง • char letter = ‘u0041'; เป็น การประกาศตัว แปรที่ช ื่อ ว่า letter ให้เ ป็น ข้อ มูล ชนิด char โดยมีค ่า เป็น u0041 ซึ่ง มีค ่า เท่า กับ ตัว อัก ษร A  ตัว อย่า งเช่น คำา สั่ง • char letter = ‘A’; เป็น การประกาศตัว แปรที่ช ื่อ ว่า letter ให้เ ป็น ข้อ มูล ชนิด char
  • 19. อัก ขระพิเ ศษที่น ิย มใช้ท ว ไป ั่ อัก ขระ Unicode ความหมาย 'b' 'u000B' Backspace 't' 'u0009' Tab 'n' 'u000A' New line 'r' 'u000D' Return '' 'u005C' Backslash ''' 'u0027' Single quote '"' 'u0022' Double quote
  • 20. ข้อ มูล ชนิด ตัว เลขจำา นวนเต็ม  มีช นิด ข้อ มูล พืน ฐาน ้ 4 ชนิด คือ • byte, short, int, long  โดยทัว ไปข้อ มูล ชนิด ตัว เลขจำา นวนเต็ม จะถูก ่ กำา หนดให้ม ช นิด ข้อ มูล เป็น ี int  ข้อ มูล ค่า คงที่ส ามารถเขีย นได้ส ามแบบดัง นี้ • เลขฐานสิบ คือ การเขีย นเลขจำา นวนเต็ม ทั่ว ไป อาทิเ ช่น -121 และ 75362 เป็น ต้น • เลขฐานแปดคือ การเขีย นเลขจำา นวนเต็ม ที่ข ึ้น ต้น ด้ว ย เลข 0 แล้ว ตามด้ว ยตัว เลขตั้ง แต่ 0 ถึง 7 อาทิเ ช่น 016 (มีค ่า เท่า กับ 14 ในเลขฐานสิบ ) • เลขฐานสิบ หกคือ การเขีย นเลขจำา นวนเต็ม ที่ข ึ้น ต้น ด้ว ย 0x หรือ 0X แล้ว ตามด้ว ยตัว เลขตั้ง แต่ 0 ถึง 9 หรือ ตัว อัก ษร A ถึง F อาทิเ ช่น 0xA2 (มีค ่า เท่า กับ 162 ในเลขฐานสิบ )
  • 21. ข้อ มูล ชนิด ตัว เลข จำา นวนเต็ม  ข้อ มูล ค่า คงที่ข องเลขจำา นวนเต็ม ทีเ ป็น ชนิด long ่ จะมีต ัว อัก ษร l หรือ L ต่อ ท้า ย อาทิเ ช่น • 2l หมายถึง เลขฐานสิบ ที่ม ีค ่า เป็น 2 ซึ่ง เป็น ข้อ มูล ชนิด long • 077L หมายถึง เลขฐานแปดที่เ ป็น ข้อ มูล ชนิด long • 0xBAACL หมายถึง เลขฐานสิบ หกที่เ ป็น ข้อ มูล ชนิด long
  • 22. ข้อ มูล ชนิด ตัว เลขทศนิย ม (floating point)  ข้อ มูล ชนิด ตัว เลขทศนิย มจะเป็น เลขทีม ี ่ เครื่อ งหมายจุด ทศนิย ม อาทิเ ช่น • 3.14 หรือ 3.0  มีช นิด ข้อ มูล พืน ฐาน ้ 2 ชนิด คือ double และ float  โดยทัว ไปข้อ มูล ชนิด ตัว เลขทศนิย มจะถูก กำา หนด ่ ให้ม ช นิด ข้อ มูล เป็น double ี  สามารถเขีย นในรูป แบบของเลขยกกำา ลัง สิบ (exponential form) ได้โ ดยใช้ต ัว อัก ษร E หรือ e ระบุจ ำา นวนทีเ ป็น เลขยกกำา ลัง สิบ อาทิเ ช่น ่ • 6.02E23 หรือ 2e-7
  • 23. ข้อ มูล ชนิด ตัว เลขทศนิย ม  ข้อ มูล ชนิด ตัว เลขทศนิย มที่ม ช นิด ข้อ มูล เป็น float ี จะมีต ัว อัก ษร F หรือ f ต่อ ท้า ย อาทิเ ช่น • 2.718F หรือ 3.14f  ข้อ มูล ชนิด ตัว เลขทศนิย มที่ม ช นิด ข้อ มูล เป็น double ี จะมีต ัว อัก ษร D หรือ d ต่อ ท้า ย อาทิเ ช่น • 2.718D (โดยทั่ว ไปไม่จ ำา เป็น ต้อ งใส่ต ัว อัก ษร D เพราะ ข้อ มูล ชนิด ตัว เลขทศนิย มจะกำา หนดให้เ ป็น double อยู่ แล้ว )
  • 24. ตัว แปร (Variable)  ตัว แปรคือ ข้อ มูล ทีส ามารถเปลี่ย นแปลงค่า ได้ใ น ่ โปรแกรมโดยใช้ค ำา สัง กำา หนดค่า ่  คำา สั่ง ในการประกาศตัว แปรของภาษาจาวามีร ูป แบบดัง นี้ dataType variableName[,variableName];  ตัว อย่า งเช่น คำา สั่ง int amount; double x,y; float price,wholeSalePrice;
  • 25. คำา สัง กำา หนดค่า (Assignment ่ Statement)  คำา สั่ง กำา หนดค่า จะเป็น คำา สั่ง ทีใ ช้ใ นการ ่ เปลี่ย นแปลงค่า ของตัว แปร  คำา สั่ง กำา หนดค่า (assignment statement) ซึ่ง มี รูป แบบดัง นี้ variableName = expression;  ตัว อย่า งเช่น x = 1; radius = 3.14; c = ‘a’; y = x+4*3; amount = 121+14;
  • 26. คำา สั่ง ประกาศและกำา หนดค่า ตัว แปร  เราสามารถทีจ ะประกาศและกำา หนดค่า เริ่ม ต้น ของ ่ ตัว แปรภายในคำา สัง เดีย วกัน โดยมีร ูป แบบคำา สั่ง ่ ดัง นี้ dataType variableName = expression [,variableName = expression];  ตัว อย่า งเช่น int amount = 123; float price = 12.0f; double x = 4.0, y = 2.5;
  • 27. ตัว อย่า งโปรแกรม public class VariableAssignDemo { public class VariableAssignDemo { public static void main(String args[]) { public static void main(String args[]) { int x,y; int x,y; boolean b1; boolean b1; float z = 3.414f; /* The program will not be float z = 3.414f; /* The program will not be compiled successfully if compiled successfully if a character f is missing */ a character f is missing */ double w; double w; x = 5; x = 5; y = 4; y = 4; b1 = (x > y); b1 = (x > y); w = x * 3.2; w = x * 3.2; System.out.println("x = " + x + " y = " + y); System.out.println("x = " + x + " y = " + y); System.out.println("b1 = " + b1); System.out.println("b1 = " + b1); System.out.println("z = " + z + " w = " + w); System.out.println("z = " + z + " w = " + w); }} }}
  • 28. ค่า คงที่  การประกาศค่า คงทีใ นภาษาจาวาทำา ได้โ ดยการ ่ ใส่ค ีย เ วิร ์ด final หน้า คำา สั่ง ประกาศช์ื์ ่อ โดยมี ์ รูป แบบดัง นี้ final dataType CONSTANT_NAME = expression;  ตัว อย่า งเช่น คำา สั่ง final int MINIMUM = 4; final double MIN_GPA = 2.00;
  • 29. ตัว อย่า งโปรแกรม public class ConstantDemo { public class ConstantDemo { public static void main(String args[]) { public static void main(String args[]) { final int MAXIMUM = 10; final int MAXIMUM = 10; final double MIN_GPA; final double MIN_GPA; System.out.println("Maximum is " + MAXIMUM); System.out.println("Maximum is " + MAXIMUM); MIN_GPA = 2.00; MIN_GPA = 2.00; System.out.println("Minimum GPA is " + MIN_GPA); System.out.println("Minimum GPA is " + MIN_GPA); // // MIN_GPA = 3.00; MIN_GPA = 3.00; //illegal //illegal }} }}
  • 30. ขอบเขตของตัว แปรและค่า คงที่  ตัว แปรและค่า คงทีซ ึ่ง ประกาศขึ้น จะสามารถใช้ ่ งานภายในบล็อ กคำา สั่ง ({ }) ทีป ระกาศเท่า นัน ่ ้  ภาษาจาวาแบ่ง ตัว แปรและค่า คงทีเ ป็น สองประเภท ่ คือ • ตัว แปรหรือ ค่า คงที่ท ี่เ ป็น คุณ ลัก ษณะของออปเจ็ค หรือ คุณ ลัก ษณะของคลาส • ตัว แปรหรือ ค่า คงที่ท ี่อ ยู่ใ นบล็อ กของเมธอดที่เ รีย กว่า ค่า คงที่ภ ายใน (local constant) หรือ ตัว แปรภายใน (local variable)
  • 31. ค่า เริ่ม ต้น อัต โนมัต ิข องตัว แปร  ตัว แปรทีเ ป็น คุณ ลัก ษณะของออปเจ็ค หรือ ่ คุณ ลัก ษณะของคลาสจะถูก กำา หนดค่า เริ่ม ต้น ให้ โดยอัต โนมัต ิ ชนิด ข้อ มูล ค่า เริ่ม ต้น boolean false byte 0 short 0 int 0 long 0L float 0.0f double 0.0 char 'u0000' คลาส null
  • 32. ตัว อย่า งโปรแกรม public class VariableScopeDemo { public class VariableScopeDemo { public int i; public int i; // object variable // object variable public void method1() { public void method1() { int j = 4; int j = 4; // local variable // local variable int k = 2; int k = 2; // another local variable // another local variable }} public void method2() { public void method2() { int j = 0; int j = 0; // local variable // local variable System.out.println(i); System.out.println(i); // calling an object variable i // calling an object variable i // // System.out.println(k); System.out.println(k); // illegal // illegal }} }}
  • 33. ตัว ดำา เนิน การ (Operator)  นิพ จน์ภ าษาจาวาอาจจะประกอบด้ว ยข้อ มูล ค่า คงที่ ตัว แปร หรือ ค่า คงทีต ่า งๆ โดยจะมีต ัว ดำา เนิน ่ การต่า งๆไว้เ พือ คำา นวณหาผลลัพ ธ์ท เ ป็น ชนิด ่ ี่ ข้อ มูล ต่า งๆ  ตัว ดำา เนิน การในภาษาจาวาแบ่ง ออกเป็น 4 ประเภทคือ • ตัว ดำา เนิน การทางคณิต ศาสตร์ (Arithmetic Operator) • ตัว ดำา เนิน การแบบสัม พัน ธ์ (Relational Operator) • ตัว ดำา เนิน การทางตรรกศาสตร์ (Logical Operator) • ตัว ดำา เนิน การแบบบิต (Bitwise Operator)
  • 34. ตัว ดำา เนิน การทางคณิต ศาสตร์ เครื่อ งหม ความ ตัว อย่า ง าย หมาย นิพ จน์ + บวก a+b - ลบ a-b * คูณ a*b / หาร a/b เศษจาก % a%b การหาร
  • 35. ตัว ดำา เนิน การทางคณิต ศาสตร์แ บบ ย่อ เครื่อ งหม ความ ตัว อย่า ง าย หมาย += x+=3 x = x+3 -= x-=3 x = x-3 *= x*=3 x = x*3 /= x/=3 x = x/3 %= x%=3 x = x%3
  • 36. ตัว ดำา เนิน การเพิม ค่า และลดค่า ่  ตัว ดำา เนิน การเพือ บวกค่า ทีล ะ ่ 1 หรือ ลดค่า ทีล ะ 1  เครื่อ งหมาย ++ หรือ --  ตัว อย่า ง • x++ คือ x = x+1 • ++x คือ x = x+1 • x-- คือ x = x-1 • --x คือ x = x-1  ถ้า วางเครื่อ งหมายไว้ข ้า งหน้า โปรแกรมจะ คำา นวณค่า ก่อ นแล้ว จึง ทำา คำา สั่ง  ถ้า วางเครื่อ งหมายไว้ข ้า งหลัง โปรแกรมจะ คำา นวณค่า หลัง จากทำา คำา สัง ่
  • 37. ตัว อย่า งโปรแกรม public class IncrementDemo { public class IncrementDemo { public static void main(String args[]) { public static void main(String args[]) { int x; int x; int y; int y; x = 5; x = 5; y = x++; y = x++; System.out.println("x = "+x+" y = "+y); System.out.println("x = "+x+" y = "+y); y = ++x; y = ++x; System.out.println("x = "+x+" y = "+y); System.out.println("x = "+x+" y = "+y); }} }} x = 6 y = 5 ผลลัพ ธ์ท ไ ด้จ ากการรัน โปรแกรม 7 ี่ x = y = 7
  • 38. ตัว ดำา เนิน การแบบสัม พัน ธ์ เครื่อ งห ตัว อย่า ผลลัพ ความหมาย มาย ง ธ์ < น้อ ยกว่า 3<4 true น้อ ยกว่า หรือ 3<=4 true เท่า กับ > มากกว่า 3>4 false มากกว่า หรือ >= 3>=4 false เท่า กับ == เท่า กับ 3==4 false != ไม่เ ท่า กับ 3!=4 true
  • 39. ตัว อย่า งโปรแกรม public class BooleanDemo { public class BooleanDemo { public static void main(String args[]) { public static void main(String args[]) { int x = 5; int x = 5; int y = 4; int y = 4; boolean b1; boolean b1; b1 = (x!=y); b1 = (x!=y); System.out.println("x not equal to y is "+b1); System.out.println("x not equal to y is "+b1); System.out.println("y less than 0 is "+(y<0)); System.out.println("y less than 0 is "+(y<0)); }} }}
  • 40. ตัว ดำา เนิน การทางตรรกศาสตร์ เครื่อ งห ความหมาย มาย ! กลับ ค่า ทางตรรกะ && หรือ AND ค่า ทางตรรกะ & || หรือ | OR ค่า ทางตรรกะ Exclusive-OR ค่า ^ ทางตรรกะ
  • 41. ตัว อย่า งการใช้ต ัว ดำา เนิน การทาง ตรรกศาสตร์ นิพ จน์ ผลลัพ ธ์ (7>6) && (2<1) false (7>6) || (2<1) true !(7>6) false
  • 42. ผลลัพ ธ์ข องการกลับ ค่า ทางตรรกะ op !op true false false true
  • 43. ผลลัพ ธ์ข องการ AND ค่า ทาง ตรรกะ op1 && op1 op2 op2 true true true true false false false true false false false false
  • 44. ผลลัพ ธ์ข องการ OR ค่า ทางตรรกะ op1 || op1 op2 op2 true true true true false true false true true false false false
  • 45. ผลลัพ ธ์ข อง Exculsive ORค่า ทาง ตรรกะ op1 ^ op1 op2 op2 true true false true false true false true true false false false
  • 46. ตัว ดำา เนิน การแบบบิต  ตัว ดำา เนิน การแบบบิต ของเลขจำา นวนเต็ม ตัว ดำา เนิน ความหมาย การ Compleme ~ nt & AND | OR  ตัว ดำา เนิน การแบบ shift บิต ^ XOR ตัว ดำา เนิน ความหมาย การ signed right >> shift unsigned
  • 47. ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน การ ลำา ดับ เรีย งจาก ตัว ดำา เนิน การ ที่ ขวาไปซ้า ย (R ++, --, +, -, ~, ! 1 to L) (data type) ซ้า ยไปขวา (L 2 *, /, % to R) ซ้า ยไปขวา (L 3 +, - to R) ซ้า ยไปขวา (L 4 <<, >>, >>> to R) ซ้า ยไปขวา (L <, >, <=, >=, 5 to R) instanceof ซ้า ยไปขวา (L
  • 48. ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน การ ลำา ดับ เรีย งจาก ตัว ดำา เนิน การ ที่ ซ้า ยไปขวา (L 8 ^ to R) ซ้า ยไปขวา (L 9 | to R) ซ้า ยไปขวา (L 10 && to R) ซ้า ยไปขวา (L 11 || to R) ขวาไปซ้า ย (R 12 ?: to L) =, +=, -=,
  • 49. ตัว อย่า ง คำา สัง ่ x = 2+3*4-(7+2); คำา นวณหาผลลัพ ธ์ ตามลำา ดับ ดัง นี้  คำา นวณหาผลลัพ ธ์ค ่า 7+2 ทำา ให้ไ ด้ x = 2+3*4-9  คำา นวณหาผลลัพ ธ์ค ่า 3*4 ทำา ให้ไ ด้ x = 2+12-9  คำา นวณหาผลลัพ ธ์ค ่า 2+12 ทำา ให้ไ ด้ x = 14-9  คำา นวณหาผลลัพ ธ์ค ่า 14-9 ทำา ให้ไ ด้ x=5
  • 50. การแปลงชนิด ข้อ มูล  ในกรณีท ต ัว ถูก ดำา เนิน การทัง สองมีช นิด ข้อ มูล ที่ ี่ ้ ต่า งกัน ภาษาจาวาจะมีห ลัก การแปลงชนิด ข้อ มูล (type conversion) ดัง นี้ • ถ้า ตัว ถูก ดำา เนิน การตัว หนึ่ง มีช นิด ข้อ มูล เป็น double ตัว ถูก ดำา เนิน การอีก ตัว หนึ่ง จะถูก แปลงให้ม ีช นิด ข้อ มูล เป็น double โดยอัต โนมัต ิ • ถ้า ตัว ถูก ดำา เนิน การทั้ง สองไม่ไ ด้ม ีช นิด ข้อ มูล เป็น double แต่ม ีต ัว ถูก ดำา เนิน การตัว หนึ่ง ที่ม ีช นิด ข้อ มูล เป็น float ตัว ถูก ดำา เนิน การอีก ตัว หนึ่ง จะถูก แปลงให้ม ีช นิด ข้อ มูล เป็น float โดยอัต โนมัต ิ • ถ้า ตัว ถูก ดำา เนิน การทั้ง สองไม่ไ ด้ม ีช นิด ข้อ มูล เป็น double หรือ float แต่ม ีต ัว ถูก ดำา เนิน การตัว หนึ่ง ที่ม ีช นิด ข้อ มูล
  • 51. การแปลงชนิด ข้อ มูล  กรณีอ ื่น ๆ ตัว ถูก ดำา เนิน การทัง สองจะแปลงให้ม ี ้ ชนิด ข้อ มูล เป็น int  ตัว อย่า ง byte b1, b2, b3; b1 = 2; b2 = 4; b3 = b1+b2; //illegal • คำา สั่ง กำา หนดค่า b3 ไม่ถ ูก ต้อ งเนื่อ งจาก b1+b2 จะให้ค ่า ข้อ มูล ที่ม ีช นิด ข้อ มูล เป็น int
  • 52. การแปลงชนิด ข้อ มูล  การแปลงชนิด ข้อ มูล มีส องรูป แบบคือ • การแปลงข้อ มูล ที่ก ว้า งขึ้น (widening conversion) คือ การแปลงจากชนิด ข้อ มูล ที่ม ีข นาดเล็ก กว่า ไปเป็น ชนิด ข้อ มูล ที่ม ีข นาดใหญ่ก ว่า • การแปลงข้อ มูล ที่แ คบลง (narrowing conversion) คือ การแปลงจากชนิด ข้อ มูล ที่ม ีข นาดใหญ่ก ว่า ไปเป็น ชนิด ข้อ มูล ที่ม ีข นาดเล็ก ลง ซึ่ง อาจมีผ ลให้เ สีย ความ ละเอีย ดของข้อ มูล บางส่ว นไป
  • 53. หลัก การการแปลงชนิด ข้อ มูล  ชนิด ข้อ มูล ตัว เลขจำา นวนเต็ม สามารถแปลงให้เ ป็น ชนิด ข้อ มูล ตัว เลขทศนิย มได้  ชนิด ข้อ มูล float สามารถแปลงให้เ ป็น ชนิด ข้อ มูล double ได้  ชนิด ข้อ มูล ตัว เลขจำา นวนเต็ม มีข นาดเรีย งกัน จาก น้อ ยไปมากดัง นี้ byte → short → int → long  ชนิด ข้อ มูล char สามารถแปลงให้เ ป็น ชนิด ข้อ มูล int ได้  ชนิด ข้อ มูล boolean จะไม่ม ค วามสัม พัน ธ์ก ับ ชนิด ี ข้อ มูล แบบพืน ฐานอื่น ๆ ้
  • 54. ตัว อย่า งของการแปลงชนิด ข้อ มูล ภาษาจาวาจะปรับ ชนิด ข้อ มูล ให้อ ัต โนมัต ิ ในกรณี ต่อ ไปนี้  กำา หนดค่า ชนิด ข้อ มูล ทีเ ล็ก กว่า ให้ก ับ ตัว แปรชนิด ่ ข้อ มูล ทีใ หญ่ก ว่า อาทิเ ช่น ่ int i = 4; long l = i; นิพ จน์ i จะถูก ปรับ ชนิด ข้อ มูล จาก int ให้เ ป็น long โดย อัต โนมัต ิ  กำา หนดค่า ชนิด ข้อ มูล จำา นวนเต็ม ให้ก บ จำา นวนเลข ั ทศนิย มอาทิเ ช่น • double x = 3; นิพ จน์ 3 จะถูก ปรับ ชนิด ข้อ มูล จาก int ให้เ ป็น double โดยอัต โนมัต ิ
  • 55. ตัว อย่า งโปรแกรม public class PromotionDemo { public class PromotionDemo { public static void main(String args[]) { public static void main(String args[]) { int i; int i; long l; long l; float fl = 4.2f; float fl = 4.2f; i = 4; i = 4; l = i; l = i; fl = i; fl = i; double x = fl; double x = fl; fl = 4.2; fl = 4.2; //illegal //illegal }} }}
  • 56. Typecasting  เราสามารถแปลงชนิด ข้อ มูล ขนาดใหญ่ ให้เ ป็น ชนิด ข้อ มูล ทีเ ล็ก กว่า ได้โ ดยวิธ ีก ารทีเ รีย กว่า ่ ่ typecasting  รูป แบบคำา สั่ง (target_type)expression;  จะทำา ให้โ ปรแกรมสามารถคอมไพล์ผ ่า นได้  บางกรณีอ าจทำา ให้ข ้อ มูล บางส่ว น สูญ หายไป
  • 57. ตัว อย่า งของ Typecasting  ตัว อย่า ง int amount = (int) 3.0; • แปลงนิพ จน์ท ี่ม ีค ่า 3.0 ข้อ มูล ชนิด double ให้เ ป็น ชนิด int  ตัว อย่า งทีม ก ารตัด ข้อ มูล ออก ่ ี int x; double y = 1.25; x = (int) y;
  • 58. ตัว อย่า งโปรแกรม public class TypecastingDemo { public class TypecastingDemo { public static void main(String args[]) { public static void main(String args[]) { byte b1 = 4; byte b1 = 4; byte b2 = 3; byte b2 = 3; byte b3; byte b3; b3 = (byte)(b1+b2); b3 = (byte)(b1+b2); float fl; float fl; fl = (float)3.2; fl = (float)3.2; }} }}
  • 59. ชนิด ข้อ มูล แบบอ้า งอิง  ชนิด ข้อ มูล แบบอ้า งอิง คือ ออปเจ็ค ในภาษาจาวา โดยแบ่ง ออกเป็น สองแบบคือ • ชนิด ข้อ มูล ที่เ ป็น คลาส • ชนิด ข้อ มูล ที่เ ป็น อะเรย์  ชนิด ข้อ มูล แบบอ้า งอิง จะมีว ิธ ีก ารเก็บ ข้อ มูล ใน หน่ว ยความจำา ทีแ ตกต่า งจากการเก็บ ข้อ มูล ของ ่ ชนิด ข้อ มูล แบบพืน ฐานอาทิเ ช่น คำา สั่ง ้ int x = 7; String s = new String("Thana");
  • 60. การประกาศตัว แปรและจองเนื้อ ทีใ น ่ หน่ว ยความจำา  อาทิเ ช่น คำา สั่ง int x; Date d; d = new Date(16,8,2002);
  • 61. คลาส String  String เป็น คลาสทีก ำา หนดไว้ใ น Java API ตัว แปร ่ ทีม ช นิด ข้อ มูล เป็น String ก็ค ือ ออปเจ็ค ชนิด หนึง ่ ี ่ ซึ่ง String มีข ้อ แตกต่า งจากออปเจ็ค ทัว ๆไปดัง นี้ ่ • String เป็น ออปเจ็ค ที่ม ีค ่า คงที่ข ้อ มูล ซึ่ง ก็ค ือ ข้อ ความ ใดๆ ที่อ ยู่ภ ายในเครื่อ งหมาย double quote (“ ”) ตัว อย่า งเช่น “This is a java course” • เป็น ออปเจ็ค ที่ส ามารถสร้า งหรือ กำา หนดค่า ได้ String โดยไม่จ ำา เป็น ต้อ งใช้ค ำา สั่ง new ตัว อย่า งเช่น เรา สามารถใช้ค ำา สั่ง String s = “Thana”; • โดยไม่จ ำา เป็น ที่จ ะต้อ งใช้ค ำา สั่ง String s = new String(“Thana”);
  • 62. ตัว อย่า งโปรแกรม public class StringDemo { public class StringDemo { public static void main(Stirng args[]){ public static void main(Stirng args[]){ String s1 = "Thana"; String s1 = "Thana"; String s2 = "Thana"; String s2 = "Thana"; String s3 = new String("Thana"); String s3 = new String("Thana"); }} }}
  • 63. คำา อธิบ ายโปรแกรม  กรณีท ไ ม่ใ ช้ค ำา สั่ง new ี่ ภาษาจาวาจะพิจ ารณาจาก String Pool ว่า มีข ้อ ความเดิม อยู่ห รือ ไม่  กรณีท ใ ช้ค ำา สัง new ี่ ่ ภาษาจาวาจะสร้า งข้อ ความ ใหม่แ ละจองเนือ ทีใ นหน่ว ยความจำา เสมอ ้ ่
  • 64. String เป็น ออปเจ็ค ที่เ ปลี่ย นค่า ไม่ ได้  ตัว อย่า งเช่น คำา สั่ง String s1; s1 = “Thanachart"; s1 = “Somchai";
  • 65. ตัว ดำา เนิน การที่ใ ช้ก ับ ข้อ มูล ชนิด String  String เป็น ออปเจ็ค ทีม ต ัว ดำา เนิน การทีใ ช้ใ นการ ่ ี ่ เชือ มข้อ ความสองข้อ ความเข้า ด้ว ยกัน โดยใช้ ่ เครื่อ งหมาย + อาทิเ ช่น String s1 = “Hello” + “ World”;  ตัว ดำา เนิน การในการเชื่อ มข้อ ความสามารถใช้ เชือ มข้อ มูล ชนิด String กับ ตัว ถูก ดำา เนิน การที่เ ป็น ่ ชนิด ข้อ มูล อื่น ๆ ภาษาจาวาจะแปลงชนิด ข้อ มูล ดัง กล่า วให้เ ป็น ชนิด String โดยอัต โนมัต ิอ าทิเ ช่น คำา สั่ง String s1 = “This"; String s2 = s1 + “ is a test ”; String s3 = s1+4;
  • 66. คำา สั่ง อิน พุต และเอาท์พ ุต  ออปเจ็ค System.in เป็น ออปเจ็ค ทีม เ มธอดสำา หรับ ่ ี การอ่า นข้อ มูล ทางอุป กรณ์อ ิน พุต มาตรฐาน ซึ่ง โดยทัว ไปก็ค ือ คีย บ อร์ด ่ ์  ออปเจ็ค System.outเป็น ออปเจ็ค ทีม เ มธอดสำา หรับ ่ ี การแสดงข้อ มูล ออกทางอุป กรณ์เ อาท์พ ต ุ มาตรฐานซึ่ง โดยทัว ไปคือ จอภาพ ่  ออปเจ็ค System.err เป็น ออปเจ็ค ที่ม เ มธอดสำา หรับ ี การแสดงข้อ ผิด พลาด (error) ออกทางอุป กรณ์ท ี่ ใช้ใ นการแสดงข้อ ผิด พลาด ซึง โดยทัว ไปจะ ่ ่ กำา หนดเป็น จอภาพ
  • 67. System.out.println  ออปเจ็ค System.out หมายถึง ออปเจ็ค ทีช อ ่ ื่ out ซึ่ง เป็น คุณ ลัก ษณะของคลาสทีช ื่อ System ่  ออปเจ็ค ทีช ื่อ out เป็น ออปเจ็ค ของคลาส ่ PrintStream ทีม เ มธอดทีน ย มใช้ท ว ไปคือ ่ ี ่ ิ ั่ print(String s) และ println(String s)
  • 68. ตัว อย่า งโปรแกรม public class PrintDemo { public class PrintDemo { public static void main(String args[]) { public static void main(String args[]) { int x = 3, y = 4, z = 5; int x = 3, y = 4, z = 5; System.out.print("x = "+x); System.out.print("x = "+x); System.out.println(" y = "+y); System.out.println(" y = "+y); System.out.println("z = "+z); System.out.println("z = "+z); }} }} x = 3 y = 4 ผลลัพ ธ์ท ไ ด้จ ากการรัน โปรแกรม 5 ี่ z =
  • 69. การ รับ ข้อ มูล เข้า มาทาง Command Line  เมธอดทีช ื่อ main() จะมี argument เป็น String ่ args[] ซึง สามารถที่จ ะ รับ argument ทีส ง ผ่า นมา ่ ่ ่ จาก command line ได้  ตัว อย่า งเช่น public class Sample { public static void main(String args[]) { System.out.println(“My name is ” + args[0] + “ and I am a ” + args[1]); } }  ถ้า ป้อ นอิน พุต ตรง command line เป็น java Sample Tommy boy  จะได้ผ ลลัพ ธ์ค ือ My name is Tommy and I am a boy
  • 70. สรุป เนื้อ หาของบท  คอมเม็น ต์ คือ ข้อ ความทีแ ทรกอยูภ ายในโปรแกรม ่ ่ ซึ่ง คอมไพเลอร์จ ะไม่แ ปลข้อ ความนี้ใ ห้เ ป็น ส่ว น หนึง ของโปรแกรม ่  identifier คือ ชือ ทีต ั้ง ขึ้น ในภาษาจาวา ซึ่ง อาจ ่ ่ เป็น ชื่อ ของคลาส ชื่อ ของ ตัว แปร ชื่อ ของ เมธอด หรือ ชื่อ ของค่า คงที่ ซึง จะต้อ งเป็น ไปตาม ่ กฎการตั้ง ชือ่  การตั้ง ชือ ในภาษาจาวา ่ • สำา หรับ คลาส นิย มขึ้น ต้น ด้ว ยตัว อัก ษรพิม พ์ใ หญ่ • สำา หรับ เมธอดและตัว แปร นิย มขึ้น ต้น ด้ว ยตัว อัก ษร พิม พ์เ ล็ก • ถ้า ชื่อ ที่ต ั้ง ขึ้น มีม ากกว่า 1 คำา นิย มขึ้น ต้น คำา ใหม่ด ้ว ยตัว อัก ษรพิม พ์ใ หญ่
  • 71. สรุป เนื้อ หาของบท  คีย เ วิร ์ด คือ ชื่อ ทีม ค วามหมายพิเ ศษในภาษาจาวา ์ ่ ี คอมไพเลอร์ข องภาษา จาวาจะเข้า ใจความ หมายและคำา สัง ทีจ ะต้อ งดำา เนิน การสำา หรับ ่ ่ คีย เ วิร ์ด แต่ล ะตัว ์  ข้อ มูล ค่า คงที่ค ือ คำา ทีใ ช้แ สดงข้อ มูล ทีเ ป็น ตัว เลข ่ ่ ตัว อัก ขระ ข้อ ความ หรือ ค่า ทางตรรกะ  ชนิด ข้อ มูล ในภาษาจาวาแบ่ง เป็น สองประเภทคือ ชนิด ข้อ มูล แบบพืน ฐานและชนิด ข้อ มูล แบบอ้า งอิง ้  ชนิด ข้อ มูล แบบพืน ฐานทีใ ช้ใ นภาษาจาวามี ้ ่ ทัง หมด 8 ชนิด คือ ้ char,byte, short,int,long,float,double และ boolean
  • 72. สรุป เนื้อ หาของบท  ข้อ มูล ทีเ ก็บ อยูใ นโปรแกรมแบ่ง เป็น สองประเภท ่ ่ คือ ตัว แปรและค่า คงที่ ซึง ตัว แปรคือ ข้อ มูล ที่ ่ สามารถเปลี่ย นแปลงค่า ได้ใ นโปรแกรมโดยใช้ค ำา สั่ง กำา หนดค่า ส่ว นค่า คงทีค ือ ข้อ มูล ทีก ำา หนดค่า ได้ ่ ่ เพีย งครั้ง เดีย วและไม่ส ามารถเปลี่ย นแปลงค่า ได้ ในโปรแกรม  ตัว แปรทีม ก ารประกาศชนิด ข้อ มูล แล้ว สามารถที่ ่ ี จะกำา หนดหรือ เปลี่ย นแปลงค่า ได้โ ดยใช้ค ำา สั่ง กำา หนดค่า  การประกาศค่า คงทีใ นภาษาจาวาทำา ได้โ ดยการ ่ ใส่ค ีย เ วิร ์ด ์ final หน้า คำา สั่ง ประกาศชื่อ 
  • 73. สรุป เนื้อ หาของบท  ตัว ดำา เนิน การที่ใ ช้ใ นภาษาจาวามีท ง หมด ั้ 4 แบบ คือ • ตัว ดำา เนิน การทางคณิต ศาสตร์ : +, -, *, /, %, +=, -=, *=, /=, %=, ++ และ -- • ตัว ดำา เนิน การทางตรรกศาสตร์ : <, <=, >, >=, == และ != • ตัว ดำา เนิน การแบบสัม พัน ธ์ : !, &&, &, || และ | • ตัว ดำา เนิน การแบบบิต : ~, &, |, ^, >>, >>> และ <<  กรณีท น พ จน์ใ ดๆมีต ัว ดำา เนิน การมากกว่า หนึง ตัว ี่ ิ ่ ภาษาจาวาจะจัด ลำา ดับ ความสำา คัญ ของตัว ดำา เนิน การ เพือ คำา นวณหาผลลัพ ธ์ต ามลำา ดับ ความ สำา คัญ ่ ของตัว ดำา เนิน การ
  • 74. สรุป เนื้อ หาของบท  ความแตกต่า งระหว่า งการแปลงข้อ มูล โดย อัต โนมัต ิแ ละ Typecasting • การแปลงข้อ มูล โดยอัต โนมัต ิค ือ การที่ช นิด ข้อ มูล ที่ม ี ขนาดเล็ก กว่า ถูก แปลงให้เ ป็น ชนิด ข้อ มูล ที่ม ีข นาดใหญ่ กว่า โดยอัต โนมัต ิ • Typecasting คือ การที่จ ะต้อ งระบุช นิด ข้อ มูล ที่ม ีข นาด ใหญ่ก ว่า ให้ก ับ นิพ จน์ท ี่ม ีช นิด ข้อ มูล ขนาดเล็ก กว่า  ชนิด ข้อ มูล แบบอ้า งอิง ซึง ก็ค ือ ออปเจ็ค ในภาษา ่ จาวา โดยแบ่ง ออกเป็น สองแบบคือ ชนิด ข้อ มูล ที่ เป็น คลาส และชนิด ข้อ มูล ทีเ ป็น อะเรย์ ่  ข้อ มูล ทีเ ก็บ ในหน่ว ยความจำา ของชนิด ข้อ มูล แบบ ่ อ้า งอิง จะเป็น ตำา แหน่ง อ้า งอิง ทีเ ก็บ ข้อ มูล ในหน่ว ย ่ ความจำา แต่ใ นกรณีข องชนิด ข้อ มูล แบบพืน ฐาน ้
  • 75. สรุป เนื้อ หาของบท  String เป็น ชนิด ข้อ มูล แบบคลาส ไม่ใ ช่ช นิด ข้อ มูล แบบพืน ฐาน ้  คำา สั่ง ทีใ ช้ใ นการแสดงผลลัพ ธ์ข องข้อ มูล ในภาษา ่ จาวาคือ คำา สั่ง System.out.println()  เมธอดทีช ื่อ main() จะมี argument เป็น String ่ args[] ซึง สามารถที่จ ะ รับ argument ทีส ง ผ่า นมา ่ ่ ่ จาก command line ได้
  • 76. แบบฝึก หัด  แบบฝึก หัด ที่ 1 การประกาศและกำา หนดค่า เริ่ม ต้น ของตัว แปรและค่า คงที่  แบบฝึก หัด ที่ 2 การใช้ค ำา สั่ง กำา หนดค่า และนิพ จน์ • จงเขีย นโปรแกรมภาษาจาวาเพื่อ คำา นวณหาค่า รากที่ สองของสมการ ax2 + bx + c = 0 แล้ว พิม พ์ผ ลลัพ ธ์อ อกทางจอภาพ  แบบฝึก หัด ที่3 การเขีย นโปรแกรมเพือ รับ ค่า ่ อิน พุต ผ่า นทาง command line • จงเขีย นโปรแกรมภาษาจาวาเพื่อ คำา นวณหาค่า พื้น ที่ ของวงกลม โดยมีก ารรับ ค่า รัศ มี (radius) เข้า มา แล้ว พิม พ์ผ ลลัพ ธ์ท ี่ไ ด้อ อกทางจอภาพ