140-140 Object-Oriented Programming

      การโปรแกรมเชิงวัตถุ


     1. Introduction to Java

                Faculty of Technology and Environment
           Prince of Songkla University, Phuket Campus
                                              2/2551
Objectives
    วัตถุประสงค์
       เข้าใจความแตกต่างของ Structure Programming กับ OOP
       รู้จักเทคโนโลยีจาวา

       เข้าใจขั้นตอนการพัฒนาโปรแกรมด้วยภาษาจาวา

       เข้าใจโครงสร้างโปรแกรมภาษาจาวา

       เขียน คอมไพล์ และรันโปรแกรมจาวาง่าย ๆ ได้

       รู้จักข้อผิดพลาดในการเขียนโปรแกรม

       อธิบายข้อดีของภาษาจาวาได้




Object-Oriented Programming 2/2551                           2
Contents
  Structure programming VS Object-oriented programming
  Java programming language
  Java platform
  Java Development Kit
  Basic Java application
  How to compile and run program?
  Type of error




Object-Oriented Programming 2/2551                        3
Structure Programming VS OOP
    Structure programming - การโปรแกรมเชิงโครงสร้าง
       เขียนโปรแกรมโดยแตกระบบงานออกเป็นหน้าที่งานต่าง ๆ (function)
       การแก้ไขหรือข้อผิดพลาดอาจส่งผลกระทบต่อส่วนอื่น เพราะมีการใช้ข้อมูล
        บางอย่างร่วมกัน
       ตัวอย่างภาษาโปรแกรมเชิงโครงสร้าง ได้แก่ ภาษาซี ปาสคาล

    Object-oriented programming - การโปรแกรมเชิงวัตถุ
       เขียนโปรแกรมโดยแตกระบบออกเป็นวัตถุ โดยแทนวัตถุที่มีอยู่จริง
       วัตถุจะถูกกาหนดให้มีคุณสมบัติและพฤติกรรมเพื่อดาเนินงานต่างๆ

       ตัวอย่างภาษา OOP เช่น ภาษาจาวา C#



Object-Oriented Programming 2/2551                                           4
Structure Programming VS OOP
 ตัวอย่าง การแตกระบบลงทะเบียน
  Structure Programming             ข้อมูลที่สนใจ
                                     -รหัสนักศึกษา
       ลงทะเบียนเรียน               - ชื่อ สกุล
       ชาระเงิน                     -สาขาวิชา
       เพิ่มรายวิชา

    OOP                             พฤติกรรมในระบบ
       นักศึกษา
                                     - ลงทะเบียน
       ใบลงทะเบียน
                                     - เพิ่มวิชา
                                     -ชาระเงิน
       รายวิชา
       ใบเสร็จรับเงิน


Object-Oriented Programming 2/2551                    5
Structure Programming VS OOP
    OOP Benefits
       การวิเคราะห์ปัญหาใกล้เคียงกับการคิดของคนทั่วไป
       การแบ่งระบบเป็นวัตถุ ทาให้เป็นข้อมูลมีความเป็นอิสระ

       การ reuse ทาได้ง่ายกว่า Structure Programming พัฒนาโปรแกรมได้เร็ว

       แก้ไขและบารุงรักษาระบบได้ง่าย




Object-Oriented Programming 2/2551                                          6
Java Programming Language
    Programming languages คือ ภาษาที่ใช้ในการเขียนโปรแกรม
         โปรแกรมที่เขียนขึ้นสามารถนามาใช้งานได้ในคอมพิวเตอร์
    ภาษาจาวา เป็นภาษาการเขียนโปรแกรมระดับสูง
       พัฒนาโดยบริษัท Sun Microsystems (www.sun.com)
       เวอร์ชั่นแรกเริ่มใช้ในปี ค.ศ. 1996

       ปัจจุบันเวอร์ชั่น 6



                           ต้องถูกแปลให้เป็นภาษาเครื่องก่อน
                         จึงจะสามารถประมวลผลหรือทางานได้

Object-Oriented Programming 2/2551                              7
Java Platform
    Platform - hardware or software environment in which a program
     runs
       เป็นสภาพแวดล้อมหรือระบบที่โปรแกรมอาศัยทางาน
       อาจรวมทั้งฮาร์ดแวร์และซอฟต์แวร์ เช่น

          • Wintel platform หมายถึง คอมพิวเตอร์ที่ใช้ CPU Intel และ OS Windows
       อาจหมายถึงซอฟต์แวร์อย่างเดียว เช่น

          • ระบบปฏิบัติการ Windows, Linux, Unix, Mac OS
          • โปรแกรมที่เป็นสภาวะแวดล้อมในการพัฒนาซอฟต์แวร์อื่น ๆ (Integrated
            Development Environment : IDE) เช่น VB.Net, Eclipse, NetBean


