SlideShare uma empresa Scribd logo
1 de 46
บทท 1

      ความรเบองตนของภาษาจาวา
  (Introduction to Java Programming)

           ผศ.ธน+ศา เครอไวศยวรรณ
           คณะเทคโนโลย4สารสนเทศ
สถาบ7นเทคโนโลย4พระจอมเกลาเจาค:ณทหารลาดกระบ7ง
วตถประสงค
 แนะน>าความแตกต?างระหว?างภาษาเช+งกระบวนการ และภาษาเช+งออปเจBค

 แนะน   ประว7ตโดยย?อและเทคโนโลย4จ ว
               +
 อธบ   ยหลกก รของ Java Virtual Machine (JVM) และ Java Platform
 แนะน   ซอฟตแวรทใช$ในก รพฒน โปรแกรมภ ษ จ ว
 แนะน>าจ:ดเด?นของภาษา

 อธบ ยและแสดงต7วอย?างของโปรแกรมจาวาประย:กตIและโปรแกรมจาวา
  แอปเพลBต
 แนะน>าว+ธการใชค?มอ Java API
           4
ระบบคอมพวเตอร




 ฮารIดแวรI เช?น

 ระบบปฏ+บ7ตการ เช?น Windows Vista, Linux
            +
 โปรแกรมประย:กตI เช?น Microsoft Office, Web Browser
ภ ษ คอมพ+วเตอรI
 ภาษาเคร+อง (Machine Language)
          W
 ภาษาแอสเซมบล4 (Assembly Language)

 ภาษาระด7บสง (High-Level Langugae)
ภ ษ ระด7บสง
 ภาษาคอมพ+วเตอรIย:คแรก
   •   FORTRAN, COBOL, BASIC
 ภาษาเช+งกระบวนการ (Procedural Language)
   •   PASCAL, C
 ภาษาเช+งออปเจBค (Object Oriented Programming; OOP)
   •   C++, Java, C#
ตวแปลภ ษ
 แบ+งออกเป,นสองแบบ


 คอมไพเลอร       (Compiler)
   •   C++, FORTRAN


 อนเตอรพรตเตอร       (interpreter)
   •   Java, C#
ตวแปลภ ษ
 คอมไพเลอร         อนเตอรพรตเตอร
ภ ษ เช+งกระบวนการ และภาษาเช+งออปเจBค
 ภาษาเช+งกระบวนการ
   •   โปรแกรมจะแบ?งออกเปgนส?วนย?อยๆท4เร4ยกว?าโมดล (module)
                                      W
   •   แต?ละโมดลจะตองเปgนอ+สระต?อก7น
   •   การออกแบบใหแต?ละโมดลม4ความเปgนอ+สระต?อก7นน7นท>าไดยาก
   •   ตนท:นในการพ7ฒนาโปรแกรมสง
 ภาษาเช+งออปเจBค
   •   การพ7ฒนาโปรแกรมเปgนการเล4ยนแบบการท>างานเช+งออปเจBค
   •   สามารถน>าโปรแกรมกล7บมาใชใหม? (reuse) ไดด4กว?าภาษาเช+งกระบวนการ
โปรแกรมเชงออปเจ.ค
 ว+เคราะหIปjญหาโดยมองปjญหาว?าประกอบไปดวยออปเจBคต?างๆ

 จ>าลองค:ณล7กษณะและพฤต+กรรมของออปเจBค

 ออปเจ.คจะส+งข$อม/ลกนโดยผ+   นข+ วส ร (Message)
 แตกต+ งจากภ ษ เช+งกระบวนการทว+เคราะหIปjญหาโดยพ+จารณาจากล>าด7บ
  การท>างานและแบ+งก รท ง นของโปรแกรมต มฟ3งกชนต+ งๆ
ระบบทะเบยนนกศ6กษ
 วธก   รเช+งกระบวนการ        วธแบบเชงออปเจ.ค
   •    ลงทะเบยนร ยวช           •   นกศ6กษ
   •    ช ระเงน                 •   ใบลงทะเบยน
   •    เพมวช                   •   ร ยช7อร ยวช
ออปเจBคชน+ดนกศ6กษ
 ค:ณล7กษณะ
   •   ชWอ
   •   รห7สน7กศmกษา
   •   เกรดเฉล4Wย
 พฤต+กรรม
   •   ลงทะเบยน
   •   เพมหรอถอนวช
ข$อดของก รพฒน โปรแกรมเชงออปเจ.ค
 แนวค+ดการว+เคราะหIปjญหาใกลเค4ยงก7บธรรมชาต+ของมน:ษยI

 ระบบจรง (real life) แบ+งต   มออปเจ.ค ไม+ไดข68นอย?กบฟ3งกช W นก รท ง น
                                                         ช7
 ขบวนการพ7ฒนาโปรแกรมท>าไดรวดเรBวขmน

 ง+   ยต+อก รพฒน และแก$ไข
 น>าโปรแกรมกล7บมาใชใหม?ไดง?าย
ประวตของภ ษ จ ว
 พ7ฒนาขmนโดยท4มว+จ7ยของบรษทซ7นไมโครซ+สเตBมสI (Sun Microsystems)

 พฒน   ม จ กโครงก รทต$องก รพฒน ระบบซอฟตแวรเพ7อควบคมเคร7องใช$
  ไฟฟ9 ขน ดเล.กภ ยในบ$ น
 ช7อเดมค7อภาษา Oak ต?อมาเปล4WยนชWอเปgนภาษาจาวา

 ภาษาจาวาเร+มเปgนท4Wนยมแพร?หลายในปp ค.ศ. 1995
             W        +
 ภาษาจาวาเปgนภาษาท4Wไม?ขนก7บแพลตฟอรIม (platform independent)
                         m
 JDK 1.0 ประกาศใชเมWอปp 1996

 JDK เวอรIช7นปjจจ:บ7นคอ 6
