การโปรแกรม การออกแบบและกา

Download Report

Transcript การโปรแกรม การออกแบบและกา

แนวคิดเชิงวัตถุก่อนการเขียนโปรแกรมจาวา
อาจารย์ รัชดาพร คณาวงษ์
สาขาวิชาวิทยาการคอมพิวเตอร์ ภาควิชาคณิตศาสตร์
คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร
แนวความคิดภาษาเชิงวัตถุ
• การเน้นที่ปัญหาและองค์ประกอบของปัญหาเพื่อการแก้ปัญหานั้น เราเรี ยกว่า
Problem space
• เหมือนการจาลองความเป็ นจริ งในชีวิตความเป็ นอยูข่ องมนุษย์ที่จะ
ประกอบด้วย คน สัตว์ สิ่ งของ และใช้สิ่งต่างๆ เพื่อแก้ปัญหา คือแต่ละสิ่ ง มี
หน้าที่ในการแก้ปัญหา
ต้องการหาความบันเทิงด้วยดนตรี
ก็ตอ้ งมีสิ่งต่างๆ คือเครื่ องดนตรี และ
คนเล่นดนตรี เป็ นต้น
อ.รัชดาพร คณาวงษ์
2
อ.รัชดาพร คณาวงษ์
3
ตัวอย่างปัญหากับการมองปัญหาแบบเก่า
• ปัญหาการหาพื้นที่รูปสี่ เหลี่ยมผืนผ้าใดๆ
แนวคิดการแก้ปัญหาแบบเก่า
1. เราสามารถหาพื้นที่สี่เหลี่ยมผืนผ้าโดยใช้สูตร
พื้นที่สี่เหลี่ยม = กว้าง x ยาว
2. ดังนั้นจะต้องทราบความกว้างและความยาวของสี่ เหลี่ยมเสี ยก่อน
นามาสรุ ปเป็ นขั้นตอนดังนี้
1. รับค่าข้อมูลเข้ามาเป็ น ความกว้างและความยาวของสี่ เหลี่ยม
2. นามาคานวณ โดยให้ พื้นที่สี่เหลี่ยม = ความกว้าง x ความยาว
3. แสดงพื้นที่สี่เหลี่ยมออกทางหน้าจอ
อ.รัชดาพร คณาวงษ์
4
ตัวอย่างปัญหากับการมองปัญหาแบบใหม่
• ปัญหาการหาพื้นที่รูปสี่ เหลี่ยมผืนผ้าใดๆ
แนวคิดการแก้ปัญหาแบบใหม่
1. ในระบบนี้จะต้องประกอบด้วยวัตถุที่จาเป็ นใดบ้าง
A. หาวัตถุที่เกี่ยวข้อง เช่น สี่ เหลี่ยม ความกว้าง ความยาวและพื้นที่
B. ตัดวัตถุที่มีลกั ษณะเหมือนกันออก
C. วิเคราะห์ลกั ษณะของแต่ละวัตถุ เช่นสี่ เหลี่ยมควรมีส่วนประกอบเป็ น
ตาแหน่ง ความกว้าง ความยาว และพื้นที่เป็ นต้น ดังนั้นเราสามารถรวม
พื้นที่ ความกว้างและความยาว เป็ นของสี่ เหลี่ยม
D. วิเคราะห์พฤติกรรมของแต่ละวัตถุ ตอนนี้มีวตั ถุเดียวสี่ เหลี่ยมอาจจะต้อง
คานวณเส้นรอบรู ป คานวณพื้นที่ วาดตัวเอง เป็ นต้น
อ.รัชดาพร คณาวงษ์
5
ตัวอย่างปัญหากับการมองปัญหาแบบใหม่ (ต่อ)
• นี้คือวัตถุสี่เหลี่ยมผืนผ้า
ลักษณะ
ความกว้าง
ความยาว
พืX
น้ ที่
พฤติกรรม
คานวณความยาวเส้นรอบรู ป
คานวณพื้นที่
วาดตัวเอง
• ตอนนี้เราทราบว่าจะมีวตั ถุใดอยูใ่ นระบบบ้าง ขั้นตอนต่อมาคือเราต้องหา
ความสัมพันธ์ของแต่ละวัตถุ แต่ในที่น้ ีมีวตั ถุเดียวจึงไม่ตอ้ งทา
อ.รัชดาพร คณาวงษ์
6
แนวคิดของเอลัน เคย์ (Alan Kay)
เป็ นผูห้ นึ่งที่พฒั นาภาษา small Talk ซึ่งเป็ นต้นแบบของการเขียน
โปรแกรมเชิงวัตถุ ได้ให้นิยามของภาษาเชิงวัตถุไว้ดงั นี้
• ทุกๆ สิ่ งเป็ นวัตถุ
• โปรแกรม คือ กลุ่มของวัตถุที่ส่งสารบอกกันเพื่อทางาน
• วัตถุแต่ละวัตถุมีหน่วยความจา
• วัตถุตอ้ งมีชนิด
• วัตถุที่จดั อยูใ่ นประเภทเดียวกันย่อมได้รับข่าวสารเหมือนกัน
อ.รัชดาพร คณาวงษ์
7
ทุกๆ สิ่ งเป็ นวัตถุ
• องค์ประกอบของโปรแกรมคอมพิวเตอร์ทุก ๆ ส่ วนจะต้องเป็ นวัตถุซ่ ึงกฎข้อนี้
เองที่ทาให้ล่ามแปลภาษาส่ วนมากรวมทั้งภาษาจาวา (JAVA) ด้วย ไม่เป็ น
ภาษาเชิงวัตถุแบบบริ สุทธิ์เพราะในล่ามแปลภาษา (JAVA) ยังมีบางส่ วนที่
ไม่เป็ นวัตถุ เช่น การกาหนดตัวแปร เป็ นต้น
อ.รัชดาพร คณาวงษ์
8
โปรแกรมคือกลุ่มของวัตถุ
• โปรแกรมในความหมายของการเขียนโปรแกรมเชิงวัตถุ ก็คือ กลุ่มของวัตถุที่
ส่ งข้อความข่าวสาร(Message) ถึงกันและกันเพื่อบอกให้วตั ถุทางาน
อ.รัชดาพร คณาวงษ์
9
วัตถุมีหน่วยความจา
• วัตถุในความหมายของการเขียนโปรแกรมเชิงวัตถุ จะต้องมีหน่วยความจาของ
ตัวเอง หรื อนัน่ คือส่ วนที่เก็บข้อมูลส่ วนของวัตถุน้ นั ๆ เองซึ่งเราเรี ยกว่า
attribute
• ส่ วนของข้อมูลนี้อาจจะประกอบขึ้นจากวัตถุอื่นๆ ได้
• เป็ นที่มาของการเกิดคุณสมบัติการถ่ายทอดและคุณสมบัติขององค์ประกอบ
คอมโพสิ ต
อ.รัชดาพร คณาวงษ์
10
หน่วยความจาคอมพิวเตอร์
อ.รัชดาพร คณาวงษ์
11
วัตถุจะต้องจัดอยูใ่ นกลุ่มหรื อชนิด
• ชนิดของวัตถุดงั กล่าวก็คือคลาส
• ในการเขียนโปรแกรมเชิงวัตถุจะต้องเขียนคลาสขึ้นมาก่อนเสมอ แล้วจึงจะ
สร้างวัตถุจากคลาส ดังนั้นวัตถุจึงจะต้องอยูใ่ นคลาสใดคลาสหนึ่ง
• ดังนั้นคลาสเปรี ยบเหมือนแม่พิมพ์ ส่ วนวัตถุกค็ ือสิ่ งที่เกิดจากแม่พิมพ์ วัตถุที่
เกิดจากคลาสเดียวกันจึงมีคุณสมบัติพ้นื ฐานเหมือนกัน
อ.รัชดาพร คณาวงษ์
12
ตัวอย่างชนิดของวัตถุและวัตถุ
:siemens
MobilePhone
String bandname
Button button
Screen screen
Antenna antenna
Simm simNet
call()
receive()
hangup()
sendSMS()
อ.รัชดาพร คณาวงษ์
:ericsson
:nokia
13
วัตถุชนิดเดียวกันย่อมได้ข่าวสารเหมือนกัน
• วัตถุที่อยูใ่ นประเภทเดียวกันย่อมได้ข่าวสารเหมือนกัน คุณสมบัติขอ้ นี้ทาให้การเขียน
โปรแกรมเชิงวัตถุมีประสิ ทธิ ภาพเพิม่ ขึ้นเพราะชนิ ดของวัตถุมิได้กาหนดหรื ออยูอ่ ย่างโดด
ๆ แต่สามารถจัดเป็ นกลุ่ม ผูเ้ ขียนคาสั่งสามารถกาหนดชนิ ดย่อย ๆ ของวัตถุได้อีก เช่น
คลาสคือ shape เราสามารถแตกออกเป็ นชนิดที่จาเพาะลงไปเป็ น Circle,
Triangle, Rectangle เป็ นต้น ดังนั้นเมื่อวัตถุในคลาส Circle สามารถ
ได้รับข่าวสารเหมือนกับ Triangle และ Rectangle
อ.รัชดาพร คณาวงษ์
14
คุณสมบัติของภาษาการโปรแกรมเชิงวัตถุ
• คุณสมบัติของภาษาที่เป็ นการโปรแกรมเชิงวัตถุควรมีคุณสมบัติพ้ืนฐาน
ดังต่อไปนี้
–
–
–
–
Encapsulation (การห่อหุ ม้ วัตถุ)
Data Hiding (การซ่อนรายละเอียด)
Inheritance (การสื บทอด)
Polymorphism (การพ้องรู ป)
อ.รัชดาพร คณาวงษ์
15
Encapsulation (การห่อหุม้ วัตถุ)
• คือการรวมคุณลักษณะของวัตถุและพฤติกรรมของวัตถุเข้าไว้ดว้ ยกัน โดย
กาหนดให้เป็ นลักษณะชนิดของวัตถุน้ นั ๆ
data
data
data
data
function
Encapsulation
data
data data
function
อ.รัชดาพร คณาวงษ์
data
data
function
function
16
Data Hiding
• คือการกาหนดระดับในการเข้าถึงข้อมูล เพื่อป้ องกันการเข้ามาใช้ขอ้ มูลของ
วัตถุโดยสิ่ งอื่นที่ไม่เกี่ยวข้องแล้วทาให้เกิดการผิดเพี้ยนของการทางานทั้งระบบ
ดังนั้นข้อมูลบางอย่างเราไม่ยนิ ยอมให้วตั ถุอื่นใดมาใช้งานได้ เราก็จาเป็ นต้อง
ซ่อนรายละเอียดตรงจุดนี้เอาไว้ เพื่อให้เกิดความปลอดภัยของวัตถุและระบบ
โดยรวมให้มากที่สุด เช่น
อ.รัชดาพร คณาวงษ์
โทรศัพท์
หมายเลขเครื่ อง
ปุ่ มกด 0..9
หน้ากาก
โทรออก()
รับสาย()
จะเห็นว่า หมายเลขเครื่ อง ไม่ควรเปลี่ยนแปลง ดังนั้นข้อมูลนี้
จึงควรซ่อนไว้ ส่ วนปุ่ มกดก็เช่นกัน แต่หน้ากากอาจเปลี่ยนได้
เป็ นต้น
17
Inheritance (การสื บทอด)
• เป็ นการขยายลักษณะพิเศษหรื อความสามารถของชนิดวัตถุใหม่จากชนิดวัตถุ
พื้นฐานให้มีลกั ษณะของเดิมและเพิ่มเติมสิ่ งใหม่ๆ เข้าไปด้วย
มนุษย์
ประชาชน
นักเรี ยน
ชื่อ
วันเดือนปี เกิด
เพศ
กิน()
เคลื่อนที่()
ขับถ่าย
เชื้อชาติ
สัญชาติ
เลขประจาตัว
ระดับการศึกษา
ความสามารถ
อ.รัชดาพร คณาวงษ์
สื่ อสาร()
อ่าน()
เขียน()
18
composition
• คุณสมบัติของ inheritance ทาให้การโปรแกรมเชิงวัตถุมีขอ้ ดีคือ
สามารถสร้างงานต่างๆ ได้เร็ วเพราะสามารถนาของเก่ามาใช้งานใหม่ได้
เรี ยกว่า “reused”
• แต่กย็ งั มีลกั ษณะอีกอย่างที่ช่วยให้เกิด “reused” ได้เช่นกัน คือ
composition คือการสร้างวัตถุใดๆ ด้วยการประกอบจากวัตถุอื่น เช่น
นาฬิกา ประกอบด้วย แกนนับ เฟื อง เข็มสั้น เข็มยาว หน้าปัด เป็ นต้น
อ.รัชดาพร คณาวงษ์
19
Polymorphism (การพ้องรู ป)
• เป็ นคุณสมบัติที่ชนิดของวัตถุที่เกิดจากชนิดของวัตถุแม่เดียวกันสามารถมี
ความสามารถเหมือนแม่แต่ผลลัพธ์การดาเนินงานไม่เหมือน คือมีลกั ษณะ
เฉพาะตัว เช่น
สัตว์มีปีก::บิน()
นก::บิน()
กระพือปี กขึ้นลง
อ.รัชดาพร คณาวงษ์
แมลงปอ::บิน()
กางปี กรับลม
ผึ้ง::บิน()
กระพือปี กถี่เร็ ว
20
มารู้จกั คลาสและวัตถุกนั
• คลาสเป็ นเหมือนส่ วนของแม่พิมพ์ เพื่อบอกลักษณะว่าวัตถุในคลาสนี้มี
ลักษณะและพฤติกรรมเป็ นอย่างไร
• วัตถุเป็ นสิ่ งที่ถูกสร้างขึ้นมาจากคลาสเพื่อใช้งาน กาหนดค่าต่างๆ ส่ งข้อความ
สัง่ ให้วตั ถุทางาน
คลาสสี่ เหลีย่ มผืนผ้า
คุณสมบัติ:กว้าง, ยาว
เมธทอด:คานวณพื้นที่
อ.รัชดาพร คณาวงษ์
วัตถุA:สี่ เหลีย่ มผืนผ้า
กว้าง 2 ยาว 3
เมธทอด:คานวณพื้นที่
21
การสร้างคลาส
• คลาสเปรี ยบเสมือนแม่พิมพ์ วัตถุเป็ นผลิตผลที่เกิดจากแม่พิมพ์ ดังนั้นการที่จะ
สร้างวัตถุได้จึงจาเป็ นต้องอาศัยแม่พิมพ์หรื อคลาสนี้
• โดยคลาสจะบ่งบอกถึงข้อมูลที่วตั ถุที่อยูใ่ นคลาสนี้ควรจะมี และพฤติกรรมที่
วัตถุในคลาสนี้สามารถทาได้
– ข้อมูลของวัตถุ เรี ยกว่า Attribute
– พฤติกรรมของวัตถุ เรี ยกว่า method
อ.รัชดาพร คณาวงษ์
22
เปรี ยบเทียบคลาสกับวัตถุ
อ.รัชดาพร คณาวงษ์
23
แนวคิดอัตประโยชน์จากการโปรแกรมเชิงวัตถุ
•
•
•
•
อ.รัชดาพร คณาวงษ์
การซ่อนรายละเอียด
การเชื่อมต่อ
การนาวัตถุมาใช้ใหม่
การพ้องรู ป: หนึ่งรู ปหลายพฤติกรรม
24
การซ่อนรายละเอียด(Information Hiding)
• มีผสู ้ งั เกตเห็นว่าในชีวิตประจาวันของเรานั้น ไม่จาเป็ นต้องทราบหรื อรู ้ทุกเรื่ อง
ก็สามารถใช้งานสิ่ งของนั้นๆ ได้ เช่น
โทรทัศน์ที่มีอยูต่ ามบ้าน เรา
ไม่ตอ้ งทราบการทางานของ
อุปกรณ์ภายในของมัน แต่
เราก็สามารถเปิ ดเครื่ องและ
ดูรายการโปรดของเราได้
เพียงรู ้วธิ ี การกดปุ่ มต่างๆ
อ.รัชดาพร คณาวงษ์
25
การเชื่อมต่อ(Interface)
• โดยปรกติจะเชื่อมต่อระหว่างผูใ้ ช้กบั คอมพิวเตอร์ เรี ยกว่า user
interface
แต่คาว่าอินเตอร์ เฟสสาหรับวัตถุคือ ส่ วนที่
บอกว่าวัตถุน้ นั ให้บริ การหรื อสามารถทา
อะไรได้บา้ ง
อ.รัชดาพร คณาวงษ์
26
การนาวัตถุมาใช้ใหม่(Reusable)
• จุดประสงค์ใหญ่ของการเขียนโปรแกรมเชิงวัตถุกค็ ือการนาส่ วนต่างๆ ของ
วัตถุที่สร้างขึ้นกลับมาใช้ใหม่หรื อที่เรี ยกในภาษาอังกฤษว่า “reuse” เมื่อมี
วัตถุถูกสร้างขึ้นมา ก็สามารถนาวัตถุต่างๆ มาประกอบกันเป็ นวัตถุอีกชนิด
หนึ่งได้ เพื่อให้วตั ถุใหม่มีความสามารถมากกว่าเดิม เช่นกรณี ของรถยนต์
สามารถประกอบขึ้นจาก เครื่ องยนต์ ตัวถัง ประตู และล้อ เป็ นต้น
อ.รัชดาพร คณาวงษ์
27
ตัวอย่างวัตถุที่เกิดจากวิธีคอมโพสิ ต
อ.รัชดาพร คณาวงษ์
28
การพ้องรู ป (Polymorphism)
• รากฐานของการพ้องรู ปคือคุณสมบัติการถ่ายทอด
• คุณสมบัติการถ่ายทอดยืนยันได้วา่ คลาสลูกที่เกิดจากคลาสแม่เดียวกันย่อมมี
คุณสมบัติเหมือนกัน
คลาสแม่คือ Shape
คลาสลูกคือ Circle, Triangle, Rectangle มีคุณสมบัติ
เหมือนคลาสแม่ทุกประการ
• เป็ นที่มาของหนึ่งรู ปหลายพฤติกรรม
อ.รัชดาพร คณาวงษ์
29
การถ่ายทอดให้เกิดลักษณะของพ้องรู ป
Shape
+draw()
+erase()
Circle
+draw()
+erase()
อ.รัชดาพร คณาวงษ์
Line
+draw()
+erase()
Rectangle
+draw()
+erase()
30
ภาษาโปรแกรมเชิงวัตถุ
• ในปี 1967 ภาษา Simula67 ถูกพัฒนาที่นอร์เวย์ เพื่อช่วยในการ
เขียนโปรแกรมสาหรับจาลอง (simulation)
• โดยทัว่ ไประบบที่ซบั ซ้อนจะประกอบด้วยวัตถุจานวนมากที่ทางานเกี่ยวข้อง
กัน โดยการสร้างโปรแกรมที่จาลองการทางานของแต่ละวัตถุไปที่ละขั้น
จนกว่าจะได้คาตอบ ซึ่งแนวคิดนี้เรี ยกว่า การโปรแกรมเชิงวัตถุ
• 1990s มีภาษาเก่าถูกเพิ่มเติมในส่ วนของการโปรแกรมเชิงวัตถุ แต่โดย
พื้นฐานของภาษาจึงทาให้กลไกไม่เป็ นเชิงวัตถุอย่างสมบูรณ์
อ.รัชดาพร คณาวงษ์
31
JAVA
• เป็ นผลิตผลจากบริ ษทั ซัน ไมโครซิสเต็ม ซึ่งในขณะนั้นได้คิดพัฒนาระบบ
ซอฟต์แวร์เพื่อใช้บนชิพของเครื่ องใช้ไฟฟ้ าขนาดเล็ก แต่ประสบปัญหากับการ
ใช้ภาษาซีพลัสพลัส(C++) ซึ่งเป็ นภาษาเชิงวัตถุที่นิยมในขณะนั้น จึงได้คิด
พัฒนาภาษาใหม่ที่เหมาะสมกว่า
• ปัญหาของภาษา C++ คือ
– ชิพของเครื่ องใช้ไฟฟ้ ามีหลายเบอร์หลายยีห่ อ้ ที่ชุดคาสัง่ ต่างกัน
– หน่วยความจาของเครื่ องใช้ไฟฟ้ ามีขนาดเล็ก
– ไม่มีความปลอดภัย
อ.รัชดาพร คณาวงษ์
32
การออกแบบของภาษาจาวา
•
•
•
•
•
เป็ นภาษาที่ง่าย ต่อการเรี ยนและเข้าใจ
เป็ นภาษาเชิงวัตถุ
เป็ นภาษาที่มีความคงทน เพราะมีการดักจับข้อผิดพลาด
เป็ นภาษาที่มีความปลอดภัย
เป็ นภาษาที่รันได้กบั เครื่ องทุกระบบ “จาวาเป็ นแพลตฟอร์ ม”
อ.รัชดาพร คณาวงษ์
33
สถาปัตยกรรมของจาวา
• สถาปัตยกรรมของจาวาประกอบด้วยส่ วนสาคัญ 4 ส่ วนหลักคือ
– Java programming language
– Java class file
– Java API (Application Programming Interface)
– Java VM (Java Virtual Machine)
• โดย Java API และ Java VM ทั้งสองรวมกันเรี ยกว่า Java
Platform
อ.รัชดาพร คณาวงษ์
34
สถาปัตยกรรมของจาวา
Java programming language
Java class file
Java API
Java Platform
Java Virtual Machine
Computer System
อ.รัชดาพร คณาวงษ์
35
Platform
• แพล็ตฟอร์ม (Platform) หมายถึง hardware หรื อ software
environment ที่โปรแกรมใช้ในการรัน
• ตัวอย่างของแพล็ตฟอร์ม เช่น
– Window2000, Linux, Solaris ที่ติดตั้งบน IBM compatible PC
– Mac OS ที่ติดตั้งบนเครื่ อง Mac เป็ นต้น
• โดยแพล็ตฟอร์มส่ วนใหญ่เป็ นการรวมกันของระบบปฏิบตั ิการ (operating
system) กับฮาร์ ดแวร์ (hardware)
• แต่ Java Platform คือ Software-only platform
อ.รัชดาพร คณาวงษ์
36
จาวาเป็ นแพลตฟอร์ม
• เนื่องจากจาวาได้ถูกพัฒนาเพื่อให้สามารถรันบนระบบใดก็ได้ ดังนั้นจาวาจึง
ได้สร้างแพลตฟอร์มของมันเองขึ้นมาเพื่อให้การแปลความของภาษาจาวาเป็ น
หนึ่งเดียวเท่านั้น
• จาวาได้นาแนวคิดการจาลองเครื่ องจักรสมมุติข้ ึนมาเรี ยกว่า java virtual
machine (JVM) เพื่อมาติดต่องานกับระบบที่มีอยู่
อ.รัชดาพร คณาวงษ์
37
จาวาและเครื่ องจักรสมมุติ
• แผนผังแสดงการติดต่อของจาวาและเครื่ องจักรสมมุติ
Java program
Java program
Java program
Java virtual machine
Windows
อ.รัชดาพร คณาวงษ์
Unix
Macintosh
38
แผนผังแสดงการทางานของภาษาจาวา
java compiler
Java program
Java virtual
machine program
java interpreter
อ.รัชดาพร คณาวงษ์
39
ขั้นตอนการดาเนินของโปรแกรมภาษาจาวา
คือโปรแกรมที่เราเขียนขึ้นโดยใช้ภาษา
จาวาซึ่งอยูใ่ นรู ปเท็กซ์ ที่สามารถอ่านได้ โดยมีนามสกุลของไฟล์ (.java)
เรี ยกว่า ซอร์ดโค้ด (source code)
• ทาการคอมไพล์ซอร์ดโค้ดเป็ น java class file หรื อ ไบต์โค้ด เป็ นไฟล์ที่มี
นามสกุล (.class) ซึ่งก็คือรู ปของคาสัง่ ที่ Java Virtual Machine เข้าใจ
• Java Programming Language
อ.รัชดาพร คณาวงษ์
40
API
• API คือโค้ดที่คอมไพล์แล้ว (compiled code) ซึ่ งช่วยให้โปรแกรม
สามารถดาเนินงานในส่ วนของ system services ของระบบปฏิบตั ิการ
• ชุด Java API มี 2 ชุดคือ
– Standard Edition API
– Standard Extension API
อ.รัชดาพร คณาวงษ์
41
Java Virtual Machine
• Java Virtual Machine คือส่ วนที่ไปติดต่องานโดยตรงต่อคอมพิวเตอร์
ภายในประกอบด้วย
– Class loader ทาหน้าที่โหลดไฟล์คลาสจากโปรแกรมและ Java API
• Bootstrap class loader
• User-defined class loader
– Execution Engine มีหลายรู ปแบบเพื่อจัดการไบต์โค้ด อาทิเช่น Just in
time, Adaptive optimizer
อ.รัชดาพร คณาวงษ์
42
Java Platform
• เนื่องจากจาวาถูกพัฒนามาเพื่อให้รันได้โดยไม่ข้ ึนกับระบบที่เป็ น
ระบบปฏิบตั ิการและฮาร์ดแวร์ แต่เนื่องจากระบบต่างๆ เหล่านี้มีจุดประสงค์ใน
การใช้งานแตกต่างกัน จึงได้ถูกออกแบบมาไม่เหมือนกัน ทางบริ ษทั ซันไมโค
รซิสเต็มจึงแบ่งจาวาแพล็ดฟอร์มออกเป็ น 3 รุ่ นเพื่อประโยชน์ในการใช้งาน
โปรแกรมจาวาในแต่ละอุปกรณ์ให้มีประสิ ทธิภาพที่สุด นัน่ คือ
– Java 2 Platform Standard Edition(J2SE)
– Java 2 Platform Enterprise Edition (J2EE)
– Java 2 Platform Micro Edition (J2ME)
อ.รัชดาพร คณาวงษ์
43
ก่อนการเขียนโปรแกรมด้วยภาษาจาวา
เราต้องทาการเตรี ยมสิ่ งต่อไปนี้เพื่อใช้ในการเขียนโปรแกรมจาวา
• เครื่ องมือในการสร้างและพัฒนาโปรแกรมภาษาจาวา ในที่น้ ีเราจะใช้ชุดพัฒนา
ของบริ ษทั ซันไมโครซิสเต็ม ที่เรี ยกว่า Java 2 SDK ภายใน Java 2
SDK จะประกอบด้วยส่ วนหลักคือ Java Compiler, Java Virtual
Machine, Java Class Libraries, Java AppletViewer,
Java Debugger และเครื่ องมืออื้นๆ
• เท็กซ์เอดิเตอร์ (Text Editor) ขอใช้ EditPlus เพราะมีหน้าตาที่สวยงาม
อ.รัชดาพร คณาวงษ์
44
แรกเริ่ มกับจาวา
• ดาวน์โหลดชุดพัฒนาภาษาจาวาที่เวบต์
http://java.sun.com/j2se
อ.รัชดาพร คณาวงษ์
Java virtual machine
Java Developer Kit
: JRE (Java Runtime Environment)
: JDK
45
ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา
• ดับเบิ้ลคลิกไอคอนนี้เพื่อทาการติดตั้ง
อ.รัชดาพร คณาวงษ์
46
ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา
อ.รัชดาพร คณาวงษ์
47
ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา
อ.รัชดาพร คณาวงษ์
48
กาหนดเส้นทางของคาสัง่ ในชุดพัฒนาภาษาจาวา
• คลิกขวาที่ไอคอน My computer
• เลือก properties จากเมนูบอ๊ บอัพ
• จะปรากฏหน้าต่างดังด้านขวา
• คลิก Environment variable
อ.รัชดาพร คณาวงษ์
49
กาหนดเส้นทาง(ต่อ)
• เลือก path จาก System variable
• คลิก Edit
• เพิม่ ข้อความในส่ วนแถบสี ฟ้า
;C:\j2sdk1.4.1_02\bin;.
อ.รัชดาพร คณาวงษ์
50
ขั้นตอนการสร้างโปรแกรมจาวา
A.java
1. editor
2. compiler
javac A.java
A.class
java A
javac filename.java
3. interpreter
java filename
อ.รัชดาพร คณาวงษ์
51
มารู้จกั ซอฟแวร์สาหรับสร้างโปรแกรมภาษา
• ซอฟต์แวร์ที่ใช้ชื่อว่า EditPlus
• สามารถสร้างโปรแกรมได้หลายภาษาโดยจะมีสีแยกประเภทของคาใน
แต่ละภาษาให้ ทาให้สะดวกต่อการอ่านโปรแกรม
• ให้ทาการสร้าง config เพื่อให้โปรแกรมเราสามารถคอมไพล์ไฟล์
โปรแกรมจาวาและรันไฟล์โปรแกรมจาวาได้
อ.รัชดาพร คณาวงษ์
52
สร้าง config ใน EditPlus กันก่อนนะคะ
• ทาการสร้าง config เพื่อให้โปรแกรม EditPlus สามารถคอมไพล์
และรันโปรแกรมภาษาจาวาได้
อ.รัชดาพร คณาวงษ์
53
สร้าง config ใน EditPlus กันก่อนนะคะ
คลิก add tool/Program แล้วเติมข้อความดังในภาพด้านล่างทั้งสอง
ซ้าย set compiler
อ.รัชดาพร คณาวงษ์
ขวา set interpreter
54
เริ่ มใช้โปรแกรม EditPlus
• เปิ ดโปรแกรม EditPlus ขึ้นมา
• คลิกเมนู File/New เลือก java
• ลองพิมพ์ไฟล์ต่อไปนี้แล้วบันทึกในชื่อ Welcome1.java
/** A first program in Java.*/
public class Welcome1 {
/* main method
begins execution of Java application */
public static void main ( String args[] )
{
System.out.println(“Welcome to Java Programming!”);
} // end method main
} // end class Welcome1
อ.รัชดาพร คณาวงษ์
55
ลองสร้างโปรแกรมแรกกันเถอะ
อ.รัชดาพร คณาวงษ์
56
แบบฝึ กหัด
• ลองแปลงโปรแกรม Welcome1.java ให้แสดงข้อความดังนี้
sawasdee Thailand
อ.รัชดาพร คณาวงษ์
57