SlideShare una empresa de Scribd logo
1 de 40
บทที่ 1
ความรู้เ บื้อ งต้น ของภาษา
            จาวา
 (Introduction to Java
    Programming)

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

 อธิบ ายหลัก การของ
                   Java Virtual Machine
 (JVM) และ Java Platform
 แนะนำา ซอฟต์แ วร์ท ใ ช้ใ นการพัฒ นา โปรแกรม
                     ี่
 ภาษาจาวา
 แนะนำา จุด เด่น ของภาษา

 อธิบ ายและแสดงตัว อย่า งของโปรแกรมจาวา
 ประยุก ต์แ ละ โปรแกรมจาวา       แอปเพล็ต
ภาษา เชิง กระบวนการ และภาษา
            เชิง ออปเจ็ค
 ภาษาเชิง กระบวนการ
  • โปรแกรมจะแบ่ง ออกเป็น ส่ว นย่อ ยๆที่เ รีย กว่า โมดูล
    (module)
  • แต่ล ะโมดูล จะต้อ งเป็น อิส ระต่อ กัน
  • การออกแบบให้แ ต่ล ะโมดูล มีค วามเป็น อิส ระต่อ กัน นั้น
    ทำา ได้ย าก
  • ต้น ทุน ในการพัฒ นาโปรแกรมสูง

 ภาษาเชิง ออปเจ็ค
  • การพัฒ นาโปรแกรมเป็น การเลีย นแบบการทำา งานเชิง
    ออปเจ็ค
  • สามารถนำา โปรแกรมกลับ มาใช้ใ หม่ (reuse) ได้ด ีก ว่า
    ภาษาเชิง กระบวนการ
โปรแกรมเชิง ออปเจ็ค
 วิเ คราะห์ป ัญ หาโดยมองปัญ หาว่า ประกอบไปด้ว ย
 ออปเจ็ค ต่า งๆ
 จำา ลองคุณ ลัก ษณะและพฤติก รรมของออปเจ็ค

 ออปเจ็ค จะส่ง ข้อ มูล กัน โดยผ่า นข่า วสาร
 (Message)
 แตกต่า งจากภาษาเชิง กระบวนการทีว ิเ คราะห์
                                 ่
 ปัญ หาโดยพิจ ารณาจากลำา ดับ การทำา งานและ แบ่ง
 การทำา งานของโปรแกรมตามฟัง ก์ช ัน ต่า งๆ
ระบบทะเบีย นนัก ศึก ษา
 วิธ ีก ารเชิง              วิธ ีแ บบเชิง ออปเจ็ค
  กระบวนการ                    •   นัก ศึก ษา
   •   ลงทะเบีย นรายวิช า      •   ใบลงทะเบีย น
   •   ชำา ระเงิน              •   รายชื่อ รายวิช า
   •   เพิ่ม วิช า
ออปเจ็ค ชนิด นัก ศึก ษา
 คุณ ลัก ษณะ
  • ชื่อ
  • รหัส นัก ศึก ษา
  • เกรดเฉลี่ย

 พฤติก รรม
  • ลงทะเบีย น
  • เพิ่ม หรือ ถอนวิช า
ข้อ ดีข องการพัฒ นาโปรแกรมเชิง
              ออปเจ็ค
 แนวคิด การวิเ คราะห์ป ัญ หาใกล้เ คีย งกับ ธรรมชาติ
 ของมนุษ ย์
 ระบบจริง    (real life) แบ่ง ตามออปเจ็ค ไม่ไ ด้ข ึ้น
 อยูก ับ ฟัง ก์ช ั่ น การทำา งาน
    ่               ่
 ขบวนการพัฒ นาโปรแกรมทำา ได้ร วดเร็ว ขึน
                                        ้
 ง่า ยต่อ การพัฒ นาและแก้ไ ข

 นำา โปรแกรมกลับ มาใช้ใ หม่ไ ด้ง ่า ย
ประวัต ิข องภาษาจาวา
 พัฒ นาขึ้น โดยทีม วิจ ย ของบริษ ัท ซัน ไมโครซิส เต็ม
                        ั
  ส์ (Sun Microsystems)
 พัฒ นามาจากโครงการทีต ้อ งการพัฒ นาระบบ
                      ่
  ซอฟต์แ วร์เ พือ ควบคุม เครื่อ งใช้ไ ฟฟ้า ขนาดเล็ก
                ่
  ภายในบ้า น
 ชื่อ เดิม คือ ภาษา   Oak ต่อ มาเปลี่ย นชื่อ เป็น ภาษา
  จาวา
 ภาษาจาวาเริ่ม เป็น ทีน ย มแพร่ห ลายในปี
                       ่ ิ                      ค .ศ.
  1995
 ภาษาจาวาเป็น ภาษาทีไ ม่ข ึ้น กับ แพลตฟอร์ม
                     ่
  (platform independent)
องค์ป ระกอบของเทคโนโลยีจ าวา
 JVM    (Java Virtual Machine)
  • ทำา หน้า ที่เ ป็น อิน เตอร์พ รีต เตอร์


 JRE   (Java Runtime Environment)
  • ใช้ใ นการรัน โปรแกรม


 J2SDK    (Java 2 Software Development Kit)
  • เป็น ชุด พัฒ นาโปรแกรมภาษาจาวา
