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

12,883 views

Published on

2 Comments
18 Likes
Statistics
Notes
No Downloads
Views
Total views
12,883
On SlideShare
0
From Embeds
0
Number of Embeds
6,111
Actions
Shares
0
Downloads
0
Comments
2
Likes
18
Embeds 0
No embeds

No notes for slide

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

  1. 1. บทท 1 ความรเบองตนของภาษาจาวา (Introduction to Java Programming) ผศ.ธน+ศา เครอไวศยวรรณ คณะเทคโนโลย4สารสนเทศ สถาบ7นเทคโนโลย4พระจอมเกลาเจาค:ณทหารลาดกระบ7ง
  2. 2. วตถประสงค  แนะน>าความแตกต?างระหว?างภาษาเช+งกระบวนการ และภาษาเช+งออปเจBค  แนะน ประว7ตโดยย?อและเทคโนโลย4จ ว +  อธบ ยหลกก รของ Java Virtual Machine (JVM) และ Java Platform  แนะน ซอฟตแวรทใช$ในก รพฒน โปรแกรมภ ษ จ ว  แนะน>าจ:ดเด?นของภาษา  อธบ ยและแสดงต7วอย?างของโปรแกรมจาวาประย:กตIและโปรแกรมจาวา แอปเพลBต  แนะน>าว+ธการใชค?มอ Java API 4
  3. 3. ระบบคอมพวเตอร  ฮารIดแวรI เช?น  ระบบปฏ+บ7ตการ เช?น Windows Vista, Linux +  โปรแกรมประย:กตI เช?น Microsoft Office, Web Browser
  4. 4. ภ ษ คอมพ+วเตอรI  ภาษาเคร+อง (Machine Language) W  ภาษาแอสเซมบล4 (Assembly Language)  ภาษาระด7บสง (High-Level Langugae)
  5. 5. ภ ษ ระด7บสง  ภาษาคอมพ+วเตอรIย:คแรก • FORTRAN, COBOL, BASIC  ภาษาเช+งกระบวนการ (Procedural Language) • PASCAL, C  ภาษาเช+งออปเจBค (Object Oriented Programming; OOP) • C++, Java, C#
  6. 6. ตวแปลภ ษ  แบ+งออกเป,นสองแบบ  คอมไพเลอร (Compiler) • C++, FORTRAN  อนเตอรพรตเตอร (interpreter) • Java, C#
  7. 7. ตวแปลภ ษ  คอมไพเลอร  อนเตอรพรตเตอร
  8. 8. ภ ษ เช+งกระบวนการ และภาษาเช+งออปเจBค  ภาษาเช+งกระบวนการ • โปรแกรมจะแบ?งออกเปgนส?วนย?อยๆท4เร4ยกว?าโมดล (module) W • แต?ละโมดลจะตองเปgนอ+สระต?อก7น • การออกแบบใหแต?ละโมดลม4ความเปgนอ+สระต?อก7นน7นท>าไดยาก • ตนท:นในการพ7ฒนาโปรแกรมสง  ภาษาเช+งออปเจBค • การพ7ฒนาโปรแกรมเปgนการเล4ยนแบบการท>างานเช+งออปเจBค • สามารถน>าโปรแกรมกล7บมาใชใหม? (reuse) ไดด4กว?าภาษาเช+งกระบวนการ
  9. 9. โปรแกรมเชงออปเจ.ค  ว+เคราะหIปjญหาโดยมองปjญหาว?าประกอบไปดวยออปเจBคต?างๆ  จ>าลองค:ณล7กษณะและพฤต+กรรมของออปเจBค  ออปเจ.คจะส+งข$อม/ลกนโดยผ+ นข+ วส ร (Message)  แตกต+ งจากภ ษ เช+งกระบวนการทว+เคราะหIปjญหาโดยพ+จารณาจากล>าด7บ การท>างานและแบ+งก รท ง นของโปรแกรมต มฟ3งกชนต+ งๆ
  10. 10. ระบบทะเบยนนกศ6กษ  วธก รเช+งกระบวนการ  วธแบบเชงออปเจ.ค • ลงทะเบยนร ยวช • นกศ6กษ • ช ระเงน • ใบลงทะเบยน • เพมวช • ร ยช7อร ยวช
  11. 11. ออปเจBคชน+ดนกศ6กษ  ค:ณล7กษณะ • ชWอ • รห7สน7กศmกษา • เกรดเฉล4Wย  พฤต+กรรม • ลงทะเบยน • เพมหรอถอนวช
  12. 12. ข$อดของก รพฒน โปรแกรมเชงออปเจ.ค  แนวค+ดการว+เคราะหIปjญหาใกลเค4ยงก7บธรรมชาต+ของมน:ษยI  ระบบจรง (real life) แบ+งต มออปเจ.ค ไม+ไดข68นอย?กบฟ3งกช W นก รท ง น ช7  ขบวนการพ7ฒนาโปรแกรมท>าไดรวดเรBวขmน  ง+ ยต+อก รพฒน และแก$ไข  น>าโปรแกรมกล7บมาใชใหม?ไดง?าย
  13. 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. 14. โลโก$และ Mascot ภ ษ Java  James Gosling ค7อบด ภษจว  โลโก$ภ ษ จ ว เป,นร/ปแก$วก แฟ  Duke เป,น Mascot ภ ษจว
  15. 15. องคประกอบของเทคโนโลยจ ว  JVM (Java Virtual Machine) • ท>าหนาท4เปgนอ+นเตอรIพร4ตเตอรI W  JRE (Java Runtime Environment) • ใชในการร7นโปรแกรม  JDK (Java Development Kit) • เปgนช:ดพ7ฒนาโปรแกรมภาษาจาวา
  16. 16. JVM จ ว เทคโนโลยใช$ท8งคอมไพเลอรและอนเตอรพรตเตอร ในก รคอมไพลI และรนโปรแกรม  โปรแกรมภ ษ จ ว มซอรดโค$ดเป,น .java และจะแปลเป,นโปรแกรมไบทโค$ด (byte code) ทเป,น .class  โปรแกรมไบทโค$ดจะรนบนระบบคอมพวเตอร โดยใช$ JVM (Java Virtual Machine) ทเป,นอนเตอรพรตเตอร ซ6งจะแปลโปรแกรมไบทโค$ดให$เป,นภาษา เครWองท4ขmนอย?ก7บแพลตฟอรIมน7น W
  17. 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ด
  18. 18. ข7นตอนการท>างานของโปรแกรมภาษาจาวา
  19. 19. JRE  JRE จะรนโค$ดทแปลม จ ก JVM โดยจะท ง น 3 ข8นตอน ค7อ • โหลดไบทโค$ดโดยใช$ Class Loader • ตรวจสอบไบทโค$ดโดยใช$ Byte Code Verifier • รนไบทโค$ดโดยใช$ Runtime Interpreter
  20. 20. ข7นตอนการท>างานของ JRE
  21. 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. 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. 23. จ:ดเด?นของภ ษ จ ว  ความง?าย (simple)  ภาษาเช+งออปเจBค (object oriented)  การกระจาย (distributed)  การปzองก7นการผ+ดพลาด (robust)  ความปลอดภ7ย (secure)  สถาปjตยกรรมกลาง (architecture neutral)  เคลWอนยายง?าย (portable)
  24. 24. จ:ดเด?นของภ ษ จ ว  อ+นเตอรIพร4ต (interpreted)  ประส+ทธ+ภาพสง (high performance)  ม7ลต+เธรด (multithreaded)  พลว7ต (dynamic)
  25. 25. Java Platform  แพลตฟอรมก.ค7อ ฮ รดแวรและ software environment ทจะใช$ในก รรน โปรแกรม  แพลตฟอรIมของภาษาจาวาประกอบดวย • Java Virtual Machine • Java Application Programming Interface (Java API)
  26. 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. 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. 28. JavaTM Platform, Standard Edition 6  Java SE เป,นแพลตฟอรมพ7นฐ 8 นของภ ษ จ ว ส หรบพฒน บนเคร7องคอมพวเตอรทวไป  เดมช7อ J2SE  เวอรชนล+ สดค7อ Java SE 6
  29. 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. 30. JavaTM Platform, Mobile Edition  Java ME เป,นแพลตฟอรมของภ ษ จ ว ส หรบพฒน โปรแกรมส หรบ อปกรณขน ดเล.กเช+น โทรศพทม7อถ7อ รพฒน โปรแกรมบนโทรศพทม7อถ7อเช+นเคร7อง Nokia ทรนบน  นยมใช$ในก ระบบปฎบตก ร Symbian  ป3จจบนมก รออกแพลตฟอรมในก รพฒน จ ว บนโทรศพทม7อถ7อแบบ อ7นๆเช+น Android, Java FX
  31. 31. โปรแกรมจ ว พพ78นฐ น (Java SE)  โปรแกรมจาวาประย:กตI (Java Application) • โปรแกรมใช$ง นทวไป • โปรแกรมท>างานภายใตจาวาอ+นเตอรIพร4ตเตอรI • โปรแกรมแบบ Standalone  โปรแกรมจาวาแอปเพลBต (Java Applet) • โปรแกรมทท>างานภายใตโปรแกรมเวบบร วเซอรท4ม4 JVM W
  32. 32. ก รสรางโปรแกรมจ ว ประย:กตI  เข4ยนซอรIดโคด  HelloWorld.java  คอมไพลIโปรแกรม javac HelloWorld.java → HelloWorld.class  ร7นโปรแกรม java HelloWorld
  33. 33. HelloWorld.java public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World"); } }
  34. 34. ต7วอย?างการใช Java IDE
  35. 35. ร/ปแสดงข8นตอนก รท ง น
  36. 36. ก รสรางโปรแกรมจ ว แอปเพลBต  โปรแกรมจ ว แอปเพลBตจะมไฟลทเขยนข68นสองไฟลค7อ • โปรแกรมซอรIดโคด (.java) • โปรแกรมเวBบเพจ (.html)  ข7นตอนการท>างาน • เข4ยนโปรแกรมซอรIดโคด  HelloWorldApplet.java • คอมไพลIโปรแกรม  HelloWorldApplet.class • ใชโปรแกรมเวBบบราวเซอรIใดๆเป‚ดโปรแกรม HelloWorld.html
  37. 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. 38. HelloWorld.html <HTML> <HEAD> <TITLE>HelloWorld Example</TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorldApplet.class" WIDTH="300" HEIGHT="300"> </APPLET> </BODY> </HTML>
  39. 39. ร/ปแสดงข8นตอนก รท ง น
  40. 40. ต7วอย?างการร7นโปรแกรมบนเวBบบราวเซอรI
  41. 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. 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วของคลาส
  43. 43. ต7วอย?าง Java API
  44. 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. 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. 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

×