Object-Oriented Programming 2/2551                                          8
Java Platform
  Java platform เป็นแพลตฟอร์มที่เป็นซอฟต์แวร์ ซึ่งสามารถรันโปรแกรม
   จาวา
  Java Development Kit (JDK) คือ ชุดพัฒนาโปรแกรมภาษาจาวา สามารถ
   download ได้ที่ http://java.sun.com
  JDK ประกอบด้วย                              Java
       ตัวแปลภาษาจาวา (Java compiler)
                                              Compiler   JDK
       สภาพแวดล้อมสาหรับรันโปรแกรมจาวา             JRE
        (Java Runtime Environment หรือ JRE)        API
          • JVM (Java Virtual Machine)             JVM
          • Java API (Library)
Object-Oriented Programming 2/2551                                9
http://java.sun.com/javase/technologies/index.jsp#overview




Object-Oriented Programming 2/2551                                                     10
Edition of Java
 Java platform แบ่งเป็น 3 ประเภทตามการใช้งาน ดังนี้
  Java Standard Edition (Java SE) สาหรับเขียนโปรแกรมทั่วไปและโปรแกรม
    ที่ทางานบนเว็บบราวเซอร์ทเี่ รียกว่า applet
  Java Enterprise Edition (Java EE) สาหรับเขียนโปรแกรมระดับองค์กร โดย
    เพิ่มความสามารถจาก Java SE เพื่อรองรับการทางานสาหรับการให้บริการใน
    ระบบขนาดใหญ่ได้
  Java Micro Edition (Java ME) เป็น platform สาหรับเขียนโปรแกรมบน
    อุปกรณ์อิเล็กทรอนิกส์เช่น โทรศัพท์มือถือ PDA


Object-Oriented Programming 2/2551                                11
From source code to running program



                                                Class files                   Running
Editor          Source file          Compiler                   Interpretor
                                                                              Program



                                                Library files




Object-Oriented Programming 2/2551                                              12
Java Compiler
    Compiler เป็นโปรแกรมทีใช้แปลภาษาระดับสูงเป็นภาษาเครื่องซึ่งเป็น
                             ่
     ชุดคาสั่งที่ CPU สามารถนาไปประมวลผลได้

    Java Compiler คือ ตัวแปลภาษาจาวา ทาหน้าที่แปลรหัสคาสั่งภาษาจาวา
     (source code) ให้เป็นชุดคาสั่งที่เรียกว่า bytecode

 Source code                        compiled by        Bytecode
   (file.java)                        Java compiler       (file.class)
                                       (javac.exe)
Object-Oriented Programming 2/2551                                     13
Write once, run anywhere (WORA)
  ปกติโปรแกรมภาษาอื่น ๆ เช่น ภาษาซี เมื่อถูกแปลจากเครื่องหนึ่งไม่
   สามารถนาไปใช้งานกับเครื่องที่ใช้ภาษาเครืองต่างกันได้
                                             ่
  (เครื่องที่มี CPU ต่างยี่ห้อกัน หรือใช้ระบบปฏิบติการต่างกัน)
                                                 ั
  bytecode ทาให้จาวาเป็นภาษาทีไม่ขึ้นกับระบบปฏิบติการ (platform-
                                      ่               ั
   independent)
         โปรแกรมที่เขียนด้วยภาษาจาวาสามารถนาไปประมวลผลบนระบบปฏิบัติการที่
          กันได้ เช่น Windows, Linux, Unix หรือใช้ CPU ต่างกัน เช่น Intel, AMD




Object-Oriented Programming 2/2551   Bytecode (file.class)                  14
Java Runtime Environment (JRE)
    Java Runtime Environment เป็นโปรแกรมที่ใช้ประมวลผล bytecode ประกอบด้วย
       Java Virtual Machine (JVM) หรือ โปรแกรมเครื่องจักรเสมือนจาวาสาหรับ
         ประมวลผล Bytecode ทาหน้าที่เป็น interpreter แปลไบต์โค้ดเป็นภาษาเครื่อง
         สาหรับระบบปฎิบัติการนั้น
       Library files (Java API-Application Programming Interface) คือ คลาสหลัก
         ของภาษาจาวา


        Bytecode                    interpreted by JRE      Program
      (file.class)                       (java.exe)
     Library Files
