SlideShare una empresa de Scribd logo
1 de 76
บทท 2
        พนฐานโปรแกรมภาษาจาวา
(Overview of Java Programming Language)

           ผศ..ธนศา เครอไวศยวรรณ
           คณะเทคโนโลย*สารสนเทศ
สถาบ.นเทคโนโลย*พระจอมเกล3าเจ3าค4ณทหารลาดกระบ.ง
วตถประสงค
 แนะนาสญลกษณและคาต9างๆทใช%ในภาษาจาวา

 แนะนาข%อม(ลค)าคงทและชน*ดข%อม(ลแบบพนฐานทใช%ในภาษาจาวา

 แนะน<าการประกาศและคาสงกาหนดค)าตวแปร

 แนะนาตวดาเน*นการประเภทต9างๆ

 อธ*บายการแปลงชนดข3อมAล

 แนะน<าชนดข3อมAลแบบอ3างอง

 แนะน<าค<าส.Bงท*Bใช3ในการร.บข3อมAลและค<าส.งท*Bใช3ในการแสดงผล
                                           B
ไวยากรณภาษาจาวา (Java Syntax)
 ค<าหรอข3อความท*Bสามารถเข*ยนในโปรแกรมภาษาจาวาจะต3องเปIนค<าหรอ
  ข3อความในรAปแบบใดรAปแบบหนJBงของประเภทต9างๆเหล9าน*K
   •   คอมเมLนตM (Comment)
   •   Identifier
   •   คยเว*รด (Keywords)
   •   สญลกษณแยกคา (Separators)
   •   ช)องว)าง (Whitespace)
   •   ข%อม(ลค)าคงท (Literals)
คอมเม2นต
 คอมเม2นตคอข%อความทแทรกอย()ในโปรแกรม

 คอมเมLนตMเข*ยนไว3เพอ
                     B
   •   อธบายโปรแกรม
   •   ให3ผA3อ9านเข3าใจโปรแกรมง9ายยBงขJKน
   •   ช9วยท<าให3การแก3ไขและปร.บปร4งโปรแกรมเปIนไปได3ง9ายขJKน
 ภาษาจาวาก<าหนดรAปแบบของการเข*ยนคอมเมLนตMไว3สามรAปแบบด.งน*K
   • // This is a comment
   คอมเม2นตสาหรบข%อความบรรทดเดยว
   • /* This is also a comment */
   คอมเม2นตส<าหร.บข%อความต.งแต9หน3งบรรทดขJKนไป
                              K
   • /** This is a comment for documentation */
   คอมเมLนตMส<าหร.บข3อความท*Bตองการสร3างเปIนไฟลMเอกสารท*BเปIนไฟลMประเภท HTML
                                3
ต.วอย9างโปรแกรม
/* This program is to show
    how to write comments    */
public class CommentDemo {
        // Main method
        public static void main(String args[]) {
        /** This is a comment for documentation */
               System.out.println("Document");
        }
}
Identifier
 identifier คอชอทตงข3นในภาษาจาวา ซ3งอาจเป5นชอของคลาส         ชอของ
  ตวแปร หรอชอของเมธอด
 identifier จะต%องเป5นไปตามกฎการตงชอดงน
    •   identifier จะต%องข3นต%นด%วยอกขระ A-Z, a-z, _ หรอ $ เท)านน
    •   identifier ทประกอบไปด%วยตวอกขระมากกว)าหน3งตว ตวอกขระหลงจากตวแรกนนจะ
        ต%องเป5นตวอกขระข%างต%น หรอเป5นตวเลข 0 ถ3ง 9 เท)านน
    •   identifier จะต%องไม)ตรงกบคยเว*รด
 identifier ในภาษาจาวาเป5น   case sensitive ท<าให3 myVariable แตกต9าง
  จาก MyVariable
ต.วอย9างของ Identifier
ถAกต3อง                          ไม9ถAกต3อง
   •   MyVariable                    •   My Variable

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

   •                                 •   Hello'World
       This_is_also_a_variable
                                     •   public
หลกการตงชอทปฏ*บต*กนโดยทวไป
 การต.KงชBอของคลาส
   •   จะขJKนต3นด3วยต.วอ.กษรพมพMใหญ9แล3วตามด3วยต.วอ.กษรพมพMเลLกหรอต.วเลข โดยจะใช3
       ต.วอ.กษรพมพMใหญ9เฉพาะอ.กษรน<าของแต9ละค<าท*BตามมาในชBอ
   •   ควรเปIนค<านาม
   •   ต.วอย9างเช9น Sample, HelloWorld, Student หรอ GraduateStudent
       เปIนต3น

 การต.KงชBอของต.วแปร
   •   จะขJKนต3นด3วยต.วอ.กษรพมพMเลLก โดยจะใช3ตวอ.กษรพมพMใหญ9เฉพาะอ.กษรน<าของ
                                              .
       แต9ละค<าท*ตามมาในชอ
                 B         B
   •   ควรเปIนค<านามหรอเปIนชอส.Kนๆ
                              B
   •   ต.วอย9างเช9น x, i, name, id หรอ gpa เปIนต3น
หลกการตงชอทปฏ*บต*กนโดยทวไป
 การต.KงชBอเมธอด
    •   จะใช3หล.กการเด*ยวก.บการต.KงชBอต.วแปร แต9ควรเปIนค<ากรยา
    •   ต.วอย9างเช9น getName, setName หรอ showDetails เปIนต3น

 การต.KงชBอค9าคงท*B
    •   จะใช3ต.วอ.กษรพมพMใหญ9ท.Kงหมด และจะแยกค<าโดยใช3เครBองหมาย _ (underscore)
    •   ควรเปIนค<านาม
    •   ต.วอย9างเช9น MIN_GPA เปIนต3น