JVM
 จาวาเทคโนโลยีใ ช้ท ง คอมไพเลอร์แ ละอิน เตอร์
                     ั้
 พรีต เตอร์ ในการคอมไพล์แ ละรัน โปรแกรม
 โปรแกรมภาษาจาวามีซ อร์ด โค้ด เป็น.java และ
 จะแปลเป็น โปรแกรม ไบท์โ ค้ด (byte code) ทีเ ป็น
                                           ่
 .class
 โปรแกรมไบท์โ ค้ด จะรัน บน ระบบ คอมพิว เตอร์
 โดยใช้ JVM (Java Virtual Machine) ทีเ ป็น อิน ่
 เตอร์พ รีต เตอร์ ซึ่ง จะแปลโปรแกรมไบท์โ ค้ด ให้
 เป็น ภาษาเครื่อ งทีข ึ้น อยูก ับ แพลตฟอร์ม นั้น
                      ่      ่
JVM
 เครื่อ งคอมพิว เตอร์ท จ ะสามารถรัน โปรแกรมไบท์
                        ี่
  โค้ด ได้จ ะต้อ งมี JVM อยู่
 JVM   อาจเป็น ซอฟต์แ วร์ห รือ ฮาร์ด แวร์
 ในปัจ จุบ ัน   JVM มีอ ยู่ใ น
   • ระบบปฏิบ ัต ิก ารคอมพิว เตอร์ต ่า งๆ
   • โปรแกรมเว็บ บราวเซอร์
   • เครื่อ งใช้ไ ฟฟ้า ต่า งๆ
   • โทรศัพ ท์
   • เครื่อ งมือ สื่อ สาร
   • สมาร์ท การ์ด
ขั้น ตอนการทำา งานของโปรแกรม
          ภาษาจาวา
JRE
 JRE  จะรัน โค้ด ทีแ ปลมาจาก JVM โดยจะทำา งาน 3
                    ่
 ขั้น ตอน คือ
  • โหลดไบท์โ ค้ด โดยใช้ Class Loader
  • ตรวจสอบไบท์โ ค้ด โดยใช้ Byte Code Verifier
  • รัน ไบท์โ ค้ด โดยใช้ Runtime Interpreter
ขั้น ตอนการทำา งานของ JRE
J2SDK
 Java   2 SDK (Software Development Kit)
 เดิม ชื่อ
         JDK แต่ต ่อ มาเปลี่ย นชื่อ เป็น Java 2 ตั้ง แต่
  JDK 1.2
 โปรแกรม     Java 2 SDK
   • javac.exe   : โปรแกรมคอมไพเลอร์
   • java.exe    : โปรแกรมอิน เตอร์พ รีต เตอร์ (JVM)
 Java   2 SDK ไม่ม โ ปรแกรมอิด ีเ ตอร์
                    ี