Object-Oriented Programming 2/2551                                           15
Java Runtime Environment (JRE)
  เครื่องคอมพิวเตอร์ที่ติดตั้ง JRE ไว้จะสามารถรันโปรแกรมที่เขียนด้วย
   ภาษาจาวาได้
  bytecode ทาหน้าที่เสมือนเป็นภาษาเครื่องสาหรับ JVM ทาให้สามารถนา
   bytecode ไปใช้งานในเครื่องที่มีการติดตั้ง JVM




Object-Oriented Programming 2/2551                                  16
Java Version
    Toolkit product version – Developer version
                              JDK 1- Java 1.1 (1996)
                             SDK 2 - Java 1.2-1.4 (2000)
                             SDK 5 - Java 1.5 (2004)
                             SDK 6 - Java 1.6

      JDK = Java Development Kit
      เป็นชุดพัฒนาโปรแกรมจาวา



Object-Oriented Programming 2/2551                          17
Basic Java Application
  JDK ประกอบด้วย Java Compiler และ Java Runtime Enviroment
  แต่ไม่มีโปรแกรมสาหรับเขียน java source code
  สามารถเขียนโปรแกรมจาวาได้โดยใช้ Text editor เช่น Notepad,
   EditPlus
  หรือใช้โปรแกรมที่มีเครื่องมืออานวยความสะดวกในการเขียนโปรแกรม
   ซึ่งเรียกว่า Integrated Development Environment(IDE) เช่น NetBeans
   และ Eclipse เป็นต้น



Object-Oriented Programming 2/2551                                 18
Basic Java Application
    องค์ประกอบหลักของโปรแกรมจาวา
       Class คือ ชิ้นส่วนของโปรแกรมที่เล็กที่สุดของภาษาจาวา
       แต่ละชิ้นส่วนสามารถนามาประกอบกันเพื่อสร้างเป็นโปรแกรมขนาดใหญ่ๆ ได้

       แต่ละคลาสประกอบด้วย method ซึ่งเป็นชุดของการดาเนินงาน

       แต่ละเมธอด ประกอบด้วยคาสั่งในการดาเนินงานต่าง ๆ (statement)
                         Class
                          Method1
                         Statement;
                          Method2
                         Statement;
                         Statement;
Object-Oriented Programming 2/2551                                      19
Ex. 1 Java application HelloWorld
                                  คาที่บอกว่าเป็นคลาส   ชื่อคลาส
                                                                        comments

                                                                   ไม่มี return type ชื่อเมธอด
class

method


                   คาสั่งให้แสดงผลไปยังจอภาพ             ข้อความที่แสดง          statement

 Object-Oriented Programming 2/2551                                                    20
Java Comment
    บรรทัดที่ 1,2 – เรียกว่า comments
         เป็นคาอธิบายโปรแกรม ไม่ถูกคอมไพล์เป็น bytecode ด้วย java compiler




    รูปแบบการเขียน comment
         บรรทัดเดียว ให้ใช้เครื่องหมาย // นาหน้า
             //……your comment……..
         หลายบรรทัด จะอยู่ภายในเครืองหมาย /*…………..*/
                                    ่
           /*…………your comment
             ……………………………………..….*/

Object-Oriented Programming 2/2551                                            21
Ex.1 Java application HelloWorld
    บรรทัดที่ 4 - ประกาศคลาส
       คาว่า class เป็นเหมือนตัวบอกถึงชิ้นส่วนของโปรแกรม
       รายละเอียดในแต่ละคลาสจะอยู่ภายในวงเล็บปีกกา class {………..}

       ภายในคลาสประกอบด้วยเมธอดได้หลายเมธอด

       คาว่า public ระบุให้คลาสอื่นทุกคลาสเรียกใช้งานคลาสนี้ได้

       HelloWord เป็นชื่อคลาส




Object-Oriented Programming 2/2551                                  22
Ex. 1 Java application HelloWorld
    บรรทัดที่ 6 - method signature
       main เป็นชื่อ method ในจาวา main() จะเป็นเมธอดแรกที่ถูกเรียกให้ทางาน
       แต่ละเมธอด มีคาสั่งอยู่ภายในวงเล็บปีกกา {………..}




    บรรทัดที่ 8 - statement
       เป็นคาสั่งในการพิมพ์ข้อความออกทางจอภาพ
       ในโปรแกรมมีได้หลายคาสั่ง แต่ละคาสั่งต้องจบด้วยเครื่องหมาย semicolon ;


Object-Oriented Programming 2/2551                                          23
Compile and Run program
    การ compile โปรแกรม
       เปิด command prompt และย้าย prompt ไปที่ folder ที่จัดเก็บโปรแกรม
       ทาการคอมไพล์โดยพิมพ์คาสั่ง

           javac HelloWorld.java
    การรันโปรแกรม
         พิมพ์คาสั่ง
           java HelloWorld
              ผลลัพธ์