คยเว*รด
 คยเว*รดคอชBอท*ม*ความหมายพเศษในภาษาจาวา
                B
 ค*ยMเวรMดท4กต.วจะเปIนต.วอ.กษรต.วพมพMเลLก

 ค*ยMเวรMด goto      และ   const
    •   เปIนค*ยเวรMดท*Bไม9ได3ตรงก.บค<าส.Bงใดในภาษาจาวา
               M
 ค<าว9า true      และ   false
    •   ไม)ได%เป5นคยเว*รดในภาษาจาวา แต)จะเป5นข%อม(ลค)าคงทชน*ดตรรกะ
 ค<าว9า null
    •   ไม)ได%เป5นคยเว*รดในภาษาจาวา แต)จะเป5นข%อม(ลค)าคงทของตวแปรทมชน*ดข%อม(ลเป5น
        ประเภทอ%างอ*ง
คยเว*รดท*ใช3ในภาษาจาวา
                         B
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
ณM
             สญลกษณ แยกคา
ส.ญล.กษณMแยกค<า                          หน3าท*B

       ;          เพBอระบ4การสKนส4ดของค<าส.งต9างๆ
                                           B

      ()          ส<าหร.บต9อท3ายเมธอดหรอค<าส.Bงเช9น   if,for


       ,          ส<าหร.บแยกต.วแปรหรอค<าส.Bง

       .          เพBอใช3ในการระบ4ค4ณล.กษณะหรอเมธอดของ
                  ออปเจLค หรอใช3ในการระบ4แพคเกLจ
      {}          เพBอระบ4บลLอกค<าส.Bง
ช)องว)าง
 โปรแกรมภาษาจาวาสามารถท*Bจะม*ช9องว9างเพBอท*Bแยกค<า ประโยค หรอค<าส.ง
                                                                   B
  ต9างๆภายในโปรแกรมได3
 รAปแบบของช9องว9างประกอบด3วย
   •   ช9องว9าง (กดค*ยM Space บนค*ยMบอรMด)
   •   แทLป (กดค*ยM Tab บนค*ยMบอรMด)
   •   การขJKนบรรท.ดใหม9 (กดค*ยM Enter บนค*ยบอรMด)
                                            M
ข3อมAลค9าคงท*B
 ข3อมAลค9าคงท*คอค<าท*Bใช3แสดงข3อมAลท*BเปIนต.วเลข ต.วอ.กขระ ข3อความ หรอค9า
               B
  ทางตรรกะ
 ข3อมAลค9าคงท*แบ9งออกเปIน 5 ประเภทด.งน*K
               B
    •   ตรรกะ (boolean)
    •   ต.วอ.กขระ (character)
    •   ต.วเลขจ<านวนเตLม (integral)
    •   ต.วเลขทศนยม (floating point)
    •   ข3อความ (string)
