Contenu connexe Similaire à Java Programming [1/12] : Introduction (20) Plus de IMC Institute (20) Java Programming [1/12] : Introduction1. บทที่ 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>
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
ื