โลโก$และ Mascot ภ ษ Java
 James Gosling ค7อบด   ภษจว
 โลโก$ภ   ษ จ ว เป,นร/ปแก$วก แฟ
 Duke เป,น Mascot ภ   ษจว
องคประกอบของเทคโนโลยจ ว
 JVM    (Java Virtual Machine)
   •   ท>าหนาท4เปgนอ+นเตอรIพร4ตเตอรI
               W


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


 JDK (Java    Development Kit)
   •   เปgนช:ดพ7ฒนาโปรแกรมภาษาจาวา
JVM
จ ว เทคโนโลยใช$ท8งคอมไพเลอรและอนเตอรพรตเตอร ในก รคอมไพลI
 และรนโปรแกรม
 โปรแกรมภ   ษ จ ว มซอรดโค$ดเป,น .java และจะแปลเป,นโปรแกรมไบทโค$ด
 (byte code) ทเป,น .class
 โปรแกรมไบทโค$ดจะรนบนระบบคอมพวเตอร   โดยใช$ JVM (Java Virtual
 Machine) ทเป,นอนเตอรพรตเตอร ซ6งจะแปลโปรแกรมไบทโค$ดให$เป,นภาษา
 เครWองท4ขmนอย?ก7บแพลตฟอรIมน7น
         W
JVM
 เครWองคอมพ+วเตอรIท4Wจะสามารถร7นโปรแกรมไบทIโคดไดจะตองม4 JVM อย?

 JVM อาจเปgนซอฟตIแวรIหรอฮารIดแวรI

 ในปjจจ:บ7น JVM ม4อย?ใน
    •   ระบบปฏ+บ7ต+การคอมพ+วเตอรIตางๆ
                                  ?
    •   โปรแกรมเวBบบราวเซอรI
    •   เครWองใชไฟฟzาต?างๆ
    •   โทรศ7พทI
    •   เครWองมอสWอสาร
    •   สมารIทการIด
ข7นตอนการท>างานของโปรแกรมภาษาจาวา
JRE
 JRE จะรนโค$ดทแปลม        จ ก JVM โดยจะท ง น 3 ข8นตอน ค7อ
   •   โหลดไบทโค$ดโดยใช$ Class Loader
   •   ตรวจสอบไบทโค$ดโดยใช$ Byte Code Verifier
   •   รนไบทโค$ดโดยใช$ Runtime Interpreter
ข7นตอนการท>างานของ JRE
JDK
 JDK (Java Development Kit)

 เด+มชWอ JDK แต?ตอมาเปล4WยนชWอเปgน J2 ต7งแต? JDK 1.2
                  ?
 โปรแกรม JDK
    •   javac.exe : โปรแกรมคอมไพเลอรI
    •   java.exe : โปรแกรมอ+นเตอรIพร4ตเตอรI (JVM)
 JDK ไม?ใช? โปรแกรมแบบ SDK (Software Development Kit) จmงไม?ม4อ+ด4เตอรI
  ในการเข4ยนโปรแกรม