ชน*ดข%อม(ลแบบพนฐาน
 ชนดข3อมAลในภาษาจาวาแบ9งเปIนสองประเภทใหญ9ๆคอ
   •   ชนดข3อมAลแบบพKนฐาน (primitive data type)
   •   ชนดข3อมAลแบบอ3างอง (reference data type)

 ชน*ดข%อม(ลแบบพนฐานแบ9งออกเปIน 4 ประเภทด.งน*K
   •   ชนดข%อม(ลตรรกะ (Logical) คอชน*ด boolean
   •   ชนดข%อม(ลอกขระ (Textual) คอชน*ด char
   •   ชนดข%อม(ลต.วเลขจานวนเต2ม (Integral) คอชน*ด byte,short,int และ long
   •   ชนดข%อม(ลต.วเลขทศน*ยม (Floating point) คอชน*ด float และ double
ขนาดและช9วงค9าของชนดข3อมAลแบบพนฐาน
                              K
 ชน*ดข3อมAล   ขนาด (บต)             ช)วงค)า
 boolean          1          true    หรอ   false

   char          16          'u0000' ถJง 'uFFFF'
   byte           8             -128 ถJง +127
  short          16          -32,768 ถJง +32,767
    int          32             -231 ถJง +231-1
   long          64             -263 ถJง +263-1
  float          32        -3.40E+38 ถJง +3.40E+38
  double         64       -1.80E+308 ถJง +1.80E+308
ข%อม(ลชน*ดตรรกะ
 ข%อม(ลชน*ดตรรกะมข%อม(ลค)าคงทอย()    2 ค)าคอ
    •   true และ false

 ตวอย)างเช9น คาสง
    • boolean flag = true;
    เป5นการกาหนดตวแปรท*Bชอว)า flag   ให%ม*ชนดข3อมAลเปIน boolean
    โดยกาหนดให%มค)าเป5น true
ข%อม(ลชน*ดตวอกขระ
 ข3อมAลชนดต.วอ.กขระใช3เพBอแสดงต.วอ.กขระหนJงต.ว
                                           B         ซJBงถAกเกLบอยA9ในรAปของ
  มาตรฐาน Unicode ขนาด 16 บต
 โดยจะม*ค9าต.งแต9 ‘u0000’ ถJง ‘uFFFF’
              K
 ต.วอย9างเช9น ค<าส.ง
                    B
    • char letter = ‘u0041';
    เปIนการประกาศต.วแปรท*Bชอว9า letter ให3เปIนข3อมAลชนด char
                              B
    โดยม*ค9าเปIน u0041 ซJBงม*คาเท9าก.บต.วอ.กษร A
                                9
 ต.วอย9างเช9น ค<าส.ง
                    B
    •   char letter = ‘A’;
    เปIนการประกาศต.วแปรท*Bชอว9า letter ให3เปIนข3อมAลชนด char
                              B
    โดยม*ค9าเปIนต.วอ.กษร A เช9นเด*ยวก.บค<าส.Bงก9อนหน3าน*K
อกขระพเศษท*นยมใช3ทวไป
                    B      .B
อ.กขระ        Unicode      ความหมาย
'b'          'u000B'     Backspace

't'          'u0009'        Tab

'n'          'u000A'      New line

'r'          'u000D'       Return

''          'u005C'     Backslash

'''          'u0027'    Single quote

'"'          'u0022'    Double quote
ข%อม(ลชน*ดต.วเลขจานวนเต2ม
 มชน*ดข%อม(ลพนฐาน      4 ชน*ดคอ
   •   byte, short, int, long
 โดยท.วไปข%อม(ลชน*ดต.วเลขจ<านวนเตLมจะถAกก<าหนดให3ม*ชนดข3อมAลเปIน
       B
  int
 ข%อม(ลค)าคงทสามารถเข*ยนได3สามแบบด.งน*K
   •   เลขฐานสบคอการเข*ยนเลขจ<านวนเตLมท.วไป อาทเช9น -121 และ 75362 เปIนต3น
                                              B
   •   เลขฐานแปดคอการเข*ยนเลขจ<านวนเตLมท*BขJKนต3นด3วยเลข 0 แล3วตามด3วยต.วเลข
       ต.งแต9 0 ถJง 7 อาทเช9น 016 (ม*ค9าเท9าก.บ 14 ในเลขฐานสบ)
         K
   •   เลขฐานสบหกคอการเข*ยนเลขจ<านวนเตLมท*ขJKนต3นด3วย 0x หรอ 0X แล3วตามด3วย
                                                 B
       ต.วเลขต.งแต9 0 ถJง 9 หรอต.วอ.กษร A ถJง F อาทเช9น 0xA2 (ม*ค9าเท9าก.บ 162 ใน
               K
       เลขฐานสบ)
ข%อม(ลชน*ดต.วเลขจานวนเต2ม
 ข%อม(ลค)าคงทของเลขจานวนเต2มทเป5นชน*ด long จะมตวอกษร l หรอ L ต)อ
  ท%าย อาท*เช)น
   •   2l หมายถ3ง เลขฐานส*บทมค)าเป5น 2 ซ3งเป5นข%อม(ลชน*ด long
   •   077L หมายถ3ง เลขฐานแปดทเป5นข%อม(ลชน*ด long
   •   0xBAACL หมายถ3ง เลขฐานส*บหกทเป5นข%อม(ลชน*ด long
ข%อม(ลชน*ดตวเลขทศน*ยม (floating point)
 ข%อม(ลชน*ดตวเลขทศน*ยมจะเป5นเลขทมเครองหมายจดทศน*ยม อาท*เช)น
   •   3.14 หรอ 3.0
 มชน*ดข%อม(ลพนฐาน 2 ชน*ด คอ double และ float
 โดยทวไปข%อม(ลชน*ดต.วเลขทศนยมจะถAกกาหนดให%ม*ชน*ดข%อม(ลเปIน
  double
 สามารถเข*ยนในรAปแบบของเลขยกก<าล.งสบ (exponential form) ได3โดยใช3
  ต.วอ.กษร E หรอ e ระบ4จ<านวนท*เปIนเลขยกก<าล.งสบ อาทเช9น
                               B
   •   6.02E23 หรอ 2e-7
ข%อม(ลชน*ดตวเลขทศน*ยม
 ข%อม(ลชนดต.วเลขทศน*ยมทม*ชน*ดข3อมAลเปIน float จะมตวอกษร F หรอ f
  ต)อท%าย อาท*เช)น
   •   2.718F หรอ 3.14f
 ข%อม(ลชนดต.วเลขทศน*ยมทม*ชน*ดข3อมAลเปIน double จะมตวอกษร             D หรอ
  d ต)อท%าย อาท*เช)น
   •   2.718D (โดยทวไปไม)จาเป5นต%องใส)ตวอกษร D เพราะข%อม(ลชนดต.วเลขทศน*ยมจะ
       กาหนดให%เป5น double อยA9แล3ว)
ตวแปร (Variable)
 ต.วแปรคอข3อมAลท*Bสามารถเปล*Bยนแปลงค9าได3ในโปรแกรมโดยใช3ค<าส.ง
                                                              B
  ก<าหนดค9า
 ค<าส.Bงในการประกาศต.วแปรของภาษาจาวาม*รปแบบด.งน*K
                                        A
       dataType variableName[,variableName];

 ต.วอย9างเช9น ค<าส.ง
                    B
       int amount;
       double x,y;
       float price,wholeSalePrice;
คาสงกาหนดค)า (Assignment Statement)
 ค<าส.Bงก<าหนดค9าจะเปIนค<าส.Bงท*Bใช3ในการเปล*Bยนแปลงค9าของต.วแปร

 ค<าส.Bงก<าหนดค9า (assignment statement) ซJBงม*รปแบบด.งน*K
                                                 A
      variableName = expression;

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

 ต.วอย9างเช9น
     int amount = 123;
     float price = 12.0f;
     double x = 4.0, y = 2.5;
ตวอย)างโปรแกรม
public class VariableAssignDemo {
    public static void main(String args[]) {
        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);
    }
}
ค9าคงท*B
 การประกาศค9าคงท*Bในภาษาจาวาท<าได3โดยการใส9ค*ยMเวรMด final หน3าค<าส.ง
                                                                     B
  ประกาศชBชB อ โดยม*รปแบบด.งน*K
                     A
       final dataType CONSTANT_NAME = expression;

 ต.วอย9างเช9น ค<าส.ง
                    B
       final int MINIMUM = 4;
       final double MIN_GPA = 2.00;
ตวอย)างโปรแกรม
public class ConstantDemo {
    public static void main(String args[]) {
        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
     }
}
ขอบเขตของต.วแปรและค9าคงท*B
 ต.วแปรและค9าคงท*BซงประกาศขJKนจะสามารถใช3งานภายในบลLอกค<าส.ง ({ }) ท*B
                    JB                                      B
  ประกาศเท9าน.น
              K
 ภาษาจาวาแบ9งต.วแปรและค9าคงท*BเปIนสองประเภทคอ
    •   ต.วแปรหรอค9าคงท*ทเปIนค4ณล.กษณะของออปเจLคหรอค4ณล.กษณะของคลาส
                        B *B
    •   ต.วแปรหรอค9าคงท*ทอยA9ในบลLอกของเมธอดท*Bเร*ยกว9าค9าคงท*Bภายใน (local constant)
                         B *B
        หรอต.วแปรภายใน (local variable)
ค9าเรBมต3นอ.ตโนม.ตของต.วแปร
 ต.วแปรท*BเปIนค4ณล.กษณะของออปเจLคหรอค4ณล.กษณะของคลาสจะถAก
  ก<าหนดค9าเรBมต3นให3โดยอ.ตโนม.ต
                    ชน*ดข3อมAล     ค9าเรBมต3น
                    boolean          false
                      byte             0
                     short             0
                       int             0
                      long            0L
                     float           0.0f
                    double            0.0
                      char         'u0000'
                      คลาส           null
ตวอย)างโปรแกรม
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
     }
}
ตวดาเน*นการ (Operator)
 นพจนMภาษาจาวาอาจจะประกอบด3วยข3อมAลค9าคงท*B ต.วแปร หรอค9าคงท*B
  ต9างๆ โดยจะม*ต.วด<าเนนการต9างๆไว3เพอค<านวณหาผลล.พธMทเปIนชนด
                                     B                *B
  ข3อมAลต9างๆ
 ต.วด<าเนนการในภาษาจาวาแบ9งออกเปIน 4 ประเภทคอ
   •   ตวดาเน*นการทางคณ*ตศาสตร (Arithmetic Operator)
   •   ตวดาเน*นการแบบสมพนธ (Relational Operator)
   •   ตวดาเน*นการทางตรรกศาสตร (Logical Operator)
   •   ตวดาเน*นการแบบบ*ต (Bitwise Operator)
ตวดาเน*นการทางคณ*ตศาสตร

เครองหมาย    ความหมาย      ต.วอย9างนพจนM
    +           บวก             a+b
    -            ลบ             a-b
    *           คAณ             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

 ถ%าวางเครองหมายไว%ข%างหน%า โปรแกรมจะคานวณค)าก)อนแล%วจ3งทาคาสง

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


                                 x = 6   y = 5
   ผลล.พธMทได3จากการร.นโปรแกรม
           *B                    x = 7   y = 7
ตวดาเน*นการแบบส.มพ.นธM

เครองหมาย      ความหมาย          ตวอย)าง   ผลล.พธM
    <            น3อยกว9า          3<4      true

   <=       น3อยกว9าหรอเท9าก.บ    3<=4      true

    >            มากกว9า           3>4     false

   >=       มากกว9าหรอเท9าก.บ     3>=4     false

   ==            เท9าก.บ          3==4     false

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

เครBองหมาย         ความหมาย
     !           กล.บค9าทางตรรกะ
 && หรอ &       AND ค9าทางตรรกะ
  || หรอ |       OR ค9าทางตรรกะ
     ^       Exclusive-OR ค9าทางตรรกะ
ตวอย)างการใช3ตวดาเน*นการทางตรรกศาสตรM
      น*พจน          ผลลพธ
  (7>6) && (2<1)     false

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

     !(7>6)          false
ผลล.พธMของการกล.บค9าทางตรรกะ

     op          !op
    true       false

    false       true
ผลล.พธMของการ AND ค9าทางตรรกะ

 op1        op2     op1 && op2
true       true        true

true       false      false

false      true       false

false      false      false
ผลล.พธMของการ OR ค9าทางตรรกะ

 op1       op2      op1 || op2
true       true       true

true      false       true

false      true       true

false     false       false
ผลล.พธMของ Exculsive ORค9าทางตรรกะ

  op1         op2       op1 ^ op2
  true        true       false

  true       false        true

 false        true        true

 false       false       false
ตวดาเน*นการแบบบ*ต
 ตวดาเน*นการแบบบ*ตของเลขจานวนเต2ม
                     ตวดาเน*นการ      ความหมาย
                          ~           Complement
                          &              AND
                          |               OR
                          ^              XOR
 ตวดาเน*นการแบบ   shift บ*ต
                    ตวดาเน*นการ        ความหมาย
                        >>          signed right shift
                       >>>         unsigned right shift
                        <<              left shift
ลาดบความสาคญของตวดาเน*นการ
ลาดบท       เร*ยงจาก              ตวดาเน*นการ
  1     ขวาไปซ3าย (R to L)   ++, --, +, -, ~, ! (data type)
  2     ซ3ายไปขวา (L to R)              *, /, %
  3     ซ3ายไปขวา (L to R)               +, -
  4     ซ3ายไปขวา (L to R)          <<, >>, >>>
  5     ซ3ายไปขวา (L to R)   <, >, <=, >=, instanceof
  6     ซ3ายไปขวา (L to R)              ==, !=
  7     ซ3ายไปขวา (L to R)                 &
ลาดบความสาคญของตวดาเน*นการ
ลาดบท       เร*ยงจาก             ตวดาเน*นการ
  8     ซ3ายไปขวา (L to R)               ^
  9     ซ3ายไปขวา (L to R)                |
 10     ซ3ายไปขวา (L to R)              &&
 11     ซ3ายไปขวา (L to R)               ||
 12     ขวาไปซ3าย (R to L)               ?:

                             =, +=, -=, *=, /=, %=, <<=,
 13     ขวาไปซ3าย (R to L)
                              >>=, >>>=, &=, ^=, |=
ต.วอย9าง
ค<าส.Bง x = 2+3*4-(7+2); ค<านวณหาผลล.พธMตามล<าด.บด.งน*K
 ค<านวณหาผลล.พธMค9า 7+2 ท<าให3ได3
      x = 2+3*4-9
 ค<านวณหาผลล.พธMค9า 3*4 ท<าให3ได3
      x = 2+12-9
 ค<านวณหาผลล.พธMค9า 2+12 ท<าให3ได3
      x = 14-9
 ค<านวณหาผลล.พธMค9า 14-9 ท<าให3ได3
      x=5
การแปลงชนดข3อมAล
 ในกรณ*ทต.วถAกด<าเนนการท.Kงสองม*ชนดข3อมAลท*Bตางก.น ภาษาจาวาจะม*หล.ก
         *B                                   9
  การแปลงชนดข3อมAล (type conversion) ด.งน*K
   •   ถ3าต.วถAกด<าเนนการต.วหนJBงม*ชนดข3อมAลเปIน double ต.วถAกด<าเนนการอ*กต.วหนJง
                                                                                B
       จะถAกแปลงให3ม*ชนดข3อมAลเปIน double โดยอ.ตโนม.ต
   •   ถ3าต.วถAกด<าเนนการท.งสองไม9ได3ม*ชนดข3อมAลเปIน double แต9ม*ต.วถAกด<าเนนการต.ว
                            K
       หนJBงท*ม*ชนดข3อมAลเปIน float ต.วถAกด<าเนนการอ*กต.วหนJBงจะถAกแปลงให3ม*ชนด
              B
       ข3อมAลเปIน float โดยอ.ตโนม.ต
   •   ถ3าต.วถAกด<าเนนการท.งสองไม9ได3ม*ชนดข3อมAลเปIน double หรอ float แต9ม*ตวถAก
                            K                                                   .
       ด<าเนนการต.วหนJBงท*Bม*ชนดข3อมAลเปIน long ต.วถAกด<าเนนการอ*กต.วหนJBงจะถAกแปลง
       ให3ม*ชนดข3อมAลเปIน long โดยอ.ตโนม.ต
การแปลงชนดข3อมAล
 กรณ*อBนๆ ต.วถAกด<าเนนการท.Kงสองจะแปลงให3ม*ชนดข3อมAลเปIน int

 ตวอย)าง
   byte b1, b2, b3;
   b1 = 2;
   b2 = 4;
   b3 = b1+b2;              //illegal
   • คาสงกาหนดค)า b3 ไม)ถ(กต%องเนองจาก b1+b2 จะให%ค)าข%อม(ลท*ม*ชน*ดข3อมAลเป5น int
                                                             B
การแปลงชนดข3อมAล
 การแปลงชนดข3อมAลม*สองรAปแบบคอ

   •   การแปลงข3อมAลท*กว3างขJKน (widening conversion) คอการแปลงจากชนดข3อมAลท*ม*
                      B                                                      B
       ขนาดเลLกกว9าไปเปIนชนดข3อมAลท*Bม*ขนาดใหญ9กว9า
   •   การแปลงข3อมAลท*แคบลง (narrowing conversion) คอการแปลงจากชนดข3อมAลท*ม*
                      B                                                       B
       ขนาดใหญ9กว9าไปเปIนชนดข3อมAลท*ม*ขนาดเลLกลง ซJBงอาจม*ผลให3เส*ยความละเอ*ยด
                                    B
       ของข3อมAลบางส9วนไป
หล.กการการแปลงชนดข3อมAล
 ชนดข3อมAลต.วเลขจ<านวนเตLมสามารถแปลงให3เปIนชนดข3อมAลต.วเลขทศนยม
  ได3
 ชนดข3อมAล float สามารถแปลงให3เปIนชนดข3อมAล double ได3

 ชนดข3อมAลต.วเลขจ<านวนเตLมม*ขนาดเร*ยงก.นจากน3อยไปมากด.งน*K

            byte → short → int → long
 ชนดข3อมAล char   สามารถแปลงให3เปIนชนดข3อมAล int ได3
 ชนดข3อมAล boolean จะไม9ม*ความส.มพ.นธMก.บชนดข3อมAลแบบพKนฐานอBนๆ
ตวอย)างของการแปลงชนดข3อมAล
ภาษาจาวาจะปรบชน*ดข%อม(ลให%อตโนมต* ในกรณต)อไปน
 กาหนดค)าชน*ดข%อม(ลทเล2กกว)าให%กบตวแปรชน*ดข%อม(ลทใหญ)กว)าอาท*เช)น
    int i = 4;
    long l = i;
    น*พจน i จะถ(กปรบชนดข3อมAลจาก int ให%เป5น long โดยอ.ตโนม.ต
 กาหนดค)าชน*ดข%อม(ลจานวนเต2มให%กบจานวนเลขทศน*ยมอาท*เช)น
    •   double x = 3;
    น*พจน 3 จะถ(กปรบชน*ดข%อม(ลจาก int ให%เป5น double โดยอ.ตโนม.ต

 ตวอย)างทไม)ถ(กต%อง
    int amount = 123L;             //illegal
    float f = 4.0;                 //illegal
ตวอย)างโปรแกรม

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

 จะทาให%โปรแกรมสามารถคอมไพลผ)านได%

 บางกรณอาจทาให%ข%อม(ลบางส)วนสAญหายไป
ต.วอย9างของ Typecasting
 ตวอย)าง
   int amount = (int) 3.0;
   • แปลงน*พจนทมค)า 3.0 ข%อม(ลชน*ด double ให%เป5นชน*ด int


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

public class TypecastingDemo {
    public static void main(String args[]) {
       byte b1 = 4;
       byte b2 = 3;
       byte b3;
       b3 = (byte)(b1+b2);
       float fl;
       fl = (float)3.2;
    }
}
ชนดข3อมAลแบบอ3างอง
 ชนดข3อมAลแบบอ3างองคอออปเจLคในภาษาจาวา โดยแบ9งออกเปIนสองแบบ
  คอ
   •   ชนดข3อมAลท*BเปIนคลาส
   •   ชนดข3อมAลท*BเปIนอะเรยM
 ชนดข3อมAลแบบอ3างองจะม*วธ*การเกLบข3อมAลในหน9วยความจ<าท*Bแตกต9างจาก
  การเกLบข3อมAลของชนดข3อมAลแบบพKนฐานอาทเช9น ค<าส.Bง
   int x = 7;
   String s = new String("Thana");
การประกาศต.วแปรและจองเนอท*Bในหน9วยความจ<า
                          K
 อาทเช9นค<าส.Bง

              int x;

              Date d;     d = new Date(16,8,2002);
คลาส String
   String   เปIนคลาสท*Bก<าหนดไว3ใน Java API ต.วแปรท*ม*ชนดข3อมAลเปIน
                                                     B
    String กLคอออปเจLคชนดหนJง ซJง String ม*ขอแตกต9างจากออปเจLค
                               B B               3
    ท.วๆไปด.งน*K
      B
     •   String เปIนออปเจLคท*Bม*ค9าคงท*ข3อมAลซJBงกLคอข3อความใดๆ ท*BอยAภายในเครBองหมาย
                                       B                              9
         double quote (“ ”) ต.วอย9างเช9น
                 “This is a java course”
     •   String เปIนออปเจLคท*Bสามารถสร3างหรอก<าหนดค9าได3โดยไม9จ<าเปIนต3องใช3ค<าส.Bง
         new ต.วอย9างเช9น เราสามารถใช3ค<าส.ง
                                           B
                 String s = “Thana”;
     •   โดยไม9จ<าเปIนท*Bจะต3องใช3ค<าส.ง
                                       B
                  String s = new String(“Thana”);
ต.วอย9างโปรแกรม
public class StringDemo {
    public static void main(Stirng args[]){
         String s1 = "Thana";
         String s2 = "Thana";
         String s3 = new String("Thana");
      }
}
ค<าอธบายโปรแกรม
 กรณ*ท*Bไม9ใช3ค<าส.ง new ภาษาจาวาจะพจารณาจาก String Pool ว9าม*ข3อความ
                    B
  เดมอยAหรอไม9
        9
 กรณ*ท*Bใช3ค<าส.ง new ภาษาจาวาจะสร3างข3อความใหม9และจองเนอท*Bในหน9วย
                 B                                       K
  ความจ<าเสมอ
String เป5นออปเจ2คทเปลยนค)าไม)ได%

 ต.วอย9างเช9น ค<าส.ง
                    B
       String s1;
       s1 = “Thanachart";
       s1 = “Somchai";
ต.วด<าเนนการท*ใช3กบข3อมAลชนด String
                       B .
   String  เปIนออปเจLคท*ม*ตวด<าเนนการท*ใช3ในการเชBอมข3อความสอง
                          B .           B
    ข3อความเข3าด3วยก.น โดยใช3เครองหมาย + อาทเช9น
                                B
       String s1 = “Hello” + “ World”;
 ต.วด<าเนนการในการเชBอมข3อความสามารถใช3เชBอมข3อมAลชนด String ก.บ
    ต.วถAกด<าเนนการท*BเปIนชนดข3อมAลอBนๆ ภาษาจาวาจะแปลงชนดข3อมAลด.ง
    กล9าวให3เปIนชนด String โดยอ.ตโนม.ตอาทเช9น ค<าส.Bง
       String s1 = “This";
       String s2 = s1 + “ is a test ”;
       String s3 = s1+4;
ค<าส.งอนพ4ตและเอาทMพ4ต
                     B
 ออปเจLค System.in เปIนออปเจLคท*Bม*เมธอดส<าหร.บการอ9านข3อมAลทาง
 อ4ปกรณMอนพ4ตมาตรฐาน ซJงโดยท.BวไปกLคอค*ยบอรMด
                       B                M
 ออปเจLค System.out  เปIนออปเจLคท*Bม*เมธอดส<าหร.บการแสดงข3อมAลออก
 ทางอ4ปกรณMเอาทMพ4ตมาตรฐานซJBงโดยท.Bวไปคอจอภาพ
 ออปเจLค System.err  เปIนออปเจLคท*Bม*เมธอดส<าหร.บการแสดงข3อผด
 พลาด (error) ออกทางอ4ปกรณMท*Bใช3ในการแสดงข3อผดพลาด ซJBงโดยท.วไปจะ
                                                             B
 ก<าหนดเปIนจอภาพ
System.out.println

 ออปเจLค System.out หมายถJงออปเจLคท*ชBอ out ซJงเปIนค4ณล.กษณะของ
                                     B         B
  คลาสท*BชBอ System
 ออปเจLคท*ชBอ out
           B         เปIนออปเจLคของคลาส   PrintStream ท*Bม*เมธอดท*B
  นยมใช3ท.Bวไปคอ
            print(String s)

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

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

 แบบฝ’กห.ดท*B 2 การใช3ค<าส.Bงก<าหนดค9าและนพจนM
    •   จงเข*ยนโปรแกรมภาษาจาวาเพBอค<านวณหาค9ารากท*Bสองของสมการ
                       ax2 + bx + c = 0
        แล3วพมพMผลล.พธMออกทางจอภาพ
 แบบฝ’กห.ดท*B 3   การเข*ยนโปรแกรมเพอร.บค9าอนพ4ตผ9านทาง command line
                                    B
    •   จงเข*ยนโปรแกรมภาษาจาวาเพBอค<านวณหาค9าพKนท*ของวงกลม โดยม*การร.บค9าร.ศม*
                                                   B
        (radius) เข3ามา แล3วพมพMผลล.พธMทได3ออกทางจอภาพ
                                        *B

Más contenido relacionado

La actualidad más candente

แบบทดสอบระบบประสาท
แบบทดสอบระบบประสาทแบบทดสอบระบบประสาท
แบบทดสอบระบบประสาทWichai Likitponrak
 
เรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบ
เรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบเรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบ
เรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบkruood
 
สมบัติของสารพันธุกรรม
สมบัติของสารพันธุกรรมสมบัติของสารพันธุกรรม
สมบัติของสารพันธุกรรมWan Ngamwongwan
 
ใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้น
ใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้นใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้น
ใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้นNattapon
 
การเขียนผังงาน
การเขียนผังงานการเขียนผังงาน
การเขียนผังงานCai Ubru
 
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีNattapon
 
องค์ประกอบของลมฟ้าอากาศ
องค์ประกอบของลมฟ้าอากาศองค์ประกอบของลมฟ้าอากาศ
องค์ประกอบของลมฟ้าอากาศkrupornpana55
 
แจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้าง
แจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้างแจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้าง
แจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้างchupol bamrungchok
 
การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site เพื่อพัฒนาผลสัมฤท...
การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site  เพื่อพัฒนาผลสัมฤท...การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site  เพื่อพัฒนาผลสัมฤท...
การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site เพื่อพัฒนาผลสัมฤท...krupanisara
 
ใบความรู้ที่5 ตาราง Table
ใบความรู้ที่5 ตาราง  Tableใบความรู้ที่5 ตาราง  Table
ใบความรู้ที่5 ตาราง Tablekrunueng1
 
การลำเลียงอาหารในพืช
การลำเลียงอาหารในพืชการลำเลียงอาหารในพืช
การลำเลียงอาหารในพืชdnavaroj
 
บทที่3เทคนิคการส่งข้อมูลดิจิตอล
บทที่3เทคนิคการส่งข้อมูลดิจิตอลบทที่3เทคนิคการส่งข้อมูลดิจิตอล
บทที่3เทคนิคการส่งข้อมูลดิจิตอลkamolphan_sri
 

La actualidad más candente (20)

แบบทดสอบระบบประสาท
แบบทดสอบระบบประสาทแบบทดสอบระบบประสาท
แบบทดสอบระบบประสาท
 
เรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบ
เรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบเรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบ
เรื่องที่ 1 เครื่องมือและอุปกรณ์ในงานเขียนแบบ
 
แบบจำลองระบบ
แบบจำลองระบบแบบจำลองระบบ
แบบจำลองระบบ
 
สมบัติของสารพันธุกรรม
สมบัติของสารพันธุกรรมสมบัติของสารพันธุกรรม
สมบัติของสารพันธุกรรม
 
M3 plan1-2-work2-1-ans
M3 plan1-2-work2-1-ansM3 plan1-2-work2-1-ans
M3 plan1-2-work2-1-ans
 
ใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้น
ใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้นใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้น
ใบความรู้ที่ 1 การใช้งานโปรแกรม visual studio 2010 เบื้องต้น
 
การเขียนผังงาน
การเขียนผังงานการเขียนผังงาน
การเขียนผังงาน
 
09 pseudo code
09 pseudo code09 pseudo code
09 pseudo code
 
ไอโซเมอร์
ไอโซเมอร์ไอโซเมอร์
ไอโซเมอร์
 
Astronomy V
Astronomy VAstronomy V
Astronomy V
 
บทที่7แรงเสียดทาน1 (2)
บทที่7แรงเสียดทาน1 (2)บทที่7แรงเสียดทาน1 (2)
บทที่7แรงเสียดทาน1 (2)
 
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
 
องค์ประกอบของลมฟ้าอากาศ
องค์ประกอบของลมฟ้าอากาศองค์ประกอบของลมฟ้าอากาศ
องค์ประกอบของลมฟ้าอากาศ
 
เฉลยแบบทดสอบปลายภาค ม.5
เฉลยแบบทดสอบปลายภาค ม.5เฉลยแบบทดสอบปลายภาค ม.5
เฉลยแบบทดสอบปลายภาค ม.5
 
แจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้าง
แจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้างแจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้าง
แจกเอกสารประกอบการสอนใช้งาน Sketch up ในการประยุกต์ใช้ในการก่อสร้าง
 
การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site เพื่อพัฒนาผลสัมฤท...
การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site  เพื่อพัฒนาผลสัมฤท...การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site  เพื่อพัฒนาผลสัมฤท...
การจัดการเรียนรู้ผ่านบทเรียนออนไลน์ด้วยโปรแกรม Google Site เพื่อพัฒนาผลสัมฤท...
 
ใบความรู้ที่5 ตาราง Table
ใบความรู้ที่5 ตาราง  Tableใบความรู้ที่5 ตาราง  Table
ใบความรู้ที่5 ตาราง Table
 
การลำเลียงอาหารในพืช
การลำเลียงอาหารในพืชการลำเลียงอาหารในพืช
การลำเลียงอาหารในพืช
 
บทที่3เทคนิคการส่งข้อมูลดิจิตอล
บทที่3เทคนิคการส่งข้อมูลดิจิตอลบทที่3เทคนิคการส่งข้อมูลดิจิตอล
บทที่3เทคนิคการส่งข้อมูลดิจิตอล
 
อาหารกับการดำรงชีวิต วิทยาศาสตร์ ม.2
อาหารกับการดำรงชีวิต วิทยาศาสตร์ ม.2อาหารกับการดำรงชีวิต วิทยาศาสตร์ ม.2
อาหารกับการดำรงชีวิต วิทยาศาสตร์ ม.2
 

Similar a พื้นฐานโปรแกรมภาษาจาวา

การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)
การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)
การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)Warawut
 
Java Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageJava Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageIMC Institute
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา JavaItslvle Parin
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา JavaItslvle Parin
 
C Programming
C ProgrammingC Programming
C ProgrammingWarawut
 
Structure Statement VB.NET 2005
Structure Statement VB.NET 2005Structure Statement VB.NET 2005
Structure Statement VB.NET 2005Warawut
 
โปรแกรมทำนายจากสระในชื่อภาษาอังกฤษ
โปรแกรมทำนายจากสระในชื่อภาษาอังกฤษโปรแกรมทำนายจากสระในชื่อภาษาอังกฤษ
โปรแกรมทำนายจากสระในชื่อภาษาอังกฤษWarawut
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Thank Chiro
 
ใบความรู้ที่ 5
ใบความรู้ที่  5ใบความรู้ที่  5
ใบความรู้ที่ 5SubLt Masu
 
How to Design Metadata Standard for NECTEC Digital Archive Project
How to Design Metadata Standard for NECTEC Digital Archive ProjectHow to Design Metadata Standard for NECTEC Digital Archive Project
How to Design Metadata Standard for NECTEC Digital Archive ProjectRachabodin Suwannakanthi
 

Similar a พื้นฐานโปรแกรมภาษาจาวา (12)

การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)
การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)
การเขียนโปรแกรมโดยใช้ตัวแปรชนิดอาร์เรย์ (Array)
 
Java Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageJava Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming Language
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
C Programming
C ProgrammingC Programming
C Programming
 
Structure Statement VB.NET 2005
Structure Statement VB.NET 2005Structure Statement VB.NET 2005
Structure Statement VB.NET 2005
 
Cover Test
Cover TestCover Test
Cover Test
 
โปรแกรมทำนายจากสระในชื่อภาษาอังกฤษ
โปรแกรมทำนายจากสระในชื่อภาษาอังกฤษโปรแกรมทำนายจากสระในชื่อภาษาอังกฤษ
โปรแกรมทำนายจากสระในชื่อภาษาอังกฤษ
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
ใบความรู้ที่ 5
ใบความรู้ที่  5ใบความรู้ที่  5
ใบความรู้ที่ 5
 
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
How to Design Metadata Standard for NECTEC Digital Archive Project
How to Design Metadata Standard for NECTEC Digital Archive ProjectHow to Design Metadata Standard for NECTEC Digital Archive Project
How to Design Metadata Standard for NECTEC Digital Archive Project
 

Más de Thanachart Numnonda

Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thanachart Numnonda
 
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขThanachart Numnonda
 
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยThanachart Numnonda
 
Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Thanachart Numnonda
 
How would cloud computing Effect to Software Industry?
How would cloud computing  Effect to Software Industry?How would cloud computing  Effect to Software Industry?
How would cloud computing Effect to Software Industry?Thanachart Numnonda
 
Impact of cloud computing to Asian IT Industry
Impact of cloud computing  to Asian IT IndustryImpact of cloud computing  to Asian IT Industry
Impact of cloud computing to Asian IT IndustryThanachart Numnonda
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่Thanachart Numnonda
 
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]Thanachart Numnonda
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่Thanachart Numnonda
 
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย Thanachart Numnonda
 
Cloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆCloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆThanachart Numnonda
 
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทยThanachart Numnonda
 
บทความ Google vs. Android
บทความ Google vs. Android  บทความ Google vs. Android
บทความ Google vs. Android Thanachart Numnonda
 
Technology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryTechnology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryThanachart Numnonda
 
อยากอยู่ 110 ปี
อยากอยู่ 110 ปี อยากอยู่ 110 ปี
อยากอยู่ 110 ปี Thanachart Numnonda
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตThanachart Numnonda
 

Más de Thanachart Numnonda (20)

Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021
 
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
 
Planning on Mobile Strategy
Planning on Mobile StrategyPlanning on Mobile Strategy
Planning on Mobile Strategy
 
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
 
Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Software Trends Towards AEC 2015
Software Trends Towards AEC 2015
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
 
How would cloud computing Effect to Software Industry?
How would cloud computing  Effect to Software Industry?How would cloud computing  Effect to Software Industry?
How would cloud computing Effect to Software Industry?
 
Impact of cloud computing to Asian IT Industry
Impact of cloud computing  to Asian IT IndustryImpact of cloud computing  to Asian IT Industry
Impact of cloud computing to Asian IT Industry
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
 
Cloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆCloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆ
 
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
 
บทความ Google vs. Android
บทความ Google vs. Android  บทความ Google vs. Android
บทความ Google vs. Android
 
IT trends for co-creation
IT trends for co-creationIT trends for co-creation
IT trends for co-creation
 
Technology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryTechnology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software Industry
 
อยากอยู่ 110 ปี
อยากอยู่ 110 ปี อยากอยู่ 110 ปี
อยากอยู่ 110 ปี
 
Open
OpenOpen
Open
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุต
 

พื้นฐานโปรแกรมภาษาจาวา

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