SlideShare a Scribd company logo
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

More Related Content

PDF
8.Inheritance
PDF
3.Expression
PDF
5.Methods cs
PDF
4.Oop
PDF
2.Java fundamentals
PDF
6.Flow control
PDF
Java-Chapter 01 Introduction to Java Programming
PPT
Java intro
8.Inheritance
3.Expression
5.Methods cs
4.Oop
2.Java fundamentals
6.Flow control
Java-Chapter 01 Introduction to Java Programming
Java intro

What's hot (19)

PDF
Java-Chapter 12 Classes and Objects
PDF
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
PPT
Java Programming [4/12] : Object Oriented Concept
PDF
ความรู้เบื้องต้นภาษาจาวา
PDF
Java-Answer Chapter 12-13 (For Print)
PDF
Java-Chapter 06 File Operations
PDF
พื้นฐานภาษาจาวา
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
PDF
Java-Answer Chapter 12-13
PDF
Java-Answer Chapter 05-06 (For Print)
PDF
พื้นฐานภาษาจาวา
PDF
Java-Answer Chapter 05-06
PPTX
Computer Programming 4
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
PPTX
คลาสและการเขียนโปรแกรมเชิงวัตถุ
PDF
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
PDF
Java Programming: โครงสร้างควบคุม
Java-Chapter 12 Classes and Objects
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
Java Programming [4/12] : Object Oriented Concept
ความรู้เบื้องต้นภาษาจาวา
Java-Answer Chapter 12-13 (For Print)
Java-Chapter 06 File Operations
พื้นฐานภาษาจาวา
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Java-Answer Chapter 12-13
Java-Answer Chapter 05-06 (For Print)
พื้นฐานภาษาจาวา
Java-Answer Chapter 05-06
Computer Programming 4
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุ
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: โครงสร้างควบคุม
Ad

Similar to 1.Introduction to java (20)

PPT
Java Programming [1/12] : Introduction
PPT
Gnewvb01 090401013958-phpapp01
PPT
Lesson1 programing concept
PDF
Eclipse
PDF
Javacentrix com chap04-0
PPTX
ภาษาJava
PDF
Unit 2 Java Programming
PDF
Java Development Tools
PPTX
Netbeans and Android Appliation
PPT
vb.net
DOCX
PDF
Software
 
PPTX
Powerpoint บทที่ 1
PDF
PDF
การเขียนโปรแกรมโดยใช้ Netbeans
PPT
การพัฒนาซอฟแวร์
PPT
Activity 4
PPT
พื้นฐานภาษาจาวา
Java Programming [1/12] : Introduction
Gnewvb01 090401013958-phpapp01
Lesson1 programing concept
Eclipse
Javacentrix com chap04-0
ภาษาJava
Unit 2 Java Programming
Java Development Tools
Netbeans and Android Appliation
vb.net
Software
 
Powerpoint บทที่ 1
การเขียนโปรแกรมโดยใช้ Netbeans
การพัฒนาซอฟแวร์
Activity 4
พื้นฐานภาษาจาวา
Ad

More from UsableLabs (20)