Java SDK และ Java Editor
 Java SDK
   •   Netbeans ของบร+ษ7ท Sun Microsystems (http://www.netbeans.org)
   •   Eclipse ของบร+ษ7ท IBM (http://eclipse.org)
   •   JDeveloper ของบร+ษ7ท Oracle (http://www.oracle.com)
   •   intelliJ IDEA ของบร+ษ7ท JetBrains (http://www.jetbrains.com/idea)
 Java Editor
   •   EditPlus ของบร+ษ7ท ES-Computing (http://www.editplus.com)
   •   JCreator ของบร+ษ7ท Xinox Software (http://www.jcreator.com)
จ:ดเด?นของภ ษ จ ว
 ความง?าย (simple)

 ภาษาเช+งออปเจBค (object oriented)

 การกระจาย (distributed)

 การปzองก7นการผ+ดพลาด (robust)

 ความปลอดภ7ย (secure)

 สถาปjตยกรรมกลาง (architecture neutral)

 เคลWอนยายง?าย (portable)
จ:ดเด?นของภ ษ จ ว
 อ+นเตอรIพร4ต (interpreted)

 ประส+ทธ+ภาพสง (high performance)

 ม7ลต+เธรด (multithreaded)

 พลว7ต (dynamic)
Java Platform
 แพลตฟอรมก.ค7อ ฮ       รดแวรและ software environment ทจะใช$ในก รรน
  โปรแกรม
 แพลตฟอรIมของภาษาจาวาประกอบดวย
   •   Java Virtual Machine
   •   Java Application Programming Interface (Java API)
Java Platform
 บร+ษทซ7นไมโครซ+สเตBมสIไดก>าหนดแพลตฟอรIมของ Java ไวสามรปแบบคอ
      7
   •   Java Platform, Standard Edition (Java SE)
   •   Java Platform, Enterprise Edition (Java EE)
   •   Java Platform, Micro Edition (Java ME)
JavaTM 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
JavaTM Platform, Standard Edition 6
 Java SE เป,นแพลตฟอรมพ7นฐ
                        8      นของภ ษ จ ว
ส   หรบพฒน บนเคร7องคอมพวเตอรทวไป
 เดมช7อ J2SE

 เวอรชนล+   สดค7อ Java SE 6
JavaTM Platform, Enterprise Edition
 Java EE เป,นแพลตฟอรมของภ       ษ จ ว ส หรบพฒน โปรแกรมบนเคร7อง
  แม+ข+ ย
 ต$องมเคร7องแม+ข+   ยทมโปรแกรม Web Server หร7อ Application Server
 ใช$พฒน    โปรแกรมขน ดใหญ+ส หรบองคกร
 ตวอย+   งเช+นก รพฒน โปรแกรมบน Web เช+น โปรแกรมของ Yahoo, E-Bay
ภ   ษ อ7นๆทเขยนค7อ PHP หร7อ ASP.NET
 เวอรชนล+   สดค7อ Java EE 5
JavaTM Platform, Mobile Edition
 Java ME เป,นแพลตฟอรมของภ  ษ จ ว ส หรบพฒน โปรแกรมส หรบ
  อปกรณขน ดเล.กเช+น โทรศพทม7อถ7อ
          รพฒน โปรแกรมบนโทรศพทม7อถ7อเช+นเคร7อง Nokia ทรนบน
 นยมใช$ในก
  ระบบปฎบตก ร Symbian
 ป3จจบนมก   รออกแพลตฟอรมในก รพฒน จ ว บนโทรศพทม7อถ7อแบบ
  อ7นๆเช+น Android, Java FX
โปรแกรมจ ว พพ78นฐ น (Java SE)
 โปรแกรมจาวาประย:กตI (Java Application)
   •   โปรแกรมใช$ง นทวไป
   •   โปรแกรมท>างานภายใตจาวาอ+นเตอรIพร4ตเตอรI
   •   โปรแกรมแบบ Standalone
 โปรแกรมจาวาแอปเพลBต (Java Applet)
   •   โปรแกรมทท>างานภายใตโปรแกรมเวบบร วเซอรท4ม4 JVM
                                              W
ก รสรางโปรแกรมจ ว ประย:กตI
 เข4ยนซอรIดโคด      HelloWorld.java

 คอมไพลIโปรแกรม

     javac HelloWorld.java

     →     HelloWorld.class

 ร7นโปรแกรม

     java HelloWorld
HelloWorld.java

public class HelloWorld {
   public static void main(String args[]) {
        System.out.println("Hello World");
   }
}
ต7วอย?างการใช Java IDE
ร/ปแสดงข8นตอนก รท ง น
ก รสรางโปรแกรมจ ว แอปเพลBต
 โปรแกรมจ     ว แอปเพลBตจะมไฟลทเขยนข68นสองไฟลค7อ
   •   โปรแกรมซอรIดโคด (.java)
   •   โปรแกรมเวBบเพจ (.html)
 ข7นตอนการท>างาน
   •   เข4ยนโปรแกรมซอรIดโคด  HelloWorldApplet.java
   •   คอมไพลIโปรแกรม  HelloWorldApplet.class
   •   ใชโปรแกรมเวBบบราวเซอรIใดๆเป‚ดโปรแกรม HelloWorld.html
HelloWorldApplet.java

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


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


<HTML>
   <HEAD>
          <TITLE>HelloWorld Example</TITLE>
   </HEAD>
   <BODY>
          <APPLET CODE="HelloWorldApplet.class"
                 WIDTH="300" HEIGHT="300">
          </APPLET>
   </BODY>
</HTML>
ร/ปแสดงข8นตอนก รท ง น
ต7วอย?างการร7นโปรแกรมบนเวBบบราวเซอรI
Java API Documentation
 เอกส  รในร/ปแบบของ HTML ทอธบ ยข$อม/ลเกยวกบ API (Application
  Programming Interface) ของภ ษ จ ว
ส   ม รถทจะ download ได$จ ก http://java.sun.com
 เรยกด/   online ได$ท http://java.sun.com/javase/6/docs/api/index.html
ค?มอ Java API
 Java API เป,นข$อก
                 หนดทว+ ด$วยคล สและอนเตอรเฟสต+ งๆทก หนดไว$ใน
  แพคเก.จม ตร ฐ นของภ ษ จ ว
 ค?มอ Java API จะแสดงรายละเอ4ยดต?างๆของคลาสหรออ+นเตอรIเฟสด7งน4
    •   ล>าด7บการสบทอดของคลาส
    •   ค>าอธ+บายเก4Wยวก7บคลาสและจ:ดประสงคIทวไป
                                            7W
    •   รายชWอค:ณล7กษณะต?างๆ ของคลาส
    •   รายชWอเมธอดต?างๆ ของคลาส
    •   รายชWอ Constructor ต?างๆ ของคลาส
    •   ค>าอธ+บายรายละเอ4ยดของค:ณล7กษณะแต?ละต7วของคลาส
    •   ค>าอธ+บายรายละเอ4ยดของเมธอดแต?ละต7วของคลาส
    •   ค>าอธ+บายรายละเอ4ยดของConstructor แต?ละต7วของคลาส
ต7วอย?าง Java API
สร:ปเนอหาของบท
 ภาษาระด7บสงแบ?งออกเปgนสองประเภทคอ ภาษาเช+งกระบวนการ และภาษา
  เช+งออปเจBค
 ภาษาจาวาเปgนภาษาเช+งออปเจBคท4ใชท7งต7วแปลภาษาแบบคอมไพเลอรIและ
                               W
  อ+นเตอรIพร4ตเตอรIในการคอมไพลIและร7นโปรแกรม
 คอมไพเลอรIของภาษาจาวาจะท>าหนาท4แปลโปรแกรมภาษาจาวาใหเปgนโปร
                                 W
  แกรมไบทIโคด ซmงจะใชอ+นเตอรIพร4ตเตอรI (JVM) ในการแปลโปรแกรมไบทI
                W
  โคดใหเปgนภาษาเครWอง
 โปรแกรมภาษาจาวาสามารถท>างานขามแพลตฟอรIมไดถาระบบ
  คอมพ+วเตอรIน7นม4 JVM อย?
 แพลตฟอรIมของจาวาประกอบไปดวย JVM และ Java API ซmWง Java   ม4
  แพลตฟอรIม 3 แบบคอ Java SE, Java EE และ Java ME
สร:ปเนอหาของบท
 ช:ดพ7ฒนาโปรแกรมภาษาจาวา JDK ประกอบไปดวยโปรแกรมต?างๆท4Wส>าค7ญ
  คอ โปรแกรมคอมไพเลอรI (javac.exe) และโปรแกรมอ+นเตอรI พร4ตเตอรI
  (java.exe)
 โปรแกรมจาวาท4Wอย?บนแพลตฟอรIม Java SE สามารถพ7ฒนาไดสองรปแบบ
  คอโปรแกรมจาวาประย:กตIซงจะท>างานภายใต JVM โดยตรง และโปรแกรม
                         mW
  จาวาแอปเพลBตซmงจะท>างานภายใตเวBบบราวเซอรIท4Wม4 JVM
                W
 ค?มอ Java API จะช?วยในการคนหารายละเอ4ยดของแพคเกBจและคลาสต?างๆ
  ท4Wม4อย?ในช:ดพ7ฒนาโปรแกรม JDK
แบบฝ„กห7ด
 ต+ดต7ง NetBeans 6.5

 แบบฝ„กห7ดท4W 1 การเข4ยนโปรแกรมจาวาประย:กตIอย?างง?าย
    •   เข4ยนโปรแกรมจาวาประย:กตIเพWอแสดงขอความ Hello World
 แบบฝ„กห7ดท4W 2 การเข4ยนโปรแกรมจาวาแอปเพลBตอย?างง?าย
    •   เข4ยนโปรแกรมจาวาแอปเพลBตเพWอแสดงขอความ Welcome to Java
 แบบฝ„กห7ดท4W 3 การใชค?มอ Java API

Mais conteúdo relacionado

Mais procurados

การพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษา
การพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษาการพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษา
การพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษาJiraporn Kru
 
Robot Framework :: Demo login application
Robot Framework :: Demo login applicationRobot Framework :: Demo login application
Robot Framework :: Demo login applicationSomkiat Puisungnoen
 
Presentation การประชุมสำหรับผู้บริหารระดับสูง
Presentation การประชุมสำหรับผู้บริหารระดับสูงPresentation การประชุมสำหรับผู้บริหารระดับสูง
Presentation การประชุมสำหรับผู้บริหารระดับสูงNatepanna Yavirach
 
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศ
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศ
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศKunnanatya Pare
 
4 กิตติกรรมประกาศ
4 กิตติกรรมประกาศ4 กิตติกรรมประกาศ
4 กิตติกรรมประกาศAugusts Programmer
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซีmansuang1978
 
Обзор протокола Netconf/YANG и его применение для управления услугами
Обзор протокола Netconf/YANG и его применение для управления услугамиОбзор протокола Netconf/YANG и его применение для управления услугами
Обзор протокола Netconf/YANG и его применение для управления услугамиCisco Russia
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Frameworklaurent bristiel
 
ชั้นประถมศึกษาปีที่ 4
ชั้นประถมศึกษาปีที่ 4ชั้นประถมศึกษาปีที่ 4
ชั้นประถมศึกษาปีที่ 4krunuy5
 
โครงงานงานคอมพิวเตอร์
โครงงานงานคอมพิวเตอร์โครงงานงานคอมพิวเตอร์
โครงงานงานคอมพิวเตอร์_Inghz
 
คู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App Inventor
คู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App Inventorคู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App Inventor
คู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App InventorSomchart Phaeumnart
 
บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]
บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]
บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]Kull Ch.
 
แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6
แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6
แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6พงศธร ภักดี
 
ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...
ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...
ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...plam1338
 
Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1Pacc UAB
 
รายงานบูรณาการ
รายงานบูรณาการรายงานบูรณาการ
รายงานบูรณาการnatcha khongmanacharn
 

Mais procurados (20)

การพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษา
การพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษาการพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษา
การพัฒนาทักษะการพิมพ์ของนักเรียนประถมศึกษา
 
Robot Framework :: Demo login application
Robot Framework :: Demo login applicationRobot Framework :: Demo login application
Robot Framework :: Demo login application
 
Presentation การประชุมสำหรับผู้บริหารระดับสูง
Presentation การประชุมสำหรับผู้บริหารระดับสูงPresentation การประชุมสำหรับผู้บริหารระดับสูง
Presentation การประชุมสำหรับผู้บริหารระดับสูง
 
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศ
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศ
ผลกระทบเชิงลบของนวัตกรรมและเทคโนโลยีสารสนเทศ
 
4 กิตติกรรมประกาศ
4 กิตติกรรมประกาศ4 กิตติกรรมประกาศ
4 กิตติกรรมประกาศ
 
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี
 
Обзор протокола Netconf/YANG и его применение для управления услугами
Обзор протокола Netconf/YANG и его применение для управления услугамиОбзор протокола Netconf/YANG и его применение для управления услугами
Обзор протокола Netconf/YANG и его применение для управления услугами
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Framework
 
ชั้นประถมศึกษาปีที่ 4
ชั้นประถมศึกษาปีที่ 4ชั้นประถมศึกษาปีที่ 4
ชั้นประถมศึกษาปีที่ 4
 
โครงงานงานคอมพิวเตอร์
โครงงานงานคอมพิวเตอร์โครงงานงานคอมพิวเตอร์
โครงงานงานคอมพิวเตอร์
 
คู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App Inventor
คู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App Inventorคู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App Inventor
คู่มือการอบรมครู การพัฒนาสื่อการเรียนการสอน ด้วย MIT App Inventor
 
บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]
บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]
บทที่ 3 วิธีการดำเนินงาน [โครงการอ่านหนังสือให้กับผู้พิการทางสายตา]
 
แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6
แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6
แผนการสอน ผลิตสื่อวีดีทัศน์ ม.6
 
ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...
ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...
ชมพูทวีป คือ แผ่นดินที่เรียกว่าประเทศอินเดียในกาลก่อน แต่ในสมัยปัจจุบันเป็นที...
 
Introduction to robot framework
Introduction to robot frameworkIntroduction to robot framework
Introduction to robot framework
 
Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1Aula 7 - Repetição enquanto - parte 1
Aula 7 - Repetição enquanto - parte 1
 
รายงานบูรณาการ
รายงานบูรณาการรายงานบูรณาการ
รายงานบูรณาการ
 
POP-X2 Education Kit Presentation
POP-X2 Education Kit PresentationPOP-X2 Education Kit Presentation
POP-X2 Education Kit Presentation
 

Semelhante a ความรู้เบื้องต้นภาษาจาวา

Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionIMC Institute
 
Eclipse
EclipseEclipse
Eclipsegzxc
 
Java Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletJava Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletIMC Institute
 
1.Introduction to java
1.Introduction to java1.Introduction to java
1.Introduction to javaUsableLabs
 
ภาษาJava
ภาษาJavaภาษาJava
ภาษาJavaPhurin002
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java ProgrammingBhusit Net
 
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++Naowarat Jaikaroon
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Thanachart Numnonda
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0Theeravaj Tum
 

Semelhante a ความรู้เบื้องต้นภาษาจาวา (20)

Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : Introduction
 
Eclipse
EclipseEclipse
Eclipse
 
Java Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletJava Programming [10/12]: Java Applet
Java Programming [10/12]: Java Applet
 
Phonegap book
Phonegap bookPhonegap book
Phonegap book
 
Java Development Tools
Java Development ToolsJava Development Tools
Java Development Tools
 
1.Introduction to java
1.Introduction to java1.Introduction to java
1.Introduction to java
 
joomla-2-5-install-appserv
joomla-2-5-install-appservjoomla-2-5-install-appserv
joomla-2-5-install-appserv
 
Wordpress 3.5 -install-appserv
Wordpress 3.5 -install-appservWordpress 3.5 -install-appserv
Wordpress 3.5 -install-appserv
 
ภาษาJava
ภาษาJavaภาษาJava
ภาษาJava
 
20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
 
Know 1 1
Know 1 1Know 1 1
Know 1 1
 
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
 
งานนำเสนอ2
งานนำเสนอ2งานนำเสนอ2
งานนำเสนอ2
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0
 
Joomla CMS
Joomla CMSJoomla CMS
Joomla CMS
 
20121102 joomla2-5
20121102 joomla2-520121102 joomla2-5
20121102 joomla2-5
 
บทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม java
บทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม javaบทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม java
บทที่ 2 เตรียมตัวให้พร้อมก่อนเขียนโปรแกรม java
 

Mais 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
 

Mais 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. บทท 1 ความรเบองตนของภาษาจาวา (Introduction to Java Programming) ผศ.ธน+ศา เครอไวศยวรรณ คณะเทคโนโลย4สารสนเทศ สถาบ7นเทคโนโลย4พระจอมเกลาเจาค:ณทหารลาดกระบ7ง
  • 2. วตถประสงค  แนะน>าความแตกต?างระหว?างภาษาเช+งกระบวนการ และภาษาเช+งออปเจBค  แนะน ประว7ตโดยย?อและเทคโนโลย4จ ว +  อธบ ยหลกก รของ Java Virtual Machine (JVM) และ Java Platform  แนะน ซอฟตแวรทใช$ในก รพฒน โปรแกรมภ ษ จ ว  แนะน>าจ:ดเด?นของภาษา  อธบ ยและแสดงต7วอย?างของโปรแกรมจาวาประย:กตIและโปรแกรมจาวา แอปเพลBต  แนะน>าว+ธการใชค?มอ Java API 4
  • 3. ระบบคอมพวเตอร  ฮารIดแวรI เช?น  ระบบปฏ+บ7ตการ เช?น Windows Vista, Linux +  โปรแกรมประย:กตI เช?น Microsoft Office, Web Browser
  • 4. ภ ษ คอมพ+วเตอรI  ภาษาเคร+อง (Machine Language) W  ภาษาแอสเซมบล4 (Assembly Language)  ภาษาระด7บสง (High-Level Langugae)
  • 5. ภ ษ ระด7บสง  ภาษาคอมพ+วเตอรIย:คแรก • FORTRAN, COBOL, BASIC  ภาษาเช+งกระบวนการ (Procedural Language) • PASCAL, C  ภาษาเช+งออปเจBค (Object Oriented Programming; OOP) • C++, Java, C#
  • 6. ตวแปลภ ษ  แบ+งออกเป,นสองแบบ  คอมไพเลอร (Compiler) • C++, FORTRAN  อนเตอรพรตเตอร (interpreter) • Java, C#
  • 7. ตวแปลภ ษ  คอมไพเลอร  อนเตอรพรตเตอร
  • 8. ภ ษ เช+งกระบวนการ และภาษาเช+งออปเจBค  ภาษาเช+งกระบวนการ • โปรแกรมจะแบ?งออกเปgนส?วนย?อยๆท4เร4ยกว?าโมดล (module) W • แต?ละโมดลจะตองเปgนอ+สระต?อก7น • การออกแบบใหแต?ละโมดลม4ความเปgนอ+สระต?อก7นน7นท>าไดยาก • ตนท:นในการพ7ฒนาโปรแกรมสง  ภาษาเช+งออปเจBค • การพ7ฒนาโปรแกรมเปgนการเล4ยนแบบการท>างานเช+งออปเจBค • สามารถน>าโปรแกรมกล7บมาใชใหม? (reuse) ไดด4กว?าภาษาเช+งกระบวนการ
  • 9. โปรแกรมเชงออปเจ.ค  ว+เคราะหIปjญหาโดยมองปjญหาว?าประกอบไปดวยออปเจBคต?างๆ  จ>าลองค:ณล7กษณะและพฤต+กรรมของออปเจBค  ออปเจ.คจะส+งข$อม/ลกนโดยผ+ นข+ วส ร (Message)  แตกต+ งจากภ ษ เช+งกระบวนการทว+เคราะหIปjญหาโดยพ+จารณาจากล>าด7บ การท>างานและแบ+งก รท ง นของโปรแกรมต มฟ3งกชนต+ งๆ
  • 10. ระบบทะเบยนนกศ6กษ  วธก รเช+งกระบวนการ  วธแบบเชงออปเจ.ค • ลงทะเบยนร ยวช • นกศ6กษ • ช ระเงน • ใบลงทะเบยน • เพมวช • ร ยช7อร ยวช
  • 11. ออปเจBคชน+ดนกศ6กษ  ค:ณล7กษณะ • ชWอ • รห7สน7กศmกษา • เกรดเฉล4Wย  พฤต+กรรม • ลงทะเบยน • เพมหรอถอนวช
  • 12. ข$อดของก รพฒน โปรแกรมเชงออปเจ.ค  แนวค+ดการว+เคราะหIปjญหาใกลเค4ยงก7บธรรมชาต+ของมน:ษยI  ระบบจรง (real life) แบ+งต มออปเจ.ค ไม+ไดข68นอย?กบฟ3งกช W นก รท ง น ช7  ขบวนการพ7ฒนาโปรแกรมท>าไดรวดเรBวขmน  ง+ ยต+อก รพฒน และแก$ไข  น>าโปรแกรมกล7บมาใชใหม?ไดง?าย
  • 13. ประวตของภ ษ จ ว  พ7ฒนาขmนโดยท4มว+จ7ยของบรษทซ7นไมโครซ+สเตBมสI (Sun Microsystems)  พฒน ม จ กโครงก รทต$องก รพฒน ระบบซอฟตแวรเพ7อควบคมเคร7องใช$ ไฟฟ9 ขน ดเล.กภ ยในบ$ น  ช7อเดมค7อภาษา Oak ต?อมาเปล4WยนชWอเปgนภาษาจาวา  ภาษาจาวาเร+มเปgนท4Wนยมแพร?หลายในปp ค.ศ. 1995 W +  ภาษาจาวาเปgนภาษาท4Wไม?ขนก7บแพลตฟอรIม (platform independent) m  JDK 1.0 ประกาศใชเมWอปp 1996  JDK เวอรIช7นปjจจ:บ7นคอ 6
  • 14. โลโก$และ Mascot ภ ษ Java  James Gosling ค7อบด ภษจว  โลโก$ภ ษ จ ว เป,นร/ปแก$วก แฟ  Duke เป,น Mascot ภ ษจว
  • 15. องคประกอบของเทคโนโลยจ ว  JVM (Java Virtual Machine) • ท>าหนาท4เปgนอ+นเตอรIพร4ตเตอรI W  JRE (Java Runtime Environment) • ใชในการร7นโปรแกรม  JDK (Java Development Kit) • เปgนช:ดพ7ฒนาโปรแกรมภาษาจาวา
  • 16. JVM จ ว เทคโนโลยใช$ท8งคอมไพเลอรและอนเตอรพรตเตอร ในก รคอมไพลI และรนโปรแกรม  โปรแกรมภ ษ จ ว มซอรดโค$ดเป,น .java และจะแปลเป,นโปรแกรมไบทโค$ด (byte code) ทเป,น .class  โปรแกรมไบทโค$ดจะรนบนระบบคอมพวเตอร โดยใช$ JVM (Java Virtual Machine) ทเป,นอนเตอรพรตเตอร ซ6งจะแปลโปรแกรมไบทโค$ดให$เป,นภาษา เครWองท4ขmนอย?ก7บแพลตฟอรIมน7น W
  • 17. JVM  เครWองคอมพ+วเตอรIท4Wจะสามารถร7นโปรแกรมไบทIโคดไดจะตองม4 JVM อย?  JVM อาจเปgนซอฟตIแวรIหรอฮารIดแวรI  ในปjจจ:บ7น JVM ม4อย?ใน • ระบบปฏ+บ7ต+การคอมพ+วเตอรIตางๆ ? • โปรแกรมเวBบบราวเซอรI • เครWองใชไฟฟzาต?างๆ • โทรศ7พทI • เครWองมอสWอสาร • สมารIทการIด
  • 19. JRE  JRE จะรนโค$ดทแปลม จ ก JVM โดยจะท ง น 3 ข8นตอน ค7อ • โหลดไบทโค$ดโดยใช$ Class Loader • ตรวจสอบไบทโค$ดโดยใช$ Byte Code Verifier • รนไบทโค$ดโดยใช$ Runtime Interpreter
  • 21. JDK  JDK (Java Development Kit)  เด+มชWอ JDK แต?ตอมาเปล4WยนชWอเปgน J2 ต7งแต? JDK 1.2 ?  โปรแกรม JDK • javac.exe : โปรแกรมคอมไพเลอรI • java.exe : โปรแกรมอ+นเตอรIพร4ตเตอรI (JVM)  JDK ไม?ใช? โปรแกรมแบบ SDK (Software Development Kit) จmงไม?ม4อ+ด4เตอรI ในการเข4ยนโปรแกรม
  • 22. Java SDK และ Java Editor  Java SDK • Netbeans ของบร+ษ7ท Sun Microsystems (http://www.netbeans.org) • Eclipse ของบร+ษ7ท IBM (http://eclipse.org) • JDeveloper ของบร+ษ7ท Oracle (http://www.oracle.com) • intelliJ IDEA ของบร+ษ7ท JetBrains (http://www.jetbrains.com/idea)  Java Editor • EditPlus ของบร+ษ7ท ES-Computing (http://www.editplus.com) • JCreator ของบร+ษ7ท Xinox Software (http://www.jcreator.com)
  • 23. จ:ดเด?นของภ ษ จ ว  ความง?าย (simple)  ภาษาเช+งออปเจBค (object oriented)  การกระจาย (distributed)  การปzองก7นการผ+ดพลาด (robust)  ความปลอดภ7ย (secure)  สถาปjตยกรรมกลาง (architecture neutral)  เคลWอนยายง?าย (portable)
  • 24. จ:ดเด?นของภ ษ จ ว  อ+นเตอรIพร4ต (interpreted)  ประส+ทธ+ภาพสง (high performance)  ม7ลต+เธรด (multithreaded)  พลว7ต (dynamic)
  • 25. Java Platform  แพลตฟอรมก.ค7อ ฮ รดแวรและ software environment ทจะใช$ในก รรน โปรแกรม  แพลตฟอรIมของภาษาจาวาประกอบดวย • Java Virtual Machine • Java Application Programming Interface (Java API)
  • 26. Java Platform  บร+ษทซ7นไมโครซ+สเตBมสIไดก>าหนดแพลตฟอรIมของ Java ไวสามรปแบบคอ 7 • Java Platform, Standard Edition (Java SE) • Java Platform, Enterprise Edition (Java EE) • Java Platform, Micro Edition (Java ME)
  • 27. JavaTM 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
  • 28. JavaTM Platform, Standard Edition 6  Java SE เป,นแพลตฟอรมพ7นฐ 8 นของภ ษ จ ว ส หรบพฒน บนเคร7องคอมพวเตอรทวไป  เดมช7อ J2SE  เวอรชนล+ สดค7อ Java SE 6
  • 29. JavaTM Platform, Enterprise Edition  Java EE เป,นแพลตฟอรมของภ ษ จ ว ส หรบพฒน โปรแกรมบนเคร7อง แม+ข+ ย  ต$องมเคร7องแม+ข+ ยทมโปรแกรม Web Server หร7อ Application Server  ใช$พฒน โปรแกรมขน ดใหญ+ส หรบองคกร  ตวอย+ งเช+นก รพฒน โปรแกรมบน Web เช+น โปรแกรมของ Yahoo, E-Bay ภ ษ อ7นๆทเขยนค7อ PHP หร7อ ASP.NET  เวอรชนล+ สดค7อ Java EE 5
  • 30. JavaTM Platform, Mobile Edition  Java ME เป,นแพลตฟอรมของภ ษ จ ว ส หรบพฒน โปรแกรมส หรบ อปกรณขน ดเล.กเช+น โทรศพทม7อถ7อ รพฒน โปรแกรมบนโทรศพทม7อถ7อเช+นเคร7อง Nokia ทรนบน  นยมใช$ในก ระบบปฎบตก ร Symbian  ป3จจบนมก รออกแพลตฟอรมในก รพฒน จ ว บนโทรศพทม7อถ7อแบบ อ7นๆเช+น Android, Java FX
  • 31. โปรแกรมจ ว พพ78นฐ น (Java SE)  โปรแกรมจาวาประย:กตI (Java Application) • โปรแกรมใช$ง นทวไป • โปรแกรมท>างานภายใตจาวาอ+นเตอรIพร4ตเตอรI • โปรแกรมแบบ Standalone  โปรแกรมจาวาแอปเพลBต (Java Applet) • โปรแกรมทท>างานภายใตโปรแกรมเวบบร วเซอรท4ม4 JVM W
  • 32. ก รสรางโปรแกรมจ ว ประย:กตI  เข4ยนซอรIดโคด  HelloWorld.java  คอมไพลIโปรแกรม javac HelloWorld.java → HelloWorld.class  ร7นโปรแกรม java HelloWorld
  • 33. HelloWorld.java public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World"); } }
  • 36. ก รสรางโปรแกรมจ ว แอปเพลBต  โปรแกรมจ ว แอปเพลBตจะมไฟลทเขยนข68นสองไฟลค7อ • โปรแกรมซอรIดโคด (.java) • โปรแกรมเวBบเพจ (.html)  ข7นตอนการท>างาน • เข4ยนโปรแกรมซอรIดโคด  HelloWorldApplet.java • คอมไพลIโปรแกรม  HelloWorldApplet.class • ใชโปรแกรมเวBบบราวเซอรIใดๆเป‚ดโปรแกรม HelloWorld.html
  • 37. HelloWorldApplet.java import java.awt.*; import java.applet.*; public class HelloWorldApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello World",20,20); } }
  • 38. HelloWorld.html <HTML> <HEAD> <TITLE>HelloWorld Example</TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorldApplet.class" WIDTH="300" HEIGHT="300"> </APPLET> </BODY> </HTML>
  • 41. Java API Documentation  เอกส รในร/ปแบบของ HTML ทอธบ ยข$อม/ลเกยวกบ API (Application Programming Interface) ของภ ษ จ ว ส ม รถทจะ download ได$จ ก http://java.sun.com  เรยกด/ online ได$ท http://java.sun.com/javase/6/docs/api/index.html
  • 42. ค?มอ Java API  Java API เป,นข$อก หนดทว+ ด$วยคล สและอนเตอรเฟสต+ งๆทก หนดไว$ใน แพคเก.จม ตร ฐ นของภ ษ จ ว  ค?มอ Java API จะแสดงรายละเอ4ยดต?างๆของคลาสหรออ+นเตอรIเฟสด7งน4 • ล>าด7บการสบทอดของคลาส • ค>าอธ+บายเก4Wยวก7บคลาสและจ:ดประสงคIทวไป 7W • รายชWอค:ณล7กษณะต?างๆ ของคลาส • รายชWอเมธอดต?างๆ ของคลาส • รายชWอ Constructor ต?างๆ ของคลาส • ค>าอธ+บายรายละเอ4ยดของค:ณล7กษณะแต?ละต7วของคลาส • ค>าอธ+บายรายละเอ4ยดของเมธอดแต?ละต7วของคลาส • ค>าอธ+บายรายละเอ4ยดของConstructor แต?ละต7วของคลาส
  • 44. สร:ปเนอหาของบท  ภาษาระด7บสงแบ?งออกเปgนสองประเภทคอ ภาษาเช+งกระบวนการ และภาษา เช+งออปเจBค  ภาษาจาวาเปgนภาษาเช+งออปเจBคท4ใชท7งต7วแปลภาษาแบบคอมไพเลอรIและ W อ+นเตอรIพร4ตเตอรIในการคอมไพลIและร7นโปรแกรม  คอมไพเลอรIของภาษาจาวาจะท>าหนาท4แปลโปรแกรมภาษาจาวาใหเปgนโปร W แกรมไบทIโคด ซmงจะใชอ+นเตอรIพร4ตเตอรI (JVM) ในการแปลโปรแกรมไบทI W โคดใหเปgนภาษาเครWอง  โปรแกรมภาษาจาวาสามารถท>างานขามแพลตฟอรIมไดถาระบบ คอมพ+วเตอรIน7นม4 JVM อย?  แพลตฟอรIมของจาวาประกอบไปดวย JVM และ Java API ซmWง Java ม4 แพลตฟอรIม 3 แบบคอ Java SE, Java EE และ Java ME
  • 45. สร:ปเนอหาของบท  ช:ดพ7ฒนาโปรแกรมภาษาจาวา JDK ประกอบไปดวยโปรแกรมต?างๆท4Wส>าค7ญ คอ โปรแกรมคอมไพเลอรI (javac.exe) และโปรแกรมอ+นเตอรI พร4ตเตอรI (java.exe)  โปรแกรมจาวาท4Wอย?บนแพลตฟอรIม Java SE สามารถพ7ฒนาไดสองรปแบบ คอโปรแกรมจาวาประย:กตIซงจะท>างานภายใต JVM โดยตรง และโปรแกรม mW จาวาแอปเพลBตซmงจะท>างานภายใตเวBบบราวเซอรIท4Wม4 JVM W  ค?มอ Java API จะช?วยในการคนหารายละเอ4ยดของแพคเกBจและคลาสต?างๆ ท4Wม4อย?ในช:ดพ7ฒนาโปรแกรม JDK
  • 46. แบบฝ„กห7ด  ต+ดต7ง NetBeans 6.5  แบบฝ„กห7ดท4W 1 การเข4ยนโปรแกรมจาวาประย:กตIอย?างง?าย • เข4ยนโปรแกรมจาวาประย:กตIเพWอแสดงขอความ Hello World  แบบฝ„กห7ดท4W 2 การเข4ยนโปรแกรมจาวาแอปเพลBตอย?างง?าย • เข4ยนโปรแกรมจาวาแอปเพลBตเพWอแสดงขอความ Welcome to Java  แบบฝ„กห7ดท4W 3 การใชค?มอ Java API