Object-Oriented Programming 2/2551                                          24
Class with a main method
  ในจาวา ทางานด้วย class – การรันโปรแกรมคือ การรันคลาส
  การรันโปรแกรม เป็นการบอกให้ JVM ให้โหลดคลาส Hello ขึ้นมา
  จากนั้นทางานใน method main() ซึ่งจะทางานจนหมดคาสั่งใน main()




Object-Oriented Programming 2/2551                            25
Syntax Errors
    Syntax error หรือ Compile-time error
       Syntax error คือข้อผิดพลาดจากการฝ่าฝืนกฏหรือไวยากรณ์ของภาษา
       การตรวจสอบไวยากรณ์ว่าถูกต้องหรือไม่ จะเกิดขึ้นขณะคอมไพล์โปรแกรมโดย
        คอมไพเลอร์
       หากเราเขียนไม่ถูกต้อง คอมไพเลอร์จะแจ้งข้อผิดพลาดให้ทราบ และไม่สร้าง
        bytecode ให้
       เช่น จบคาสั่งโดยไม่มีเครื่องหมาย ; หรือ ใส่วงเล็บปีกกาไม่ครบ เป็นต้น

      ระวัง ตัวอักษรตัวใหญ่และตัวเล็กในภาษาจาวา ถือว่าเป็นคนละตัวกัน


Object-Oriented Programming 2/2551                                       26
Syntax Errors




                          Compile…..




Object-Oriented Programming 2/2551     27
Syntax Errors




                          Compile…..




Object-Oriented Programming 2/2551     28
Syntax Errors




                               Compile…..




Object-Oriented Programming 2/2551          29
Syntax Errors



                          Compile…..




Object-Oriented Programming 2/2551     30
Logic Errors
    Logic error หรือ Run-time error
       Logic error คือข้อผิดพลาดจากการที่โปรแกรมทางานไม่ตรงกับที่เราต้องการ
       โปรแกรมที่เขียนขึ้นถูกต้องตามหลักไวยากรณ์ของภาษาจาวา สามารถคอมไพล์
        ได้
       อาจสามารถรันโปรแกรมได้แต่ทางานได้ไม่ตรงกับที่เราคิดไว้ หรือทางานไม่ได้

       Programmer ต้องตรวจสอบข้อผิดพลาดนี้เอง ตัวอย่างเช่น

         • ไม่ใส่วงเล็บในการคานวณ
         • ลาดับคาสั่งผิด



Object-Oriented Programming 2/2551                                        31
Logic Errors




                                 Compile…..Run…..


    Exception คือ ข้อผิดพลาด

Object-Oriented Programming 2/2551                  32
Logic Errors




                                 Compile…..Run…..
                                     -5

       ต้องการให้ทาการคานวณตามลาดับคือ (10-3)*5 = 35
       แต่โปรแกรมคานวณให้คือ 10-(3x5) = -5

Object-Oriented Programming 2/2551                      33
ข้อดีของภาษาจาวา
       Write once, run anywhere
       Code security มีกลไกการตรวจสอบไบต์โค้ด (ฺBytecode verifier) ว่าต้องเป็นโค้ดที่
        ไม่ทาให้ระบบเสียหาย
       Exception มีกลไกให้โปรแกรมเมอร์จัดการข้อผิดพลาดที่เกิดขึ้นในการรัน
        โปรแกรม
       มี Garbage collection เป็นกลไกจัดการคืนพื้นที่ในหน่วยความจาอัตโนมัติ
        โปรแกรมเมอร์ไม่ต้องจัดการเอง
       มี library ให้ใช้มากมาย – database storage, cryptography, networking, GUI
       สนับสนุน OOP
       Free !!!
Object-Oriented Programming 2/2551                                                34
Summary
    Structure programming เน้นการแตกระบบเป็นฟังก์ชั่นการทางาน OOP เน้นการแตก
     ระบบเป็นวัตถุในระบบ
    Java Compiler แปลโปรแกรมที่เขียนด้วยภาษาระดับสูงเป็นภาษาเครื่องสาหรับ JVM
     เรียกว่า bytecode
    โครงสร้างโปรแกรมจาวาประกอบด้วย คลาส ภายในคลาสมีเมธอด แต่ละเมธอดมีคาสั่ง
    เมธอด main() เป็นเมธอดที่จะถูกเรียกให้ทางานตอนรันโปรแกรม
    Syntax error เกิดในขณะคอมไพล์จากข้อผิดพลาดจากการเขียนโปรแกรมผิด syntax
    Logic error เกิดขณะรันจากการที่โปรแกรมทางานได้ไม่ตรงกับที่ต้องการหรือรันไม่ได้