PDF
Vocabulary for portal
PDF
การจัดการความรู้
PDF
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
PDF
อาหารและโภชนาการ เรื่อง สารกันบูด
PDF
ส่งยิ้ม ส่งรัก รับปีใหม่
PDF
30 web (blog2book)
PDF
ภาพสวยๆ จากคนรักมวลเมฆ
PDF
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
PDF
สร้างเว็บไซต์โดยใช้หลัก Usability
PDF
แนะนำวิธีการจดทะเบียนโดเมน
PDF
Health
PDF
Money
PDF
correct_Portal manual
PDF
PDF
PDF
เทคโนโลยีและนวัตกรรมการศึกษา
PDF
Portal profile
PDF
Card sorting
PDF
King's birthday
DOC
Portal manual (Original)
Vocabulary for portal
การจัดการความรู้
การส่งเสริมการขายที่มุ่งสู่ผู้บริโภค
อาหารและโภชนาการ เรื่อง สารกันบูด
ส่งยิ้ม ส่งรัก รับปีใหม่
30 web (blog2book)
ภาพสวยๆ จากคนรักมวลเมฆ
10 ข้อผิดพลาดเกี่ยวกับ usability ที่ไม่ควรทำ
สร้างเว็บไซต์โดยใช้หลัก Usability
แนะนำวิธีการจดทะเบียนโดเมน
Health
Money
correct_Portal manual
เทคโนโลยีและนวัตกรรมการศึกษา
Portal profile
Card sorting
King's birthday
Portal manual (Original)

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  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
  • 4. Structure Programming VS OOP  Structure programming - การโปรแกรมเชิงโครงสร้าง  เขียนโปรแกรมโดยแตกระบบงานออกเป็นหน้าที่งานต่าง ๆ (function)  การแก้ไขหรือข้อผิดพลาดอาจส่งผลกระทบต่อส่วนอื่น เพราะมีการใช้ข้อมูล บางอย่างร่วมกัน  ตัวอย่างภาษาโปรแกรมเชิงโครงสร้าง ได้แก่ ภาษาซี ปาสคาล  Object-oriented programming - การโปรแกรมเชิงวัตถุ  เขียนโปรแกรมโดยแตกระบบออกเป็นวัตถุ โดยแทนวัตถุที่มีอยู่จริง  วัตถุจะถูกกาหนดให้มีคุณสมบัติและพฤติกรรมเพื่อดาเนินงานต่างๆ  ตัวอย่างภาษา OOP เช่น ภาษาจาวา C# Object-Oriented Programming 2/2551 4
  • 5. Structure Programming VS OOP ตัวอย่าง การแตกระบบลงทะเบียน  Structure Programming ข้อมูลที่สนใจ -รหัสนักศึกษา  ลงทะเบียนเรียน - ชื่อ สกุล  ชาระเงิน -สาขาวิชา  เพิ่มรายวิชา  OOP พฤติกรรมในระบบ  นักศึกษา - ลงทะเบียน  ใบลงทะเบียน - เพิ่มวิชา -ชาระเงิน  รายวิชา  ใบเสร็จรับเงิน Object-Oriented Programming 2/2551 5
  • 6. Structure Programming VS OOP  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
  • 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 code to 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, run anywhere (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 Java application 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 application HelloWorld  บรรทัดที่ 4 - ประกาศคลาส  คาว่า class เป็นเหมือนตัวบอกถึงชิ้นส่วนของโปรแกรม  รายละเอียดในแต่ละคลาสจะอยู่ภายในวงเล็บปีกกา class {………..}  ภายในคลาสประกอบด้วยเมธอดได้หลายเมธอด  คาว่า public ระบุให้คลาสอื่นทุกคลาสเรียกใช้งานคลาสนี้ได้  HelloWord เป็นชื่อคลาส Object-Oriented Programming 2/2551 22
  • 23. Ex. 1 Java application HelloWorld  บรรทัดที่ 6 - method signature  main เป็นชื่อ method ในจาวา main() จะเป็นเมธอดแรกที่ถูกเรียกให้ทางาน  แต่ละเมธอด มีคาสั่งอยู่ภายในวงเล็บปีกกา {………..}  บรรทัดที่ 8 - statement  เป็นคาสั่งในการพิมพ์ข้อความออกทางจอภาพ  ในโปรแกรมมีได้หลายคาสั่ง แต่ละคาสั่งต้องจบด้วยเครื่องหมาย semicolon ; Object-Oriented Programming 2/2551 23
  • 24. Compile and Run program  การ compile โปรแกรม  เปิด command prompt และย้าย prompt ไปที่ folder ที่จัดเก็บโปรแกรม  ทาการคอมไพล์โดยพิมพ์คาสั่ง javac HelloWorld.java  การรันโปรแกรม  พิมพ์คาสั่ง java HelloWorld ผลลัพธ์ Object-Oriented Programming 2/2551 24
  • 25. Class with a main 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