Java IDE และ Java Editor
 Java   IDE
  • Netbeans    ของบริษ ัท Sun Microsystems (
    http://www.netbeans.org)
  • Eclipse ของบริษ ัท IBM (http://eclipse.org)
  • JBuilder ของบริษ ัท Borland (
    http://www.borland.com/jbuilder)
  • JDeveloper ของบริษ ัท Oracle (http://
    www.oracle.com)
  • intelliJ IDEA ของบริษ ัท JetBrains (
    http://www.jetbrains.com/idea)
 Java   Editor
  • EditPlus ของบริษ ัท ES-Computing (http://
    www.editplus.com)
  • JCreator ของบริษ ัท Xinox Software (
จุด เด่น ของภาษาจาวา
 ความง่า ย   (simple)
 ภาษาเชิง ออปเจ็ค       (object oriented)
 การกระจาย      (distributed)
 การป้อ งกัน การผิด พลาด         (robust)
 ความปลอดภัย          (secure)
 สถาปัต ยกรรมกลาง         (architecture neutral)
 เคลื่อ นย้า ยง่า ย   (portable)
จุด เด่น ของภาษาจาวา
 อิน เตอร์พ รีต   (interpreted)
 ประสิท ธิภ าพสูง   (high performance)
 มัล ติเ ธรด   (multithreaded)
 พลวัต   (dynamic)
Java Platform
 แพลตฟอร์ม ก็ค ือ
                 ฮาร์ด แวร์แ ละ software
 environment ทีจ ะใช้ใ นการรัน โปรแกรม
               ่
 แพลตฟอร์ม ของภาษาจาวาประกอบด้ว ย
  • Java   Virtual Machine
  • Java   Application Programming Interface (Java
    API)
Java Platform
 บริษ ัท ซัน ไมโครซิส เต็ม ส์ไ ด้ก ำา หนดแพลตฟอร์ม
 ของ Java 2 ไว้ส ามรูป แบบคือ
   • Java   2 Platform, Standard Edition (Java SE)
   • Java   2 Platform, Enterprise Edition (Java EE)
   • Java   2 Platform, Micro Edition (Java ME)
JavaTM 2 Platform
                           Java Platform Micro Edition
                                    (Java ME)


 Optional
 Packages

                Optional
               Packages


                             Personal     Personal
  Java         Java           Basis
                                           Profile
                              Profile
Enterprise   Standard
                                 Foundation          MIDP
 Edition      Edition              Profile
(Java EE)    (Java SE)                                       Java
                                        CDC          CLDC    Card

                       JVM                           KVM    Card VM
Java SE
Java EE
Java ME
โปรแกรมจาวา
 โปรแกรมจาวาประยุก ต์      (Java Application)
  • โปรแกรมใช้ง านทั่ว ไป
  • โปรแกรมทำา งานภายใต้จ าวาอิน เตอร์พ รีต เตอร์
  • โปรแกรมแบบ Standalone

 โปรแกรมจาวาแอปเพล็ต        (Java Applet)
  • โปรแกรมที่ท ำา งานภายใต้โ ปรแกรมเวบ บราวเซอร์ที่ม ี
   JVM
การสร้า งโปรแกรมจาวาประยุก ต์
 เขีย นซอร์ด โค้ด       HelloWorld.java
 คอมไพล์โ ปรแกรม

    javac HelloWorld.java

    →     HelloWorld.class

 รัน โปรแกรม

    java HelloWorld
HelloWorld.java

public class HelloWorld {
 public class HelloWorld {
    public static void main(String args[]) {
     public static void main(String args[]) {
         System.out.println("Hello World");
          System.out.println("Hello World");
    }}
}}
ตัว อย่า งการใช้ Java IDE
รูป แสดงขั้น ตอนการทำา งาน
การสร้า งโปรแกรมจาวาแอปเพล็ต
 โปรแกรมจาวาแอปเพล็ต จะมีไ ฟล์ท เ ขีย นขึ้น สอง
                                 ี่
 ไฟล์ค ือ
  • โปรแกรมซอร์ด โค้ด (.java)
  • โปรแกรมเว็บ เพจ (.html)

 ขั้น ตอนการทำา งาน
  • เขีย นโปรแกรมซอร์ด โค้ด  HelloWorldApplet.java
  • คอมไพล์โ ปรแกรม  HelloWorldApplet.class
  • ใช้โ ปรแกรมเว็บ บราวเซอร์ใ ดๆเปิด โปรแกรม
    HelloWorld.html
HelloWorldApplet.java

import java.awt.*;
 import java.awt.*;
import java.applet.*;
 import java.applet.*;

public class HelloWorldApplet extends Applet {
 public class HelloWorldApplet extends Applet {
    public void paint(Graphics g) {
     public void paint(Graphics g) {
          g.drawString("Hello World",20,20);
           g.drawString("Hello World",20,20);
     }}
}}
HelloWorld.html


<HTML>
 <HTML>
    <HEAD>
     <HEAD>
         <TITLE>HelloWorld Example</TITLE>
          <TITLE>HelloWorld Example</TITLE>
   </HEAD>
    </HEAD>
   <BODY>
    <BODY>
         <APPLET CODE="HelloWorldApplet.class"
          <APPLET CODE="HelloWorldApplet.class"
                 WIDTH="300" HEIGHT="300">
                  WIDTH="300" HEIGHT="300">
         </APPLET>
          </APPLET>
    </BODY>
     </BODY>
</HTML>
 </HTML>
รูป แสดงขั้น ตอนการทำา งาน
ตัว อย่า งการรัน โปรแกรมบนเว็บ
            บราวเซอร์
Java API Documentation
 เอกสารในรูป แบบของ     HTML ทีอ ธิบ ายข้อ มูล
                                ่
  เกีย วกับ API (Application Programming
     ่
  Interface) ของภาษาจาวา
 สามารถทีจ ะ
          ่   download ได้จ าก
  http://java.sun.com
 เรีย กดู
         online ได้ท ี่
  http://java.sun.com/j2se/1.5.0/docs/api
คู่ม ือ Java API
 Java  API เป็น ข้อ กำา หนดทีว ่า ด้ว ยคลาสและ
                               ่
  อิน เตอร์เ ฟสต่า งๆทีก ำา หนดไว้ใ นแพคเก็จ มาตรา
                        ่
  ฐานของภาษาจาวา
 คู่ม อ
       ื
      Java API จะแสดงรายละเอีย ดต่า งๆของ
  คลาสหรือ อิน เตอร์เ ฟสดัง นี้
   • ลำา ดับ การสืบ ทอดของคลาส
   • คำา อธิบ ายเกี่ย วกับ คลาสและจุด ประสงค์ท ั่ว ไป
   • รายชื่อ คุณ ลัก ษณะต่า งๆ ของคลาส
   • รายชื่อ เมธอดต่า งๆ ของคลาส
   • รายชื่อ Constructor ต่า งๆ ของคลาส
   • คำา อธิบ ายรายละเอีย ดของคุณ ลัก ษณะแต่ล ะตัว ของ
     คลาส
   • คำา อธิบ ายรายละเอีย ดของเมธอดแต่ล ะตัว ของคลาส
   • คำา อธิบ ายรายละเอีย ดของ Constructor แต่ล ะตัว ของ
ตัว อย่า ง Java API
สรุป เนื้อ หาของบท
 ภาษาระดับ สูง แบ่ง ออกเป็น สองประเภทคือ   ภาษา
  เชิง กระบวนการ และภาษาเชิง ออปเจ็ค
 ภาษาจาวาเป็น ภาษาเชิง ออปเจ็ค ทีใ ช้ท ง ตัว แปล
                                        ่   ั้
  ภาษาแบบคอมไพเลอร์แ ละอิน เตอร์พ รีต เตอร์ใ น
  การคอมไพล์แ ละรัน โปรแกรม
 คอมไพเลอร์ข องภาษาจาวาจะทำา หน้า ทีแ ปล      ่
  โปรแกรมภาษาจาวาให้เ ป็น โปรแกรมไบท์โ ค้ด
  ซึ่ง จะใช้อ ิน เตอร์พ รีต เตอร์ (JVM) ในการแปลโปร
  แกรมไบท์โ ค้ด ให้เ ป็น ภาษาเครื่อ ง
 โปรแกรมภาษาจาวาสามารถทำา งานข้า ม
  แพลตฟอร์ม ได้ถ า ระบบคอมพิว เตอร์น ั้น มี JVM อยู่
                     ้
 แพลตฟอร์ม ของจาวาประกอบไปด้ว ย JVM และ
สรุป เนื้อ หาของบท
 ชุด พัฒ นาโปรแกรมภาษาจาวา       Java 2 SDK
  ประกอบไปด้ว ยโปรแกรมต่า งๆทีส ำา คัญ คือ
                                   ่
  โปรแกรมคอมไพเลอร์ (javac.exe) และโปรแกรม
  อิน เตอร์ พรีต เตอร์ (java.exe)
 โปรแกรมจาวาทีอ ยูบ นแพลตฟอร์ม
               ่ ่                 J2SE สามารถ
  พัฒ นาได้ส องรูป แบบคือ โปรแกรมจาวาประยุก ต์
  ซึ่ง จะทำา งานภายใต้ JVM โดยตรง และโปรแกรม
  จาวาแอปเพล็ต ซึ่ง จะทำา งานภายใต้เ ว็บ
  บราวเซอร์ท ม ี JVM
                ี่
 คู่ม อ
       ื
      Java API จะช่ว ยในการค้น หารายละเอีย ด
  ของแพคเก็จ และคลาสต่า งๆทีม อ ยูใ นชุด พัฒ นา
                            ่ ี ่
  โปรแกรม Java 2 SDK
แบบฝึก หัด
 แบบฝึก หัด ที่   1 การเขีย นโปรแกรมจาวาประยุก ต์
 อย่า งง่า ย
   • เขีย นโปรแกรมจาวาประยุก ต์เ พื่อ แสดงข้อ ความ   Hello
    World
 แบบฝึก หัด ที่   2 การเขีย นโปรแกรมจาวาแอปเพล็
 ตอย่า งง่า ย
   • เขีย นโปรแกรมจาวาแอปเพล็ต เพื่อ แสดงข้อ ความ
    Welcome to Java
 แบบฝึก หัด ที่   3 การใช้ค ู่ม อ Java API
                                 ื

Más contenido relacionado

La actualidad más candente

Java Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User InterfaceJava Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User InterfaceIMC Institute
 
Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Nelson Glauber Leal
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
Java Lambda Expressions.pptx
Java Lambda Expressions.pptxJava Lambda Expressions.pptx
Java Lambda Expressions.pptxSameerAhmed593310
 
Short notes of oop with java
Short notes of oop with javaShort notes of oop with java
Short notes of oop with javaMohamed Fathy
 
Java Virtual Machine (JVM), Difference JDK, JRE & JVM
Java Virtual Machine (JVM), Difference JDK, JRE & JVMJava Virtual Machine (JVM), Difference JDK, JRE & JVM
Java Virtual Machine (JVM), Difference JDK, JRE & JVMshamnasain
 
Java Development Kit (jdk)
Java Development Kit (jdk)Java Development Kit (jdk)
Java Development Kit (jdk)Jadavsejal
 
บท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่าย
บท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่ายบท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่าย
บท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่ายAriyaporn Suaekong
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術Kiyokuni Kawachiya
 
Développement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec FlutterDéveloppement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec Fluttererick G
 
NestJS - O framework progressivo
NestJS - O framework progressivoNestJS - O framework progressivo
NestJS - O framework progressivoWender Machado
 
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4พงศธร ภักดี
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
 
Selenium WebDriver avec Java
Selenium WebDriver avec Java Selenium WebDriver avec Java
Selenium WebDriver avec Java Ahmed HARRAK
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
 

La actualidad más candente (20)

Java Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User InterfaceJava Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User Interface
 
Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021
 
Java presentation
Java presentation Java presentation
Java presentation
 
Introduction Dart
Introduction DartIntroduction Dart
Introduction Dart
 
java Applet Introduction
java Applet Introductionjava Applet Introduction
java Applet Introduction
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
Java Lambda Expressions.pptx
Java Lambda Expressions.pptxJava Lambda Expressions.pptx
Java Lambda Expressions.pptx
 
Short notes of oop with java
Short notes of oop with javaShort notes of oop with java
Short notes of oop with java
 
Java Virtual Machine (JVM), Difference JDK, JRE & JVM
Java Virtual Machine (JVM), Difference JDK, JRE & JVMJava Virtual Machine (JVM), Difference JDK, JRE & JVM
Java Virtual Machine (JVM), Difference JDK, JRE & JVM
 
Java Development Kit (jdk)
Java Development Kit (jdk)Java Development Kit (jdk)
Java Development Kit (jdk)
 
JDK,JRE,JVM
JDK,JRE,JVMJDK,JRE,JVM
JDK,JRE,JVM
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
บท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่าย
บท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่ายบท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่าย
บท1 5 เรื่องเทคนิคการถ่ายภาพและตัดต่อภาพถ่าย
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
 
Développement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec FlutterDéveloppement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec Flutter
 
NestJS - O framework progressivo
NestJS - O framework progressivoNestJS - O framework progressivo
NestJS - O framework progressivo
 
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
แผนการสอน โปรแกรมคอมพิวเตอร์กราฟิก ม.4
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
 
Selenium WebDriver avec Java
Selenium WebDriver avec Java Selenium WebDriver avec Java
Selenium WebDriver avec Java
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobiles
 

Destacado

Java Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกJava Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกThanachart Numnonda
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตThanachart Numnonda
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดThanachart Numnonda
 
ระบบปฏิบัติการ.Ppt
 ระบบปฏิบัติการ.Ppt  ระบบปฏิบัติการ.Ppt
ระบบปฏิบัติการ.Ppt onthicha1993
 
Computer Network
Computer  NetworkComputer  Network
Computer Networkchukiat008
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Thanachart Numnonda
 
ระบบปฏิบัติการ
ระบบปฏิบัติการระบบปฏิบัติการ
ระบบปฏิบัติการKrusine soyo
 
องค์ประกอบของระบบปฏิบัติการ
องค์ประกอบของระบบปฏิบัติการองค์ประกอบของระบบปฏิบัติการ
องค์ประกอบของระบบปฏิบัติการThanaporn Singsuk
 

Destacado (11)

Java Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกJava Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิก
 
C1
C1C1
C1
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุต
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาด
 
ระบบปฏิบัติการ.Ppt
 ระบบปฏิบัติการ.Ppt  ระบบปฏิบัติการ.Ppt
ระบบปฏิบัติการ.Ppt
 
Java AWT
Java AWTJava AWT
Java AWT
 
Computer Network
Computer  NetworkComputer  Network
Computer Network
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
 
Planning on Mobile Strategy
Planning on Mobile StrategyPlanning on Mobile Strategy
Planning on Mobile Strategy
 
ระบบปฏิบัติการ
ระบบปฏิบัติการระบบปฏิบัติการ
ระบบปฏิบัติการ
 
องค์ประกอบของระบบปฏิบัติการ
องค์ประกอบของระบบปฏิบัติการองค์ประกอบของระบบปฏิบัติการ
องค์ประกอบของระบบปฏิบัติการ
 

Similar a Java Programming [1/12] : Introduction

ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาThanachart Numnonda
 
1.Introduction to java
1.Introduction to java1.Introduction to java
1.Introduction to javaUsableLabs
 
Eclipse
EclipseEclipse
Eclipsegzxc
 
ภาษาJava
ภาษาJavaภาษาJava
ภาษาJavaPhurin002
 
Javacentrix com chap04-0
Javacentrix com chap04-0Javacentrix com chap04-0
Javacentrix com chap04-0Theeravaj Tum
 
Java Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletJava Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletIMC Institute
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java ProgrammingBhusit Net
 
Software
SoftwareSoftware
Softwaresa
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0Theeravaj Tum
 
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสารเทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสารสราวุฒิ จบศรี
 
Unit 2 Java Programming
Unit 2 Java ProgrammingUnit 2 Java Programming
Unit 2 Java ProgrammingIrinApat
 

Similar a Java Programming [1/12] : Introduction (20)

ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
1.Introduction to java
1.Introduction to java1.Introduction to java
1.Introduction to java
 
Eclipse
EclipseEclipse
Eclipse
 
Java Development Tools
Java Development ToolsJava Development Tools
Java Development Tools
 
ภาษาJava
ภาษาJavaภาษาJava
ภาษาJava
 
Javacentrix com chap04-0
Javacentrix com chap04-0Javacentrix com chap04-0
Javacentrix com chap04-0
 
Java Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletJava Programming [10/12]: Java Applet
Java Programming [10/12]: Java Applet
 
Java intro
Java introJava intro
Java intro
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
 
Gnewvb01 090401013958-phpapp01
Gnewvb01 090401013958-phpapp01Gnewvb01 090401013958-phpapp01
Gnewvb01 090401013958-phpapp01
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
Software
SoftwareSoftware
Software
 
joomla-2-5-install-appserv
joomla-2-5-install-appservjoomla-2-5-install-appserv
joomla-2-5-install-appserv
 
20121102 joomla2-5
20121102 joomla2-520121102 joomla2-5
20121102 joomla2-5
 
บทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม java
บทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม javaบทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม java
บทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม java
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0
 
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสารเทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
 
Unit 2 Java Programming
Unit 2 Java ProgrammingUnit 2 Java Programming
Unit 2 Java Programming
 
Java 7&12 6 2
Java 7&12 6 2Java 7&12 6 2
Java 7&12 6 2
 

Más de IMC Institute

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

Más de IMC Institute (20)

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

Java Programming [1/12] : Introduction

  • 1. บทที่ 1 ความรู้เ บื้อ งต้น ของภาษา จาวา (Introduction to Java Programming) อ.ธนิศ า เครือ ไวศยวรรณ คณะเทคโนโลยีส ารสนเทศ
  • 2. วัต ถุป ระสงค์  แนะนำา ความแตกต่า งระหว่า งภาษาเชิง กระบวนการ และภาษาเชิง ออปเจ็ค  แนะนำา ประวัต ิโ ดยย่อ และเทคโนโลยีจ าวา  อธิบ ายหลัก การของ Java Virtual Machine (JVM) และ Java Platform  แนะนำา ซอฟต์แ วร์ท ใ ช้ใ นการพัฒ นา โปรแกรม ี่ ภาษาจาวา  แนะนำา จุด เด่น ของภาษา  อธิบ ายและแสดงตัว อย่า งของโปรแกรมจาวา ประยุก ต์แ ละ โปรแกรมจาวา แอปเพล็ต
  • 3. ภาษา เชิง กระบวนการ และภาษา เชิง ออปเจ็ค  ภาษาเชิง กระบวนการ • โปรแกรมจะแบ่ง ออกเป็น ส่ว นย่อ ยๆที่เ รีย กว่า โมดูล (module) • แต่ล ะโมดูล จะต้อ งเป็น อิส ระต่อ กัน • การออกแบบให้แ ต่ล ะโมดูล มีค วามเป็น อิส ระต่อ กัน นั้น ทำา ได้ย าก • ต้น ทุน ในการพัฒ นาโปรแกรมสูง  ภาษาเชิง ออปเจ็ค • การพัฒ นาโปรแกรมเป็น การเลีย นแบบการทำา งานเชิง ออปเจ็ค • สามารถนำา โปรแกรมกลับ มาใช้ใ หม่ (reuse) ได้ด ีก ว่า ภาษาเชิง กระบวนการ
  • 4. โปรแกรมเชิง ออปเจ็ค  วิเ คราะห์ป ัญ หาโดยมองปัญ หาว่า ประกอบไปด้ว ย ออปเจ็ค ต่า งๆ  จำา ลองคุณ ลัก ษณะและพฤติก รรมของออปเจ็ค  ออปเจ็ค จะส่ง ข้อ มูล กัน โดยผ่า นข่า วสาร (Message)  แตกต่า งจากภาษาเชิง กระบวนการทีว ิเ คราะห์ ่ ปัญ หาโดยพิจ ารณาจากลำา ดับ การทำา งานและ แบ่ง การทำา งานของโปรแกรมตามฟัง ก์ช ัน ต่า งๆ
  • 5. ระบบทะเบีย นนัก ศึก ษา  วิธ ีก ารเชิง  วิธ ีแ บบเชิง ออปเจ็ค กระบวนการ • นัก ศึก ษา • ลงทะเบีย นรายวิช า • ใบลงทะเบีย น • ชำา ระเงิน • รายชื่อ รายวิช า • เพิ่ม วิช า
  • 6. ออปเจ็ค ชนิด นัก ศึก ษา  คุณ ลัก ษณะ • ชื่อ • รหัส นัก ศึก ษา • เกรดเฉลี่ย  พฤติก รรม • ลงทะเบีย น • เพิ่ม หรือ ถอนวิช า
  • 7. ข้อ ดีข องการพัฒ นาโปรแกรมเชิง ออปเจ็ค  แนวคิด การวิเ คราะห์ป ัญ หาใกล้เ คีย งกับ ธรรมชาติ ของมนุษ ย์  ระบบจริง (real life) แบ่ง ตามออปเจ็ค ไม่ไ ด้ข ึ้น อยูก ับ ฟัง ก์ช ั่ น การทำา งาน ่ ่  ขบวนการพัฒ นาโปรแกรมทำา ได้ร วดเร็ว ขึน ้  ง่า ยต่อ การพัฒ นาและแก้ไ ข  นำา โปรแกรมกลับ มาใช้ใ หม่ไ ด้ง ่า ย
  • 8. ประวัต ิข องภาษาจาวา  พัฒ นาขึ้น โดยทีม วิจ ย ของบริษ ัท ซัน ไมโครซิส เต็ม ั ส์ (Sun Microsystems)  พัฒ นามาจากโครงการทีต ้อ งการพัฒ นาระบบ ่ ซอฟต์แ วร์เ พือ ควบคุม เครื่อ งใช้ไ ฟฟ้า ขนาดเล็ก ่ ภายในบ้า น  ชื่อ เดิม คือ ภาษา Oak ต่อ มาเปลี่ย นชื่อ เป็น ภาษา จาวา  ภาษาจาวาเริ่ม เป็น ทีน ย มแพร่ห ลายในปี ่ ิ ค .ศ. 1995  ภาษาจาวาเป็น ภาษาทีไ ม่ข ึ้น กับ แพลตฟอร์ม ่ (platform independent)
  • 9. องค์ป ระกอบของเทคโนโลยีจ าวา  JVM (Java Virtual Machine) • ทำา หน้า ที่เ ป็น อิน เตอร์พ รีต เตอร์  JRE (Java Runtime Environment) • ใช้ใ นการรัน โปรแกรม  J2SDK (Java 2 Software Development Kit) • เป็น ชุด พัฒ นาโปรแกรมภาษาจาวา
  • 10. JVM  จาวาเทคโนโลยีใ ช้ท ง คอมไพเลอร์แ ละอิน เตอร์ ั้ พรีต เตอร์ ในการคอมไพล์แ ละรัน โปรแกรม  โปรแกรมภาษาจาวามีซ อร์ด โค้ด เป็น.java และ จะแปลเป็น โปรแกรม ไบท์โ ค้ด (byte code) ทีเ ป็น ่ .class  โปรแกรมไบท์โ ค้ด จะรัน บน ระบบ คอมพิว เตอร์ โดยใช้ JVM (Java Virtual Machine) ทีเ ป็น อิน ่ เตอร์พ รีต เตอร์ ซึ่ง จะแปลโปรแกรมไบท์โ ค้ด ให้ เป็น ภาษาเครื่อ งทีข ึ้น อยูก ับ แพลตฟอร์ม นั้น ่ ่
  • 11. JVM  เครื่อ งคอมพิว เตอร์ท จ ะสามารถรัน โปรแกรมไบท์ ี่ โค้ด ได้จ ะต้อ งมี JVM อยู่  JVM อาจเป็น ซอฟต์แ วร์ห รือ ฮาร์ด แวร์  ในปัจ จุบ ัน JVM มีอ ยู่ใ น • ระบบปฏิบ ัต ิก ารคอมพิว เตอร์ต ่า งๆ • โปรแกรมเว็บ บราวเซอร์ • เครื่อ งใช้ไ ฟฟ้า ต่า งๆ • โทรศัพ ท์ • เครื่อ งมือ สื่อ สาร • สมาร์ท การ์ด
  • 13. JRE  JRE จะรัน โค้ด ทีแ ปลมาจาก JVM โดยจะทำา งาน 3 ่ ขั้น ตอน คือ • โหลดไบท์โ ค้ด โดยใช้ Class Loader • ตรวจสอบไบท์โ ค้ด โดยใช้ Byte Code Verifier • รัน ไบท์โ ค้ด โดยใช้ Runtime Interpreter
  • 15. J2SDK  Java 2 SDK (Software Development Kit)  เดิม ชื่อ JDK แต่ต ่อ มาเปลี่ย นชื่อ เป็น Java 2 ตั้ง แต่ JDK 1.2  โปรแกรม Java 2 SDK • javac.exe : โปรแกรมคอมไพเลอร์ • java.exe : โปรแกรมอิน เตอร์พ รีต เตอร์ (JVM)  Java 2 SDK ไม่ม โ ปรแกรมอิด ีเ ตอร์ ี
  • 16. Java IDE และ Java Editor  Java IDE • Netbeans ของบริษ ัท Sun Microsystems ( http://www.netbeans.org) • Eclipse ของบริษ ัท IBM (http://eclipse.org) • JBuilder ของบริษ ัท Borland ( http://www.borland.com/jbuilder) • JDeveloper ของบริษ ัท Oracle (http:// www.oracle.com) • intelliJ IDEA ของบริษ ัท JetBrains ( http://www.jetbrains.com/idea)  Java Editor • EditPlus ของบริษ ัท ES-Computing (http:// www.editplus.com) • JCreator ของบริษ ัท Xinox Software (
  • 17. จุด เด่น ของภาษาจาวา  ความง่า ย (simple)  ภาษาเชิง ออปเจ็ค (object oriented)  การกระจาย (distributed)  การป้อ งกัน การผิด พลาด (robust)  ความปลอดภัย (secure)  สถาปัต ยกรรมกลาง (architecture neutral)  เคลื่อ นย้า ยง่า ย (portable)
  • 18. จุด เด่น ของภาษาจาวา  อิน เตอร์พ รีต (interpreted)  ประสิท ธิภ าพสูง (high performance)  มัล ติเ ธรด (multithreaded)  พลวัต (dynamic)
  • 19. Java Platform  แพลตฟอร์ม ก็ค ือ ฮาร์ด แวร์แ ละ software environment ทีจ ะใช้ใ นการรัน โปรแกรม ่  แพลตฟอร์ม ของภาษาจาวาประกอบด้ว ย • Java Virtual Machine • Java Application Programming Interface (Java API)
  • 20. Java Platform  บริษ ัท ซัน ไมโครซิส เต็ม ส์ไ ด้ก ำา หนดแพลตฟอร์ม ของ Java 2 ไว้ส ามรูป แบบคือ • Java 2 Platform, Standard Edition (Java SE) • Java 2 Platform, Enterprise Edition (Java EE) • Java 2 Platform, Micro Edition (Java ME)
  • 21. JavaTM 2 Platform Java Platform Micro Edition (Java ME) Optional Packages Optional Packages Personal Personal Java Java Basis Profile Profile Enterprise Standard Foundation MIDP Edition Edition Profile (Java EE) (Java SE) Java CDC CLDC Card JVM KVM Card VM
  • 25. โปรแกรมจาวา  โปรแกรมจาวาประยุก ต์ (Java Application) • โปรแกรมใช้ง านทั่ว ไป • โปรแกรมทำา งานภายใต้จ าวาอิน เตอร์พ รีต เตอร์ • โปรแกรมแบบ Standalone  โปรแกรมจาวาแอปเพล็ต (Java Applet) • โปรแกรมที่ท ำา งานภายใต้โ ปรแกรมเวบ บราวเซอร์ที่ม ี JVM
  • 26. การสร้า งโปรแกรมจาวาประยุก ต์  เขีย นซอร์ด โค้ด  HelloWorld.java  คอมไพล์โ ปรแกรม javac HelloWorld.java → HelloWorld.class  รัน โปรแกรม java HelloWorld
  • 27. HelloWorld.java public class HelloWorld { public class HelloWorld { public static void main(String args[]) { public static void main(String args[]) { System.out.println("Hello World"); System.out.println("Hello World"); }} }}
  • 30. การสร้า งโปรแกรมจาวาแอปเพล็ต  โปรแกรมจาวาแอปเพล็ต จะมีไ ฟล์ท เ ขีย นขึ้น สอง ี่ ไฟล์ค ือ • โปรแกรมซอร์ด โค้ด (.java) • โปรแกรมเว็บ เพจ (.html)  ขั้น ตอนการทำา งาน • เขีย นโปรแกรมซอร์ด โค้ด  HelloWorldApplet.java • คอมไพล์โ ปรแกรม  HelloWorldApplet.class • ใช้โ ปรแกรมเว็บ บราวเซอร์ใ ดๆเปิด โปรแกรม HelloWorld.html
  • 31. HelloWorldApplet.java import java.awt.*; import java.awt.*; import java.applet.*; import java.applet.*; public class HelloWorldApplet extends Applet { public class HelloWorldApplet extends Applet { public void paint(Graphics g) { public void paint(Graphics g) { g.drawString("Hello World",20,20); g.drawString("Hello World",20,20); }} }}
  • 32. HelloWorld.html <HTML> <HTML> <HEAD> <HEAD> <TITLE>HelloWorld Example</TITLE> <TITLE>HelloWorld Example</TITLE> </HEAD> </HEAD> <BODY> <BODY> <APPLET CODE="HelloWorldApplet.class" <APPLET CODE="HelloWorldApplet.class" WIDTH="300" HEIGHT="300"> WIDTH="300" HEIGHT="300"> </APPLET> </APPLET> </BODY> </BODY> </HTML> </HTML>
  • 34. ตัว อย่า งการรัน โปรแกรมบนเว็บ บราวเซอร์
  • 35. Java API Documentation  เอกสารในรูป แบบของ HTML ทีอ ธิบ ายข้อ มูล ่ เกีย วกับ API (Application Programming ่ Interface) ของภาษาจาวา  สามารถทีจ ะ ่ download ได้จ าก http://java.sun.com  เรีย กดู online ได้ท ี่ http://java.sun.com/j2se/1.5.0/docs/api
  • 36. คู่ม ือ Java API  Java API เป็น ข้อ กำา หนดทีว ่า ด้ว ยคลาสและ ่ อิน เตอร์เ ฟสต่า งๆทีก ำา หนดไว้ใ นแพคเก็จ มาตรา ่ ฐานของภาษาจาวา  คู่ม อ ื Java API จะแสดงรายละเอีย ดต่า งๆของ คลาสหรือ อิน เตอร์เ ฟสดัง นี้ • ลำา ดับ การสืบ ทอดของคลาส • คำา อธิบ ายเกี่ย วกับ คลาสและจุด ประสงค์ท ั่ว ไป • รายชื่อ คุณ ลัก ษณะต่า งๆ ของคลาส • รายชื่อ เมธอดต่า งๆ ของคลาส • รายชื่อ Constructor ต่า งๆ ของคลาส • คำา อธิบ ายรายละเอีย ดของคุณ ลัก ษณะแต่ล ะตัว ของ คลาส • คำา อธิบ ายรายละเอีย ดของเมธอดแต่ล ะตัว ของคลาส • คำา อธิบ ายรายละเอีย ดของ Constructor แต่ล ะตัว ของ
  • 38. สรุป เนื้อ หาของบท  ภาษาระดับ สูง แบ่ง ออกเป็น สองประเภทคือ ภาษา เชิง กระบวนการ และภาษาเชิง ออปเจ็ค  ภาษาจาวาเป็น ภาษาเชิง ออปเจ็ค ทีใ ช้ท ง ตัว แปล ่ ั้ ภาษาแบบคอมไพเลอร์แ ละอิน เตอร์พ รีต เตอร์ใ น การคอมไพล์แ ละรัน โปรแกรม  คอมไพเลอร์ข องภาษาจาวาจะทำา หน้า ทีแ ปล ่ โปรแกรมภาษาจาวาให้เ ป็น โปรแกรมไบท์โ ค้ด ซึ่ง จะใช้อ ิน เตอร์พ รีต เตอร์ (JVM) ในการแปลโปร แกรมไบท์โ ค้ด ให้เ ป็น ภาษาเครื่อ ง  โปรแกรมภาษาจาวาสามารถทำา งานข้า ม แพลตฟอร์ม ได้ถ า ระบบคอมพิว เตอร์น ั้น มี JVM อยู่ ้  แพลตฟอร์ม ของจาวาประกอบไปด้ว ย JVM และ
  • 39. สรุป เนื้อ หาของบท  ชุด พัฒ นาโปรแกรมภาษาจาวา Java 2 SDK ประกอบไปด้ว ยโปรแกรมต่า งๆทีส ำา คัญ คือ ่ โปรแกรมคอมไพเลอร์ (javac.exe) และโปรแกรม อิน เตอร์ พรีต เตอร์ (java.exe)  โปรแกรมจาวาทีอ ยูบ นแพลตฟอร์ม ่ ่ J2SE สามารถ พัฒ นาได้ส องรูป แบบคือ โปรแกรมจาวาประยุก ต์ ซึ่ง จะทำา งานภายใต้ JVM โดยตรง และโปรแกรม จาวาแอปเพล็ต ซึ่ง จะทำา งานภายใต้เ ว็บ บราวเซอร์ท ม ี JVM ี่  คู่ม อ ื Java API จะช่ว ยในการค้น หารายละเอีย ด ของแพคเก็จ และคลาสต่า งๆทีม อ ยูใ นชุด พัฒ นา ่ ี ่ โปรแกรม Java 2 SDK
  • 40. แบบฝึก หัด  แบบฝึก หัด ที่ 1 การเขีย นโปรแกรมจาวาประยุก ต์ อย่า งง่า ย • เขีย นโปรแกรมจาวาประยุก ต์เ พื่อ แสดงข้อ ความ Hello World  แบบฝึก หัด ที่ 2 การเขีย นโปรแกรมจาวาแอปเพล็ ตอย่า งง่า ย • เขีย นโปรแกรมจาวาแอปเพล็ต เพื่อ แสดงข้อ ความ Welcome to Java  แบบฝึก หัด ที่ 3 การใช้ค ู่ม อ Java API ื