Object-Oriented Programming 2/2551                                          35

1.Introduction to java

  • 1.
    140-140 Object-Oriented Programming การโปรแกรมเชิงวัตถุ 1. Introduction to Java Faculty of Technology and Environment Prince of Songkla University, Phuket Campus 2/2551
  • 2.
    Objectives  วัตถุประสงค์  เข้าใจความแตกต่างของ Structure Programming กับ OOP  รู้จักเทคโนโลยีจาวา  เข้าใจขั้นตอนการพัฒนาโปรแกรมด้วยภาษาจาวา  เข้าใจโครงสร้างโปรแกรมภาษาจาวา  เขียน คอมไพล์ และรันโปรแกรมจาวาง่าย ๆ ได้  รู้จักข้อผิดพลาดในการเขียนโปรแกรม  อธิบายข้อดีของภาษาจาวาได้ Object-Oriented Programming 2/2551 2
  • 3.
    Contents  Structureprogramming VS Object-oriented programming  Java programming language  Java platform  Java Development Kit  Basic Java application  How to compile and run program?  Type of error Object-Oriented Programming 2/2551 3
  • 4.
    Structure Programming VSOOP  Structure programming - การโปรแกรมเชิงโครงสร้าง  เขียนโปรแกรมโดยแตกระบบงานออกเป็นหน้าที่งานต่าง ๆ (function)  การแก้ไขหรือข้อผิดพลาดอาจส่งผลกระทบต่อส่วนอื่น เพราะมีการใช้ข้อมูล บางอย่างร่วมกัน  ตัวอย่างภาษาโปรแกรมเชิงโครงสร้าง ได้แก่ ภาษาซี ปาสคาล  Object-oriented programming - การโปรแกรมเชิงวัตถุ  เขียนโปรแกรมโดยแตกระบบออกเป็นวัตถุ โดยแทนวัตถุที่มีอยู่จริง  วัตถุจะถูกกาหนดให้มีคุณสมบัติและพฤติกรรมเพื่อดาเนินงานต่างๆ  ตัวอย่างภาษา OOP เช่น ภาษาจาวา C# Object-Oriented Programming 2/2551 4
  • 5.
    Structure Programming VSOOP ตัวอย่าง การแตกระบบลงทะเบียน  Structure Programming ข้อมูลที่สนใจ -รหัสนักศึกษา  ลงทะเบียนเรียน - ชื่อ สกุล  ชาระเงิน -สาขาวิชา  เพิ่มรายวิชา  OOP พฤติกรรมในระบบ  นักศึกษา - ลงทะเบียน  ใบลงทะเบียน - เพิ่มวิชา -ชาระเงิน  รายวิชา  ใบเสร็จรับเงิน Object-Oriented Programming 2/2551 5
  • 6.
    Structure Programming VSOOP  OOP Benefits  การวิเคราะห์ปัญหาใกล้เคียงกับการคิดของคนทั่วไป  การแบ่งระบบเป็นวัตถุ ทาให้เป็นข้อมูลมีความเป็นอิสระ  การ reuse ทาได้ง่ายกว่า Structure Programming พัฒนาโปรแกรมได้เร็ว  แก้ไขและบารุงรักษาระบบได้ง่าย Object-Oriented Programming 2/2551 6
  • 7.
    Java Programming Language  Programming languages คือ ภาษาที่ใช้ในการเขียนโปรแกรม  โปรแกรมที่เขียนขึ้นสามารถนามาใช้งานได้ในคอมพิวเตอร์  ภาษาจาวา เป็นภาษาการเขียนโปรแกรมระดับสูง  พัฒนาโดยบริษัท Sun Microsystems (www.sun.com)  เวอร์ชั่นแรกเริ่มใช้ในปี ค.ศ. 1996  ปัจจุบันเวอร์ชั่น 6 ต้องถูกแปลให้เป็นภาษาเครื่องก่อน จึงจะสามารถประมวลผลหรือทางานได้ Object-Oriented Programming 2/2551 7
  • 8.
    Java Platform  Platform - hardware or software environment in which a program runs  เป็นสภาพแวดล้อมหรือระบบที่โปรแกรมอาศัยทางาน  อาจรวมทั้งฮาร์ดแวร์และซอฟต์แวร์ เช่น • Wintel platform หมายถึง คอมพิวเตอร์ที่ใช้ CPU Intel และ OS Windows  อาจหมายถึงซอฟต์แวร์อย่างเดียว เช่น • ระบบปฏิบัติการ Windows, Linux, Unix, Mac OS • โปรแกรมที่เป็นสภาวะแวดล้อมในการพัฒนาซอฟต์แวร์อื่น ๆ (Integrated Development Environment : IDE) เช่น VB.Net, Eclipse, NetBean Object-Oriented Programming 2/2551 8
  • 9.
    Java Platform Java platform เป็นแพลตฟอร์มที่เป็นซอฟต์แวร์ ซึ่งสามารถรันโปรแกรม จาวา  Java Development Kit (JDK) คือ ชุดพัฒนาโปรแกรมภาษาจาวา สามารถ download ได้ที่ http://java.sun.com  JDK ประกอบด้วย Java  ตัวแปลภาษาจาวา (Java compiler) Compiler JDK  สภาพแวดล้อมสาหรับรันโปรแกรมจาวา JRE (Java Runtime Environment หรือ JRE) API • JVM (Java Virtual Machine) JVM • Java API (Library) Object-Oriented Programming 2/2551 9
  • 10.
  • 11.
    Edition of Java Java platform แบ่งเป็น 3 ประเภทตามการใช้งาน ดังนี้  Java Standard Edition (Java SE) สาหรับเขียนโปรแกรมทั่วไปและโปรแกรม ที่ทางานบนเว็บบราวเซอร์ทเี่ รียกว่า applet  Java Enterprise Edition (Java EE) สาหรับเขียนโปรแกรมระดับองค์กร โดย เพิ่มความสามารถจาก Java SE เพื่อรองรับการทางานสาหรับการให้บริการใน ระบบขนาดใหญ่ได้  Java Micro Edition (Java ME) เป็น platform สาหรับเขียนโปรแกรมบน อุปกรณ์อิเล็กทรอนิกส์เช่น โทรศัพท์มือถือ PDA Object-Oriented Programming 2/2551 11
  • 12.
    From source codeto running program Class files Running Editor Source file Compiler Interpretor Program Library files Object-Oriented Programming 2/2551 12
  • 13.
    Java Compiler  Compiler เป็นโปรแกรมทีใช้แปลภาษาระดับสูงเป็นภาษาเครื่องซึ่งเป็น ่ ชุดคาสั่งที่ CPU สามารถนาไปประมวลผลได้  Java Compiler คือ ตัวแปลภาษาจาวา ทาหน้าที่แปลรหัสคาสั่งภาษาจาวา (source code) ให้เป็นชุดคาสั่งที่เรียกว่า bytecode Source code  compiled by  Bytecode (file.java) Java compiler (file.class) (javac.exe) Object-Oriented Programming 2/2551 13
  • 14.
    Write once, runanywhere (WORA)  ปกติโปรแกรมภาษาอื่น ๆ เช่น ภาษาซี เมื่อถูกแปลจากเครื่องหนึ่งไม่ สามารถนาไปใช้งานกับเครื่องที่ใช้ภาษาเครืองต่างกันได้ ่ (เครื่องที่มี CPU ต่างยี่ห้อกัน หรือใช้ระบบปฏิบติการต่างกัน) ั  bytecode ทาให้จาวาเป็นภาษาทีไม่ขึ้นกับระบบปฏิบติการ (platform- ่ ั independent)  โปรแกรมที่เขียนด้วยภาษาจาวาสามารถนาไปประมวลผลบนระบบปฏิบัติการที่ กันได้ เช่น Windows, Linux, Unix หรือใช้ CPU ต่างกัน เช่น Intel, AMD Object-Oriented Programming 2/2551 Bytecode (file.class) 14
  • 15.
    Java Runtime Environment(JRE)  Java Runtime Environment เป็นโปรแกรมที่ใช้ประมวลผล bytecode ประกอบด้วย  Java Virtual Machine (JVM) หรือ โปรแกรมเครื่องจักรเสมือนจาวาสาหรับ ประมวลผล Bytecode ทาหน้าที่เป็น interpreter แปลไบต์โค้ดเป็นภาษาเครื่อง สาหรับระบบปฎิบัติการนั้น  Library files (Java API-Application Programming Interface) คือ คลาสหลัก ของภาษาจาวา Bytecode  interpreted by JRE  Program (file.class) (java.exe) Library Files Object-Oriented Programming 2/2551 15
  • 16.
    Java Runtime Environment(JRE)  เครื่องคอมพิวเตอร์ที่ติดตั้ง JRE ไว้จะสามารถรันโปรแกรมที่เขียนด้วย ภาษาจาวาได้  bytecode ทาหน้าที่เสมือนเป็นภาษาเครื่องสาหรับ JVM ทาให้สามารถนา bytecode ไปใช้งานในเครื่องที่มีการติดตั้ง JVM Object-Oriented Programming 2/2551 16
  • 17.
    Java Version  Toolkit product version – Developer version  JDK 1- Java 1.1 (1996)  SDK 2 - Java 1.2-1.4 (2000)  SDK 5 - Java 1.5 (2004)  SDK 6 - Java 1.6 JDK = Java Development Kit เป็นชุดพัฒนาโปรแกรมจาวา Object-Oriented Programming 2/2551 17
  • 18.
    Basic Java Application  JDK ประกอบด้วย Java Compiler และ Java Runtime Enviroment แต่ไม่มีโปรแกรมสาหรับเขียน java source code  สามารถเขียนโปรแกรมจาวาได้โดยใช้ Text editor เช่น Notepad, EditPlus  หรือใช้โปรแกรมที่มีเครื่องมืออานวยความสะดวกในการเขียนโปรแกรม ซึ่งเรียกว่า Integrated Development Environment(IDE) เช่น NetBeans และ Eclipse เป็นต้น Object-Oriented Programming 2/2551 18
  • 19.
    Basic Java Application  องค์ประกอบหลักของโปรแกรมจาวา  Class คือ ชิ้นส่วนของโปรแกรมที่เล็กที่สุดของภาษาจาวา  แต่ละชิ้นส่วนสามารถนามาประกอบกันเพื่อสร้างเป็นโปรแกรมขนาดใหญ่ๆ ได้  แต่ละคลาสประกอบด้วย method ซึ่งเป็นชุดของการดาเนินงาน  แต่ละเมธอด ประกอบด้วยคาสั่งในการดาเนินงานต่าง ๆ (statement) Class Method1 Statement; Method2 Statement; Statement; Object-Oriented Programming 2/2551 19
  • 20.
    Ex. 1 Javaapplication HelloWorld คาที่บอกว่าเป็นคลาส ชื่อคลาส comments ไม่มี return type ชื่อเมธอด class method คาสั่งให้แสดงผลไปยังจอภาพ ข้อความที่แสดง statement Object-Oriented Programming 2/2551 20
  • 21.
    Java Comment  บรรทัดที่ 1,2 – เรียกว่า comments  เป็นคาอธิบายโปรแกรม ไม่ถูกคอมไพล์เป็น bytecode ด้วย java compiler  รูปแบบการเขียน comment  บรรทัดเดียว ให้ใช้เครื่องหมาย // นาหน้า //……your comment……..  หลายบรรทัด จะอยู่ภายในเครืองหมาย /*…………..*/ ่ /*…………your comment ……………………………………..….*/ Object-Oriented Programming 2/2551 21
  • 22.
    Ex.1 Java applicationHelloWorld  บรรทัดที่ 4 - ประกาศคลาส  คาว่า class เป็นเหมือนตัวบอกถึงชิ้นส่วนของโปรแกรม  รายละเอียดในแต่ละคลาสจะอยู่ภายในวงเล็บปีกกา class {………..}  ภายในคลาสประกอบด้วยเมธอดได้หลายเมธอด  คาว่า public ระบุให้คลาสอื่นทุกคลาสเรียกใช้งานคลาสนี้ได้  HelloWord เป็นชื่อคลาส Object-Oriented Programming 2/2551 22
  • 23.
    Ex. 1 Javaapplication HelloWorld  บรรทัดที่ 6 - method signature  main เป็นชื่อ method ในจาวา main() จะเป็นเมธอดแรกที่ถูกเรียกให้ทางาน  แต่ละเมธอด มีคาสั่งอยู่ภายในวงเล็บปีกกา {………..}  บรรทัดที่ 8 - statement  เป็นคาสั่งในการพิมพ์ข้อความออกทางจอภาพ  ในโปรแกรมมีได้หลายคาสั่ง แต่ละคาสั่งต้องจบด้วยเครื่องหมาย semicolon ; Object-Oriented Programming 2/2551 23
  • 24.
    Compile and Runprogram  การ compile โปรแกรม  เปิด command prompt และย้าย prompt ไปที่ folder ที่จัดเก็บโปรแกรม  ทาการคอมไพล์โดยพิมพ์คาสั่ง javac HelloWorld.java  การรันโปรแกรม  พิมพ์คาสั่ง java HelloWorld ผลลัพธ์ Object-Oriented Programming 2/2551 24
  • 25.
    Class with amain method  ในจาวา ทางานด้วย class – การรันโปรแกรมคือ การรันคลาส  การรันโปรแกรม เป็นการบอกให้ JVM ให้โหลดคลาส Hello ขึ้นมา  จากนั้นทางานใน method main() ซึ่งจะทางานจนหมดคาสั่งใน main() Object-Oriented Programming 2/2551 25
  • 26.
    Syntax Errors  Syntax error หรือ Compile-time error  Syntax error คือข้อผิดพลาดจากการฝ่าฝืนกฏหรือไวยากรณ์ของภาษา  การตรวจสอบไวยากรณ์ว่าถูกต้องหรือไม่ จะเกิดขึ้นขณะคอมไพล์โปรแกรมโดย คอมไพเลอร์  หากเราเขียนไม่ถูกต้อง คอมไพเลอร์จะแจ้งข้อผิดพลาดให้ทราบ และไม่สร้าง bytecode ให้  เช่น จบคาสั่งโดยไม่มีเครื่องหมาย ; หรือ ใส่วงเล็บปีกกาไม่ครบ เป็นต้น ระวัง ตัวอักษรตัวใหญ่และตัวเล็กในภาษาจาวา ถือว่าเป็นคนละตัวกัน Object-Oriented Programming 2/2551 26
  • 27.
    Syntax Errors Compile….. Object-Oriented Programming 2/2551 27
  • 28.
    Syntax Errors Compile….. Object-Oriented Programming 2/2551 28
  • 29.
    Syntax Errors Compile….. Object-Oriented Programming 2/2551 29
  • 30.
    Syntax Errors Compile….. Object-Oriented Programming 2/2551 30
  • 31.
    Logic Errors  Logic error หรือ Run-time error  Logic error คือข้อผิดพลาดจากการที่โปรแกรมทางานไม่ตรงกับที่เราต้องการ  โปรแกรมที่เขียนขึ้นถูกต้องตามหลักไวยากรณ์ของภาษาจาวา สามารถคอมไพล์ ได้  อาจสามารถรันโปรแกรมได้แต่ทางานได้ไม่ตรงกับที่เราคิดไว้ หรือทางานไม่ได้  Programmer ต้องตรวจสอบข้อผิดพลาดนี้เอง ตัวอย่างเช่น • ไม่ใส่วงเล็บในการคานวณ • ลาดับคาสั่งผิด Object-Oriented Programming 2/2551 31
  • 32.
    Logic Errors Compile…..Run…..  Exception คือ ข้อผิดพลาด Object-Oriented Programming 2/2551 32
  • 33.
    Logic Errors Compile…..Run….. -5  ต้องการให้ทาการคานวณตามลาดับคือ (10-3)*5 = 35  แต่โปรแกรมคานวณให้คือ 10-(3x5) = -5 Object-Oriented Programming 2/2551 33
  • 34.
    ข้อดีของภาษาจาวา  Write once, run anywhere  Code security มีกลไกการตรวจสอบไบต์โค้ด (ฺBytecode verifier) ว่าต้องเป็นโค้ดที่ ไม่ทาให้ระบบเสียหาย  Exception มีกลไกให้โปรแกรมเมอร์จัดการข้อผิดพลาดที่เกิดขึ้นในการรัน โปรแกรม  มี Garbage collection เป็นกลไกจัดการคืนพื้นที่ในหน่วยความจาอัตโนมัติ โปรแกรมเมอร์ไม่ต้องจัดการเอง  มี library ให้ใช้มากมาย – database storage, cryptography, networking, GUI  สนับสนุน OOP  Free !!! Object-Oriented Programming 2/2551 34
  • 35.
    Summary  Structure programming เน้นการแตกระบบเป็นฟังก์ชั่นการทางาน OOP เน้นการแตก ระบบเป็นวัตถุในระบบ  Java Compiler แปลโปรแกรมที่เขียนด้วยภาษาระดับสูงเป็นภาษาเครื่องสาหรับ JVM เรียกว่า bytecode  โครงสร้างโปรแกรมจาวาประกอบด้วย คลาส ภายในคลาสมีเมธอด แต่ละเมธอดมีคาสั่ง  เมธอด main() เป็นเมธอดที่จะถูกเรียกให้ทางานตอนรันโปรแกรม  Syntax error เกิดในขณะคอมไพล์จากข้อผิดพลาดจากการเขียนโปรแกรมผิด syntax  Logic error เกิดขณะรันจากการที่โปรแกรมทางานได้ไม่ตรงกับที่ต้องการหรือรันไม่ได้ Object-Oriented Programming 2/2551 35