wiraya srikarw Download
- Publications :0
- Followers :0
เอกสารประกอบการสอน รายวิชา การโปรแกรมเว็บเบื้องต้น-full
เอกสารประกอบการสอน รายวิชา การโปรแกรมเว็บเบื้องต้น-full
Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook
View Text Version Likes : 0 Category : All Report
- Follow
- Upload
- 0
- Embed
- Share
เอกสารประกอบการสอน รายวิชา การโปรแกรมเว็บเบื้องต้น-full
แผนบริหารการสอนประจาํ วิชา
รายวชิ า โปรแกรมภาษาจาวาเบื้องตน รหัสวชิ า วศ 5111306 (Basic Java Programming) (EN 5111306)
จํานวนหนว ยกติ -ช่ัวโมง 3 หนวยกติ (2-2-5) เวลาเรียน 64 ชว่ั โมง / ภาคการศึกษา
คาํ อธิบายรายวิชา
พน้ื ฐานการโปรแกรมภาษาจาวา การโปรแกรมเชิงวัตถุดวยจาวา การทํางานของแอพเพ็ต การ ทาํ งานเทรด และแอนนิเมชัน การติดตอกับผูใชเบ้ืองตน และการติดตอกับผูใชขั้นสูง การประยุกตแบบ ผูใชค นเดยี ว แนะนําการโปรแกรมบนเครือขายดว ยจาวา
วตั ถุประสงคท่ัวไป
1. เพอ่ื ใหมีความรูเกี่ยวกับหลักการโปรแกรมคอมพิวเตอร 2. เพอื่ ใหสามารถคิด และคาํ นวณทางโปรแกรมภาษาจาวาได 3. เพอื่ ใหเกิดทักษะในการทดลองดา นการโปรแกรมภาษาจาวา 4. เพอ่ื ใหสามารถเขยี นบนั ทึกผลการทดลองได 5. เพ่ือใหมที ัศนคติท่ีดตี อการเรยี นวชิ าทางการโปรแกรมภาษาจาวา 6. เพ่อื ใหสามารถนาํ ความรูทางโปรแกรมภาษาจาวามาประยุกตใชป ระโยชนใน
ชีวติ ประจาํ วัน
เนอื้ หา แผนบรหิ ารการสอนประจาํ บทที่ 1 8 ชว่ั โมง บทท่ี 1 หลักการเขยี นโปรแกรมคอมพวิ เตอร การเขยี นโปรแกรมคอมพิวเตอร กระบวนการทํางานการเขียนโปรแกรมแบบโครงสราง ความเปนมาภาษาจาวา กระบวนการทํางานของโปรแกรมภาษาจาวา องคป ระกอบของเทคโนโลยจี าวา แพลตฟอรมของจาวา การติดตงั้ และเรียกใชงานโปรแกรมภาษาจาวา กําหนดเสน ทางการทํางาน (Path) ใหกับระบบปฏบิ ัติการวนิ โดว การติดตัง้ โปรแกรม Edit Plus หลกั การเขยี นโปรแกรมภาษาจาวา สรุป แบบฝก หดั เอกสารอางองิ
2
แผนบริหารการสอนประจาํ บทท่ี 2 4 ชว่ั โมง บทท่ี 2 การเขยี นโปรแกรมเชงิ วตั ถุ คลาส วตั ถุ หรอื ออบเจกต การปด บงั ขอมูล การสืบทอดคุณสมบัติ นามธรรม โพลมิ อฟซ ึม พืน้ ฐานการเขียนโปรแกรมภาษาจาวา สวนประกอบของโปรแกรมภาษาจาวา สรปุ แบบฝก หดั เอกสารอา งอิง แผนบรหิ ารการสอนประจาํ บทที่ 3 4 ช่วั โมง บทท่ี 3 ตวั แปรและตัวดาํ เนนิ การ ตัวแปร ชนดิ ขอมลู ตวั ดําเนนิ การ ตัวดําเนินการทางคณิตศาสตรเลขจํานวนเต็ม ตวั ดาํ เนนิ การทางคณิตศาสตรเลขทศนยิ ม ตัวดําเนนิ การทางคณิตศาสตรรวมกับการกําหนดคา ตวั ดาํ เนินการทางคณติ ศาสตรการเพ่ิมคาและการลดคา สรุป แบบฝกหดั เอกสารอางองิ แผนบรหิ ารการสอนประจําบทที่ 4 8 ช่ัวโมง บทที่ 4 ประโยคควบคมุ การทํางาน ประโยคตามลําดับ ประโยคการตัดสนิ ใจ ประโยค if-else การเขียนรปู แบบลัด if ประโยค switch-case ประโยคการวนลูป ประโยค for ประโยค while ประโยค do/while ประโยคการควบคมุ อ่ืนๆเพิม่ เติม ประโยค break
3
ประโยค continue ประโยค return สรุป แบบฝก หัด เอกสารอางองิ แผนบรหิ ารการสอนประจําบทท่ี 5 8 ช่วั โมง บทท่ี 5 คลาสและอ็อบเจกต คลาส class_name การสรางคลาสจากคลาสเดิม แพก็ เกจ อ็อบเจกต ประกาศ instance class ประกาศ instance สราง ออ็ บเจกต การเรยี กใชง านแอตทรบิ วิ ต การสง ขอมูลดวยคา ของตวั แปร การสง ขอมูลดวยการอา งองิ ของวตั ถุ คอนสตรคั เตอร สแตตคิ ดาตาเมมเบอร สแตตคิ เมธอดเมมเบอร สรุป แบบฝกหดั เอกสารอา งอิง แผนบรหิ ารการสอนประจําบทที่ 6 8 ช่ัวโมง บทที่ 6 คลาสและอ็อบเจกต วงจรชวี ิตแอพเพ็ต เมธอด init() เมธอด start() เมธอด stop() เมธอด destroy() เมธอด paint() การเขียนโคด แอพเพต็ แทรกในภาษาไฮเปอรเ ท็กตมารคอพั (HTML) แอพเพ็ตกับกราฟก แอพเพ็ตกับเสยี ง แอพเพต็ กบั ภาพ แอพเพต็ กบั เทรดสาํ หรบั ภาพเคลอื่ นไหว การสรา งเทรด
4 4 ชั่วโมง
การสรา งเทรดสําหรบั ภาพเคล่อื นไหว 4 ชัว่ โมง สรปุ 8 ชวั่ โมง แบบฝก หัด 8 ชวั่ โมง เอกสารอางองิ ผนบริหารการสอนประจําบทท่ี 7 บทท่ี 7 สวนตดิ ตอกบั ผใู ชแบบกราฟก (GUI) ดวย AWT ความสัมพนั ธระหวา ง AWT และ Swing การโปรแกรม GUI ดวย Swing และ AWT การจดั วางองคประกอบ FlowLayout BorderLayout GridLayout สราง Basic Event Handling สรปุ แบบฝกหัด เอกสารอา งอิง แผนบรหิ ารการสอนประจาํ บทที่ 8 บทที่ 8 สวนติดตอกบั ผูใชแ บบกราฟก (GUI) ดว ย AWT ไฟลส ตรีม ไบทสตรมี การใชคําส่งั try … catch / finally คารแรค็ เตอรส ตรมี สรุป แบบฝกหดั เอกสารอางอิง แผนบรหิ ารการสอนประจําบทที่ 9 บทที่ 9 การประยกุ ตการติดตอฐานขอ มูลกับเครือขา ย เนต็ บนี ส (Netbeans) มายเอส็ ควิ แอล (MySql) การเชอื่ มตอเนต็ บีนสกบั มายเอ็สควิ แอล การกําหนดคณุ ลักษณะมายเอส็ คิวแอล สรุป แบบฝกหัด เอกสารอา งอิง แผนบรหิ ารการสอนประจาํ บทที่ 10 บทที่ 10 การพัฒนาฐานขอมูลดว ยจาวา สรา งและทําการเชือ่ มตอ ฐานขอ มูลใหพรอ มใชงาน สรางตารางใหก ับฐานขอมูล
5
การสั่งงานตารางขอ มลู การสั่งการงานฐานขอ มูลดวย Script แนะนําการโปรแกรมบนเครอื ขา ยดว ยจาวา สรุป แบบฝกหัด เอกสารอา งองิ ผนวก การทดลองท่ี 1 การทดลองท่ี 2 การทดลองท่ี 3 การทดลองท่ี 4 การทดลองที่ 5 การทดลองท่ี 6 การทดลองท่ี 7 การทดลองท่ี 8 การทดลองท่ี 9 วิธกี ารสอนและกจิ กรรมการเรยี นการสอน 1. วธิ ีสอน 1.1 สอนแบบบรรยาย โดยการนําเสนอขอ มลู ดว ยสอ่ื อิเล็กทรอนิกสโ ปรแกรมพาว- เวอรพอยท (power point program) ประกอบการบรรยาย และตั้งคําถามระหวางบรรยายเพื่อให ผูเ รยี นไดคิดและตอบคําถามในประเดน็ ทส่ี ําคญั 1.2 สอนแบบอภิปราย โดยแบงผเู รยี นออกเปน กลุม ๆ และมอบหมายใหแ ตล ะกลุม รวมกันแสดงความคดิ เหน็ นาํ เสนอการอภิปรายของแตละกลุม แลวผูสอนเปนผูสรุปผลการอภิปราย ใหเ ขาใจตรงตามวัตถปุ ระสงคของเน้ือหา 1.3 สอนแบบสาธติ การใชโปรแกรมคอมพวิ เตอร เคร่อื งคอมพิวเตอรเปน เคร่ืองมือ โดยผูสอนแสดงขั้นตอนใหผูเรียนดูพรอมอธิบายลําดับขั้นตอนในการปฏิบัติ จากน้ันใหผูเรียนไดทดลอง ปฏบิ ัติ โดยแบง ผูเรียนออกเปน กลมุ ๆ 1.4 สอนโดยใหคนควาหาความรูดวยตนเอง โดยผสู อนมอบหมายเน้ือหาในบทเรยี น ใหผ ูเ รยี นสืบคน ขอมลู จากตาํ รา เอกสาร ส่อื อเิ ล็กทรอนกิ ส ทาํ รายงานและนาํ เสนอในหองเรียน 1.5 การทํารายงาน เปนกจิ กรรมกลมุ ท่ผี ูสอนนาํ กระตนุ ใหผ เู รยี น นําปญ หาท่ีพบใน ชีวิตประจําวันมาเปนโจทย เปนการเรียนการสอนโดยยึดการเรียนรูโดยใชปญหาเปนฐาน (PBL: Problem-Base Learning) ในการเขียนโปรแกรมคอมพิวเตอรเพื่อใชในการแกปญหา โดยใหผูเรียนได มีสวนรวมในการเลือกหัวขอรายงาน และสมาชิกในการทํางาน เปนการเรียนการสอนที่ยึดผูเรียนเปน สําคัญ
6
ส่อื การเรยี นการสอน 1. แฟมขอมลู ชนิดโปรแกรมพาวเวอรพอยท 2. ภาพสอื่ ผสมภาพนง่ิ หรือภาพเคลอ่ื นไหว จากระบบออนไลน 3. เคร่อื งคอมพวิ เตอรท ี่ใชร ะบบปฏิบัติทสี่ ามารถใชร ะบบปฏิบัตกิ ารดอส(DOS Prompt) 4. ตวั โปรแกรมเขยี นโคด (Edit Plus) 5. ตัวโปรแกรมคอมไพเลอรภาษาจาวา (Java Compiler) 6. ระบบเครือขา ยคอมพวิ เตอร ในหองปฏบิ ัตกิ ารคอมพิวเตอร 7. ระบบอินเทอรเ นต็ และหนวยความจําภายนอก(External Hard disk)
การวดั และการประเมนิ ผล รอ ยละ 70 คะแนน รอยละ 20 คะแนน 1. การวดั ผล รอยละ 5 คะแนน 1.1 คะแนนระหวางภาคการศึกษา รอยละ 5 คะแนน 1.1.1 สอบกลางภาค รอ ยละ 20 คะแนน 1.1.2 ความต้ังใจในการเขาเรยี น รอยละ 10 คะแนน 1.1.3 แบบฝก หัด รอยละ 10 คะแนน 1.1.4 ใบงาน 1.1.5 ศกึ ษาคน ควารายงาน 1.1.6 นําเสนอรายงาน
1.2 คะแนนสอบปลายภาคการศึกษา รอยละ 30 คะแนน
2. การประเมนิ ผล ดเี ยี่ยม (Excellent) ไดคะแนนระหวางรอยละ 80-100 ไดระดับ A ดีมาก (Very Good) ไดค ะแนนระหวางรอยละ 75-79 ไดร ะดบั B+ ดี (Good) ไดคะแนนระหวา งรอยละ 70-74 ไดระดับ B ดพี อใช (Fairy Good) ไดคะแนนระหวา งรอยละ 65-69 ไดร ะดับ C+ พอใช (Fairy) ไดค ะแนนระหวางรอยละ 60-64 ไดระดบั C ออ น (Poor) ไดค ะแนนระหวา งรอยละ 55-59 ไดร ะดับ D+ ออนมาก (Very Poor) ไดค ะแนนระหวา งรอยละ 50-54 ไดระดบั D ตก (Fail) ไดค ะแนนระหวา งรอยละ 0-49 ไดระดับ E
7
แผนบรหิ ารการสอนประจาํ บทที่ 1
หวั ขอเนื้อหา
หลกั การเขียนโปรแกรมคอมพิวเตอร การเขยี นโปรแกรมคอมพวิ เตอร กระบวนการทาํ งานการเขียนโปรแกรมแบบโครงสราง ความเปน มาภาษาจาวา กระบวนการทาํ งานของโปรแกรมภาษาจาวา องคป ระกอบของเทคโนโลยีจาวา แพลตฟอรมของจาวา การติดตัง้ และเรยี กใชง านโปรแกรมภาษาจาวา กาํ หนดเสนทางการทํางาน (Path) ใหก บั ระบบปฏิบตั ิการวนิ โดว การตดิ ต้งั โปรแกรม Edit Plus หลกั การเขียนโปรแกรมภาษาจาวา
วตั ถปุ ระสงคเชิงพฤตกิ รรม
เม่ือผู้เรียนได้ศกึ ษาเนือ้ หาในบทเรียนนีแ้ ล้วสามารถ 1. เกิดทักษะการตดิ ตงั้ โปรแกรมภาษาจาวาและโปรแกรม Edit Plus 2. อธิบายความแตกตางหรอื สัมพันธระหวา งโปรแกรมภาษาจาวามกี ับภาษาแบบโครงสรา งได 3. บอกขัน้ ตอนการทาํ งานของโปรแกรมภาษาจาวาได 4. เขยี นโปรแกรมภาษาจาวาตามรูปแบบภาษาได
วธิ ีการสอนและกิจกรรมการเรียนการสอน
1. วธิ สี อน 1.1 ใชวิธีสอนแบบบรรยายในหัวขอหลกั การเขยี นโปรแกรมคอมพวิ เตอร 1.2 ใชวธิ สี อนแบบปฏิบัติการเรื่องดาวนโหลดตัวโปรแกรมและการตดิ ตั้งโปรแกรม
ภาษาจาวา และโปรแกรมอิดเิ ตอร 1.3 ใชว ิธสี อนแบบปฏบิ ตั กิ ารกําหนดสมบตั โิ ปรแกรมที่ไดท ําการตดิ ตัง้
2. กิจกรรมการเรียนการสอน 2.1 ใหน ักศกึ ษาปฏบิ ตั กิ ารตามทผ่ี ูสอนสาธติ การดาวนโ หลดตัวโปรแกรม และการ
ติดตงั้ โปรแกรม 2.2 ใหนักศึกษาอภปิ รายผลการทดลอง 2.3 ทําแบบฝกหัดเก่ียวกับเรื่องหลักการเขียนโปรแกรมคอมพวิ เตอร
8
สอ่ื การเรียนการสอน
8. แฟม ขอมลู การนําเสนอ ของบทที่ 1 9. ระบบอินเทอรเนต็ สําหรับดาวนโหลด 10. เคร่ืองคอมพิวเตอรท่ีใชร ะบบปฏิบตั ิทส่ี ามารถเขา ถงึ ระบบปฏิบตั กิ ารดอส (DOS Prompt) 11. ตัวแปลโปรแกรมภาษาจาวา (Java Compiler) 12. ระบบเครือขายคอมพวิ เตอร ในหอ งปฏิบัตกิ ารคอมพิวเตอร 13. หนว ยความจําเคลอ่ื นที่ (Handy Drive หรอื External Hard disk) 14. เอกสารประกอบการสอน ตํารา เอกสารทเี่ กย่ี วขอ ง
การวัดและการประเมนิ ผล
1. สงั เกตจากการตอบคําถามและตัง้ คําถามของนกั ศึกษา 2. สงั เกตจากความกระตือรือรนของนักศึกษา 3. สังเกตจากการฝก และผลงานภาคปฏิบตั ิ 4. ตรวจแบบฝก หดั
9
บทท่ี 1 หลกั การเขียนโปรแกรมคอมพวิ เตอร (Principle of Computer Programming)
การเขียนโปรแกรมคอมพิวเตอร
การเขียนโปรแกรมคอมพิวเตอร (Computer Programming) มีแนวคิดมาจากมนุษยมีความ ตองการที่นํางานท่ีเปนลักษณะงานประจํา งานที่เปนลักษณะงานซ้ําๆ ท่ีมีขั้นตอนทํางานที่แนนอน มีระบบการตัดสินใจท่ีชัดเจนแนนอน มาใหระบบคอมพิวเตอรทํางานแทนมนุษย ตามวัตถุประสงคใน การทํางานของผูคิดคนโปรแกรมคอมพิวเตอร ดังนั้นการเขียนโปรแกรมคอมพิวเตอรจึงเปนพ้ืนฐาน ที่จําเปนตอการทํางานของระบบคอมพิวเตอร ชนิดของโปรแกรมคอมพิวเตอรสามารถแบงตามระดับ ความลกึ ของการเขียนโปรแกรมควบคุมอุปกรณคอมพิวเตอรไดเปน 2 ชนิด คือ ชนิดแรกเปนโปรแกรม ระบบปฏิบัติการ (Operating System) ทําหนาท่ีในการควบคุมอุปกรณพ้ืนฐานท่ีเปนสวนประกอบ คอมพิวเตอรทั้ง 4 หนวย(Unit) ดังน้ีคือ 1) หนวยอินพุท (Input Unit) เชน แปนปอนขอมูล (Key Board) เมาส (Mouse) เปนตน 2) หนวยเอาทพุท (Output Unit) เชน จอแสดงผล (Monitor) ลําโพง (Speaker) เปนตน 3) หนวยความจํา (Memory Unit) เชน หนวยความจําช่ัวคราว (RAM) หนวยความจําภายนอก (External Memory) เชน ฮารดดิสก (Hard Disk) และหนวยสุดทายหนวย
- หนว ยประมวลผลกลาง (CPU: Central Processing Unit) ดวยเพราะเทคโนโลยขี องอปุ กรณพ ้ืนฐาน ของคอมพิวเตอรมีการแขงขันสูงสงผลทําใหโปรแกรมท่ีทําหนาที่ในการควบคุมอุปกรณคอมพิวเตอรนี้ ตองมีการพัฒนาอยางตอเนื่อง ดังน้ันโปรแกรมระบบปฏิบัติการจึงเปนโปรแกรมที่สําคัญตอการ เจรญิ กา วหนา ของบริษัทท่ีทําหนา ท่ีในการผลิตเครื่องคอมพิวเตอร โปรแกรมชนิดน้ีจึงเปนเทคโนโลยีปด นักเขียนโปรแกรมคอมพิวเตอรจึงมีระดับการเขาถึงในการกําหนดคาการควบคุมอุปกรณตางๆ มีอยาง จํากัดตามท่ีบริษัทท่ีพัฒนาโปรแกรมระบบปฏิบัติการอนุญาตใหเขาถึงไดเทาน้ัน โปรแกรมดังกลาว เชน โปรแกรมระบบปฏิบัติการวินโดว (Windows Operating System) โปรแกรมระบบปฏิบัติการ ลินุกส (Linux Operating System) เปนตน ชนิดที่สองเปนโปรแกรมภาษาคอมพิวเตอร ท่ีนักพัฒนา โปรแกรมคอมพิวเตอร สามารถเขาถึงในการเขียนโปรกรมควบคุมอุปกรณตางๆ ไดอยางกวางขวาง โปรแกรมชนดิ ภาษาคอมพิวเตอรน้ี จึงเปนโปรแกรมที่นักพัฒนาโปรแกรมสามารถเรียนรูและสรางสรรค งานไดอยา งตอเน่ืองตลอดเวลา ดังน้นั ภาษาคอมพวิ เตอรจึงสามารถแบงชนิดตามลักษณะการมองปญหา ของโจทยท่ีตองการใหการเขียนโปรแกรมทําการแกปญหาไดเปน 2 แบบ คือ แบบแรกเปนการเขียน โปรแกรมแบบโครงสราง (Structure Programming) ตัวอยางภาษาท่ีใชเขียนโปรแกรม เชน โปรแกรม ภาษาซี (C Language Program) โปรแกรมภาษาปาสคาล (Pascal Language Program) โปรแกรม ภาษาเบสิค (Basic Language Program) เปนตน สวนแบบที่สองเปนการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming : OOP) ตัวอยางภาษาที่ใชเขียนโปรแกรม เชน โปรแกรม ภาษาซีพลัสพลัส (C++ Language Program) โปรแกรมภาษาซีชารป (C# Language Program) โปรแกรมพีเอสพี (PHP Program) โปรแกรมวิชวลเบสิค (Visual Basic Program) โปรแกรมภาษาจาวา (Java Language Program) เปนตน
10
กระบวนการทํางานการเขียนโปรแกรมแบบโครงสราง
ในการพัฒนาโปรแกรมแบบโครงสรางหรือการเขียนโปรแกรมแบบโครงสราง ซึ่งมีกระบวนการ ในการสรางคือ ตัวอยางเชน การโปรแกรมภาษาซี เร่ิมตนดวยการจากทําการสรางโปรแกรม (source program หรือ source code) ซึ่งตองเขียนตามลักษณะโครงสรางของภาษาซี ทําการบันทึก (save หรือ save as) เปนไฟลนามสกุล .c นําโคดที่ไดทําการเขียนทําการคอมไพล ทําการตรวจสอบ ขอผิดพลาดวามีหรือไม ถามีใหกลับไปแกไขที่โปรแกรม แตถาไมมีขอผิดพลาดตัวระบบภาษาซีจะสราง ไฟลนามสกุล .obj แลวทําการเช่ือมตอไฟลจากไฟลไรบารีและระบบจะทําการสรางไฟลนามสกุล .obj และทําการตรวจสอบความผิดพลาดในการเชื่อมตอ ถาไมมีขอผิดพลาดจะไดไฟลนามสกุล .exe ซึ่งเปน ไฟลท่ีพรอมนําไปส่ังงานใหแสดงผลการทํางานตามที่กําหนดของโปรแกรม ไฟลที่เปนนามสกุล .exe นี้ ไมสามารถทําการแกไขไดดวยเพราะเปนไฟลที่เปนรหัสใหเคร่ืองคอมพิวเตอรทํางาน ดังนั้นถาตองการ ปรบั ปรงุ หรอื แกไ ขโปรแกรมผูเขยี นโปรแกรมตอ งมไี ฟลท่ีเปน นามสกุล .c มาเขา กระบวนการประมวลผล ภาษาซีใหมตัง้ แตเ ร่ิมตน แสดงในภาพท่ี 1.1
START
ไฟลส วนหวั สรางโปรแกรม คอมไพเลอร ไฟลไ รบารี File ทาํ การเชื่อมตอ ไฟล
ตวั สอบความผิดพลาด ? Yes Yes
File *.exe สงั่ โปรแกรมทาํ งาน
ตวั สอบความผิดพลาด ? Yes
แสดงผลการทาํ งาน
End
ภาพท่ี 1.1 แสดงกระบวนการประมวลผลของภาษาซี
11
ความเปนมาภาษาจาวา
การพัฒนาภาษาจาวาถูกพัฒนาโดย ซัน ไมโครซิสเต็มท บจก. (sun microsystem co., ltd) โดยขณะท่ีทีมงานของบริษัททําการพัฒนาภาษามักนิยมดื่มกาแฟกันเปนประจํา และกาแฟที่นิยมด่ืม มีช่ือวา จาวา ทีมพัฒนาภาษาจาวาตนแบบจึงตั้งชื่อภาษาท่ีพัฒนาวา จาวา จึงเปนท่ีมาเทคโนโลยีของ บรษิ ัท ซนั ไมโครซิสเต็มท จํากัด เปนตนมา ซ่ึงทําให บริษัท ซัน ฯลฯ เปนผูกํากับทิศทางไมใหมีการนํา ภาษาจาวาไปดัดแปลงประยกุ ตใ ชใ นทางทีเ่ บย่ี งเบนออกจากจุดประสงคเดิม การกําหนดทิศทางโดย ซัน เปนไปเพื่อใหเกิดความชัดเจนในทิศทางการพัฒนาภาษาจาวา โดยภาษาจาวามีคําส่ังพื้นฐานคลาย ภาษาซี พลัส พลัสเปนอยางมาก ทําใหนักเขียนโปรแกรมภาษาซี พลัส พลัส ที่มีอยูมากท่ีสุดแลว ในขณะนั้นสามารถสรางความคุนเคยไดอยางรวดเร็ว จึงทําใหภาษาจาวาเปนที่ยอมรับอยางกวางขวาง อยางรวดเร็ว และไดรับการจัดเปนภาษาคอมพิวเตอรเชิงวัตถุ เชนเดียวกับภาษาซี พลัส พลัส ดวย แตสิ่งทีท่ ั้งสองภาษาตางกัน คอื โปรแกรมภาษาจาวาตองเขยี นเปนแบบเชิงวัตถุเทาน้ัน ในขณะที่ภาษาซี พลัส พลสั สามารถเขยี นไดทงั้ แบบเชิงวตั ถุ และแบบโครงสรางกไ็ ด ท่เี ปน เชนน้ีไดเนื่องจากภาษาซี พลัส พลสั มีตน กําเนิดมาจากภาษาซี ซง่ึ เปนภาษาแบบโครงสราง ดังนั้นภาษาซี พลัส พลัส จึงตองสนับสนุน การเขียนโปรแกรมแบบโครงสรางดวยเพื่อใหเขากันไดกับภาษาซี อยางไรก็ตามปจจุบันโปรแกรม ประยกุ ตล ว นแตเขียนดว ยภาษาเชิงวัตถทุ ง้ั สิ้น
กระบวนการทาํ งานของโปรแกรมภาษาจาวา
การทาํ งานโปรแกรมภาษาจาวา การสรา งไฟลต นฉบบั (source file) หรือ โคดตนฉบับ(source code) แลวทําการบันทึกไฟลดังกลาวโดยบันทึก นามสกุล .java เก็บไวใน folder ท่ีตองการ แลวทํา การ compiler ดวย java compiler ในระบบปฏิบัติการ DOS เพื่อเปล่ียนคําส่ังภาษาจาวาเปนภาษา เฉพาะอยางหน่ึงเพื่อใหจาวาเวอรชัวรแมทชีนเขาใจ ภาษาเฉพาะท่ีจาวาเวอรชัวนแมทชีนเขาใจน้ีเรา เรียกวาจาวาไบตโคด เปนไฟลท่ีมีนามสกุล .class แลวนําไฟล ดังกลาวไปรันบนเคร่ืองคอมพิวเตอรที่มี จาวาเวอรช วั รแ มทชีน สรปุ ขนั้ ตอนการพฒั นาโปรแกรมดว ยภาษาจาไดแ สดงดังภาพ 1.2
ภาพที่ 1.2 กระบวนการพัฒนาภาษาจาวา
ที่มา (About the Java Technology, 2014)
ดวยจาวาเวอรชัวนแมทชีน มีความสามารถนํามาใชกับระบบปฏิบัติการที่แตกตางกันได โดยใชคลาสท่ีคอมไพลตัวเดียวกัน นํามาทํางานบนระบบของไมโครซอฟทวินโดว (Microsoft Windows) ระบบโซลาริส (Solaris) หรอื ระบบยูนิกส (Unix) รวมทัง้ ระบบของแมค็ (Mac) ได ดังแสดง ในภาพท่ี 1.3
12
ภาพท่ี 1.3 แสดงระบบจาวาเวอรชัวนแ มทชีนทส่ี ามารถใชไดท กุ ระบบปฏิบตั กิ าร
ท่มี า (About the Java Technology, 2014)
องคประกอบของเทคโนโลยีจาวา
เทคโนโลยีภาษาจาวามอี งคป ระกอบทสี่ ําคญั ในการทาํ งาน ประกอบดวย 3 สว น คือ
1. จาวาเวอรชัวนแมทชีน (Java Virtual Machine: JVM) เปนสวนที่ทําหนาที่เปน
ตัวอินเตอร - พรีเตอร (interpreter) คือ จะทําการแปลจาวาไบตโคด ใหเปนภาษาที่เครื่องเขาใจ ซ่ึงจา วาไบตโคด จะสามารถรันไดห ลายแพลตฟอรม ถา แพลตฟอรม นัน้ มี จาวาเวอรชัวนแมทชนี
2. จาวารันไทลอินวิโรเมนต (Java Runtime Environment: JRE) เปนสวนที่ใช
ในการรันโปรแกรมภาษาจาวา เปนสวนท่ีใชในการรันโปรแกรม โดยจะทํางาน 3 ข้ันตอน ดังนี้ ขั้นตอน แรกโหลดไบตโคดโดยใช Class loader คือการโหลดคลาสทุกคลาสท่ีเกี่ยวของในการรันโปรแกรม ขั้นตอนท่ีสองตรวจสอบไบตโคดโดยใชการตรวจสอบไบทโคด (Byte code Verifier) คือการตรวจสอบ วา โปรแกรมจะตองไมม ีคําส่ังที่ทําใหเกิดความผิดพลาดกับระบบ เชน การแปลงขอมูลท่ีผิดพลาด หรือมี การแทรกแซงเขาสูระบบภายในเปนตน ขั้นตอนที่สุดทาย รันไบตโคด โดยใชตัวแปลรันไทล (Runtime Interpreter)
3. ชุดพัฒนาภาษาจาวา (Java 2 Software Developer Kit: J2SDK) เปนชุด
พัฒนาโปรแกรมภาษาจาวา ประกอบไปดวยโปรแกรมตางๆ แตไมมีโปรแกรมท่ีทําหนาที่สรางโคด (Editor) รวมอยูดวย แตมีโปรแกรมคอมไพเลอร (javac.exe) และโปรแกรมอินเตอรพรีเตอร (java.exe)
แพลตฟอรม ของจาวา (Platform of Java)
แพลตฟอรมของจาวา หมายถึงลักษณะการนําภาษาจาวาไปสรางเปนโปรแกรมเพื่อ วัตถุประสงคใด วัตถุประสงคหนึ่ง บนการประมวลผลของคอมพิวเตอร อาจเปนการทําการประมวลผล
13
โดยไมมีการเชื่อมตอกับเคร่ืองคอมพิวเตอรเครื่องอื่นๆ หรือตองการนําโปรแกรมภาษาจาวาไปใชกับ ระบบเครือขา ยอินเทอรเน็ต เปนตน ซ่ึงแพลตฟอรมของจาวาจึงมีการแบงรปู แบบเปน 3 รปู แบบ คอื
1. แพลตฟอรมจาวามาตรฐาน (Standard Edition: Java SE) เปนแพลตฟอรมที่
ใชในการพัฒนาโปรแกรมภาษาจาวากับเครื่องพีซีท่ัวไป ซ่ึงสามารถแยกยอยออกเปน 2 แบบ คือ Java Application เปนโปรแกรมท่ีใชพัฒนาโปรแกรมประยุกตทั่วไป และ Java Applet เปนโปรแกรมจาวา ท่ใี ชพัฒนาโปรแกรมเพอื่ รันบนเวบ็ บราวเซอร
2. แพลตฟอรมจาวาอินเตอรไพรส (Enterprise Edition: Java EE) เปน
แพลตฟอรมท่ีมุงเนนในการพัฒนาโปรแกรมเครือขาย สําหรับใชงานในองคกร โดยใชโปรแกรม Application Server หรือ Web Server ใชสาํ หรบั พัฒนาโปรแกรมที่มขี นาดใหญ
3. แพลตฟอรมจาวาไมโคร (Micro Edition: Java ME) เปนแพลตฟอรมที่ใชพัฒนา
โปรแกรมเพอ่ื ใชงานกับอุปกรณอิเล็กทรอนิกส ทม่ี ีทรัพยากรจํากดั เชน โทรศัพทมอื ถอื เปน ตน
การติดตั้ง และเรียกใชงานโปรแกรมภาษาจาวา
การพัฒนาโปรแกรมดวยภาษาจาวา สําหรับคอมพิวเตอรสวนบุคคล เคร่ืองคอมพิวเตอร จําเปน ตอ งอาศยั ชุดพัฒนา J2SDK แตดว ยชดุ พฒั นาไมมีโปรแกรมที่ทําหนาที่สราง source code ซึ่งใน ระบบปฏิบัติการวินโดวสสามารถใชโปรแกรมโนตแพด (notepad) ทําการสรางโคดภาษาจาวา เพ่ือทํา การเก็บโคด ดว ยการบนั ทึกเปนนามสกุล และสว นขยาย .java ซ่ึงชุดพัฒนา J2SDK สวนตัวคอมไพลและ ตวั รนั โปรแกรม สามารถทําการดาวนโ หลดและติดตั้ง J2SDK ลงบนเครื่องคอมพิวเตอรระบบปฏิบัติการ วนิ โดวสไดที่ //java.sun.com/javase/downloads/index.jsp (ภาพที่ 1.4)
ภาพที่ 1.4 แสดงแหลง ดาวนโ หลดชุดพฒั นาโปรแกรมจาวา ทีม่ า (java download, 2014)
14
การตดิ ต้งั ชดุ พฒั นาโปรแกรมภาษาจาวา
การติดตัง้ สามารถทําไดก ารแตกแฟมขอมลู ที่ไดทําการดาวนโ หลดมา (ภาพที่ 1.5)
ภาพท่ี 1.5 แสดงชุดพัฒนาโปรแกรมภาษาจาวา SDK ทําการเลอื กที่ jsk-6u14-windows-i586.exe เพอ่ื ทาํ การติดตั้งเครื่องมือในการพัฒนา โปรแกรมดว ยภาษาจาวา และทําการเลือก Accept (ภาพท่ี 1.6)
ภาพที่ 1.6 แสดงชดุ พฒั นาโปรแกรมภาษาจาวา ลิขสทิ ธ์ิโดย Sun Microsystems บจม.
15
ตวั ชุดพฒั นาโปรแกรมภาษาจาวา จะใหผ ูตดิ ตง้ั โปรแกรมกาํ หนดลกั ษณะโปรแกรมทต่ี องการ (Custom Setup) ถา ตองการกาํ หนดตามขอ แนะนาํ ใหทาํ การเลอื ก Next ตามภาพท่ี 1.7
ภาพท่ี 1.7 แสดงการกําหนดคาตาํ แหนงท่ีติดตั้งโปรแกรม ตวั ชดุ พัฒนาจะทาํ การติดต้งั โปรแกรมตามท่กี ําหนดจากภาพ 1.7 โดยแสดงสถานะ การทาํ งาน วา สําเรจ็ เปนจาํ นวนเทา ใด แสดงในภาพที่ 1.8
ภาพท่ี 1.8 แสดงผลการตดิ ตงั้ โปรแกรมภาษาจาวา
16
เม่ือทําการติดต้ังสําเร็จสมบรู ณเ รยี บรอ ย แสดงผลภาพที่ 1.9 ทาํ การเลือก Finish
ภาพท่ี 1.9 แสดงการติดต้งั สมบรู ณ
กําหนดเสนทางการทาํ งาน (Path) ใหกบั ระบบปฏบิ ัติการวินโดว
เม่ือทําการติดต้ังชุดพัฒนาโปรแกรมภาษาจาวา ส่ิงท่ีสําคัญอีกประการหนึ่ง คือการกําหนด เสน ทางในการทาํ งานใหก บั ตัวโปรแกรมภาษาจาวาทต่ี อ งนําตัวโคดจาวาที่ไดทําการบันทึกในสวนใดสวน หน่งึ ของหนวยความจาํ บนเองคอมพวิ เตอรท่ีมีระบบปฏิบัติการวินโดวไดโดยไมมีปญหาในการคนหาโคด จาวาที่ผูเขียนโปรแกรมไดทําการบันทึกไดอิสระ สงผมทําใหการทํางานโคดจาวาไดอยางเสร็จสมบูรณ การกําหนดเสนทางสามารถทําไดโดยการคลิกเมาสขวาท่ีไอคอน My Computer บนเดสกท็อป แลว เลือก Properties จากน้ันเลือกแท็ป Advanced และทําการเลือก Environment Variables ซ่ึง วนิ โดวแ ตล ะรุน จะมหี นาจอในสวนนไี้ มเหมอื นกนั ตัวอยา งในภาพ 1.10 เปนระบบปฏิบัตวิ นิ โดว 7
ภาพท่ี 1.10 แสดงหนาตา งของ My computer กาํ หนดเสนทาง
17
ทําการกําหนดเสนทางของตัวโปรแกรมภาษาจาวาใหโปรแกรมระบบปฏิบัติการวินโดว โดยทํา การบนั ทึกหรอื สําเนาทอ่ี ยูข องตัวโปรแกรมภาษาจาวา แลวนํามาวางตอในสวนของ Path ดวยการเลือก Edit เพอ่ื ทาํ การแกไ ขเพิ่มเสนทางเดิมท่ีตัวระบบปฏิบัติไดกําหนดใหกับโปรแกรมอื่นๆ ที่ไดทําการติดต้ัง มากอนหนาน้ี (หามทําการลบ Path ของเดิมออกเด็ดขาด เพราะอาจทําใหตัวโปรแกรมบางโปรแกรม ทํางานไมได ดวยหาเสนทางไมพบ) แลวทําการวางโดยกอนวางท่ีอยูของโปรแกรมภาษาจาวาตองวาง หนา เคร่ืองหมาย เซมิโครอ น (;) เสมอแสดงในภาพท่ี 1.11
ภาพท่ี 1.11 แสดงหนา ตาง การกาํ หนด Path ของระบบปฏบิ ัติการวนิ โดว 7
การทาํ งานของโปรแกรมภาษาจาวาบนระบบดอส (DOS)
การสรางซอรสโคดเบื้องตนดวยตัวอิดิเตอรที่ติดมากับระบบปฏิบัติการวินโดว คือ โนตแพด (Notepad) ดังตัวอยางซอรส โคด ภาพที่ 1.12 บนั ทกึ ชื่อ first เปน นามสกลุ .java (first.java)
ภาพที่ 1.12 แสดงซอรสโคด ชื่อ first.java บน Notepad
18
จากภาพท่ี 1.12 ส่ิงสําคัญในการจัดเก็บซอรสโคด ช่ือของแฟมขอมูลตองเปนชื่อเดียวกันกับ ชื่อของคลาสในซอรสโคด ในที่นี้ช่ือ public class first ดังน้ันชื่อท่ีใชในการจัดเก็บตองเปน first ดวย เชนกัน (first ไมเ ทากับ First ดว ยเพราะรูปแบบของตวั อักษร f กับ F คนละตัวกนั )
เม่อื ตองการทาํ การคอมไพลซอรสโคด first.java ดวยการคําสั่ง javac.exe บนระบบดอสทําได โดยออกสู Command Prompt แสดงภาพท่ี 1.13 และภาพที่ 1.14 แสดงหนาตา งระบบ DOS
ภาพท่ี 1.13 แสดงการเขาสูระบบ Dos ดว ย Command Prompt
ภาพท่ี 1.14 แสดงการใชค าํ สั่งพน้ื ฐานระบบ DOS
19
จากภาพที่ 1.14 เปนสวนของระบบ DOS ท่ีเปดโอกาสใหสามารถส่ังการควบคุมขั้นพื้นฐานได เชน คําส่ัง cd\ หมายถึง สั่งใหระบบออกไดเร็คทรอรีปจจุบัน (c:\Users\Administrator>) สูไดรฟซี (c:\>) คําส่ัง d: หมายถึง สั่งใหระบบยายไปไดรฟดี (d:\>) คําส่ัง cd java หมายถึง การยายไปท่ีไดเร็ค ทรอรีช่ือ java คําส่ัง dir หมายถึง การส่ังใหแสดงชื่อแฟมขอมูลท่ีอยูในไดเร็คทรอรีปจจุบัน (c:\java>) มีแฟมขอมูลใดบาง ซ่ึงพบแฟมขอมูลช่ือ first.java สรางข้ึนเม่ือ 12 ตุลาคม 2013 เวลา 12.30 PM ขนาด 122 ไบท
ภาพท่ี 1.15 แสดงการทาํ งานของโปรแกรมภาษาจาวา จากภาพท่ี 1.15 สามารถส่ังทําการใหระบบ dos ทําการคอมไพลซอรสโคดแฟมขอมูล first.java ดว ยคาํ ส่งั javac first.java ไดโดยไมม ีขอ ผิดพลาด เพราะบรรทัดหลังจากส่ังคอมไพลไมมีการ แจงขอผิดพลาดใดๆ ซ่ึงตัวคอมไพเลอรจาวาทําการสรางไบทโคดจาวา ที่มีช่ือเดียวกันแตนามสกุลเปน .class (first.class) การส่ังใหโปรแกรมจาวาทํางาน (Run) ดวยจาวาเวอรชัวนแมทชีน ทําการอินเตอรพรีเตอร ใหกับระบบปฏิบัติการดวยการแสดงขอความวา Hello Word!!! ดวยคําส่ัง java first โดย java เปน คําสัง่ ใหท าํ งาน (Run) สวน first เปนไบทโ คดนามสกุล .class จึงไมต องกาํ หนดนามสกุล แสดงในภาพท่ี 1.15
20
การติดตัง้ โปรแกรม Edit Plus
โปรแกรม Edit Plus สามารถดาวนโหลดไดท่ี //www.editplus.com/download.html สามารถนาํ มาใชไ ดฟ รี โดยจาํ กดั เวลาใชงาน ภาพท่ี 1.16
ภาพที่ 1.16 แสดงแหลงดาวนโหลด Edit Plus เมือ่ ไดตัวโปรแกรม Edit Plus ทําการติดต้ังโปรแกรมลงบนเครื่องคอมพิวเตอรแลวลําดับถัดมา ทําการสรางเครือ่ งมือสําหรับการใชงานของนักพัฒนาโปรแกรมบนโปรแกรม EditPlus โดยสรางไดโดย การเลอื กรายการ Tools เลอื ก Configure User Tools (ภาพท่ี 1.17)
ภาพที่ 1.17 แสดงการกาํ หนดเครื่องมอื Edit Plus
21
ทําการสรางเคร่ืองมืออํานวยความสะดวก ในการใหมีคําสั่งการ Compiler กับคําสั่ง Run ของ ตวั โปรแกรมภาษาจาวา ดวย Group Name กําหนดช่อื เปน JaVa และทาํ การเลือก ok (ภาพ 1.18)
ภาพท่ี 1.18 แสดงการกาํ หนดชือ่ กลมุ เปน JaVa ทําการเพ่ิมเคร่ืองมือในกลุม JaVa ดวยการเลือก Add Tool>> และเลือก Program ถัดมาทํา การกําหนดเมนูยอยของกลุมเครื่องมือ JaVa ดวยการพิมพชื่อวา CompilerJava ในชอง Menu Text สวน Command: ใหทําการเลือก javac.exe ที่อยูในโฟลเดอรของโปรแกรมภาษาจาวา ตามภาพที่ 1.19 สวน Argument: กําหนดใหเปน File Name ดวยเพราะในการส่ัง Compiler ตองกําหนดช่ือ พรอมนามสกลุ (first.java) เพอ่ื ทาํ การคอมไพล สว น Action ใหเ ลอื ก Capture Output
ภาพที่ 1.19 แสดงการสรา งเครอื่ งมือ CompilerJava
22
กําหนดเครื่องมือใหกับกลุม JaVa ดวยเมนู RunJava ในชอง Menu Text: สวน Command: ใหท าํ การเปดคาํ สั่ง java.exe ท่อี ยใู นตวั โปรแกรมภาษาจาวา ในชอง Argument: ใหทําการเลือก Files Name Without Extension ในสวนของ Action: ใหเลือก Capture output จากนั้นทําการเลือก Apply และ OK (ภาพที่ 1.20)
ภาพที่ 1.20 แสดงการสรา งเมนยู อ ย RunJava บนกลุมเคร่อื งมือ JaVa
หลกั การเขยี นโปรแกรมภาษาจาวา
การเขยี นโปรแกรมจาวาตามทีก่ ลาวมาขางตน ตัวซอรส โคด สามารถทําการเขียนดวยอิดิเตอรใด ก็ได Notepad หรือ Edit Plus สิ่งสําคัญในการบันทึกช่ือของซอรสโคด ตองเปนชื่อเดียวกับชื่อ class ดว ยเพราะ เม่อื ซอรส โคดถูกคอมไพลต ัวคอมไพเลอรจะทําการสรางคลาสท่ีเปนไบทโคดข้ึนมา โดยใชช่ือ ของแฟมขอ มูลทีบ่ นั ทกึ จากนามสกุล .java มาเปน นามสกุล .class
การสรางโคด ภาษาจาวา มคี วามคลายกบั การสรางโคดใหกับภาษาซี หรือ ซีพลัสพลัส คือตองมี เมธอด main() เปนจุดเร่ิมตนการทํางาน และตองถูกกําหนดใหอยูในคลาสใดคลาสหน่ึง ของโคดจาวา เมธอด main( ) จะตองปรากฏไดเพียงคร้ังเดียวในหน่ึงโคดโปรแกรมภาษาจาวา ดวยเพราะเปนเมธอด หลัก และถาโคดใดไมมีสวนของเมธอด main() โคดน้ันจะไมสมบูรณ หมายถึงไมสามารทํางานได เมธอด main () ตามกฎของโปรแกรมภาษาจาวา ตองมีสวนประกอบประโยคดังนี้ public static void main(String args[]){ } การกําหนดใหเปนเมธอด main() เปน public เพ่ือตองการใหโคดท่ีเขียน สามารถเขาถึงหรือเรียกใชงานไดขณะเม่ือสังใหทําการการรัน (interpreter) สวนการกําหนดใหคลาส เปน static ดว ย มผี ลทําใหเมธอด main() สามารถเรยี กใชไ ดโ ดยไมตองสรา ง instance ของคลาส
ดังนั้นทุกครั้งที่มีการสรางโคดโปรแกรมภาษาจาวา ตองมีเมธอด main() ท่ีประกอบไปดวย public static void และสวน Argument ตอ งเปน String Array เสมอ ซ่ึงจะมีการกาํ หนดคา ในอารเรย อารกเู มนต หรอื ไมกําหนดกส็ ามารถสรางโคดได ตัวอยา งโปรแกรมท่ี 1.1 ชอ่ื first.java
23
ตัวอยางโปรแกรมท่ี 1.1 เปนตัวอยางแรก ซ่ึงมีโครงสรางพ้ืนฐานท่ีจําเปนในการสรางโปรแกรมคร้ังแรก ดังนั้นการพิมพคําส่ังทุกคําสั่งตองถูกตอง โดยเฉพาะอยางย่ิงตัวอักษรพิมพเล็ก พิมพใหญ ตองถูกตอง ท้ังหมด บันทึกเปนช่ือ first.java (โดยใหทําการสําเนาชื่อแฟมขอมูล ที่อยูหลัง public class เปนช่ือ ของแฟมขอมูลท่ีตองการบันทึก เปนการลดปญหาการผิดพลาดจากการใชช่ือท่ีประกอบดวยตัวอักษร พมิ พเลก็ พมิ พใหญ) public class first{ public static void main(String args[]){
System.out.println(“Hello World!!!”); } } การส่ังใหทําการคอมไพลโคดโดย เลือกที่ Tools เลือกรายการยอย CompilerJava (หรือ เลือกใชซอรตคีย ดวยการกด Ctrl คางไวพรอมกดเลข 1) ภาพท่ี 1.21 เม่ือไมมีขอผิดพลาดใดๆ จะ แสดงผลการคอมไพลด ว ย Output completed
ภาพท่ี 1.21 แสดงการส่งั คอมไพลโ คด โปรแกรมภาษาจาวา การส่ังใหโปรแกรมทํางานสามารถทําไดโดยการเลือกที่ Tools เลือกรายการยอย RunJava (หรือเลือกใชซอรตคีย ดวยการกด Ctrl คางไวพรอมกดเลข 2) ภาพท่ี 1.22 เมื่อไมมีขอผิดพลาดใดๆ จะแสดงผลการทํางานดวยขอความ Hello Word!!!
24
ภาพที่ 1.22 แสดงผลการทํางานดวย RunJava ตัวอยางโปรแกรมภาษาจาวา ที่มีการกําหนดรับคาใหกับอารเรยอารกูเมนต ผานทางการส่ัง Run ดังตัวอยา งโปรแกรมที่ 1.2 ชอื่ FirstArgs.java public class FirstArgs{ public static void main(String args[]) { System.out.println("Created By>>>"+args[0]); System.out.print("Welcome to java, "); System.out.println("Thank you for looking. "); System.out.print("-..-"); } } จากโปรแกรม 1.2 สวนของคําสั่ง System.out.println("Created By>>>"+args[0]); เปนการเรียก เมธอด println อยูในคลาส out ในแพ็คเก็ต System มาทําการแสดงผลออกทางจอหนา โดย เมธอด println เปนการส่ังใหขอความหรือคาของตัวแปรที่อยูในอารกูเมนตลิสต (Created By>>>) ออกสู หนาจอ และในสวนของอารกูเมนตลิสต คาท่ีสอง (args[0]) เปนการรับคาจากแปนพิมพขณะทําการส่ัง ให Run โปรแกรม ดังภาพที่ 1.22 ไดยกตัวอยางคาท่ีสงเปนขอความ SKUL ซ่ึงสามารถเปล่ียนคาได จากเมธอด println มีผลการแสดงคาในอารก เู มนตลิสตเ สรจ็ แลวระบบจะทําการขึ้นบรรทัดใหมรอคําสั่ง ถัดไป สวนเมธอด print ของ System.out.print("Welcome to java, "); เปนการส่ังใหแสดงคา Welcome to java, โดยแสดงเสร็จแลว เคอรเซอรยังคงอยูที่บรรทัดเดิม เม่ือมีคําส่ังตอมาเปนเรียกใช เมธอด println จะทําการแสดงขอความหรือคาของตัวแปรท่ีอยูในอารกูเมนตลิสตออกทางหนาจอ แสดงภาพท่ี 1.23
25
ภาพที่ 1.23 แสดงการส่ัง Run โดยการกําหนดอารกเู มนต
สรุป
การเขียนโปรแกรมคอมพิวเตอรสําหรับนักพัฒนาโปรแกรม สามารถทําการสรางงานดวยการ เขียนโปรแกรมได 2 แบบ คือ แบบการเขียนโปรแกรมแบบโครงสราง กับแบบการเขียนโปรแกรมเชิง วัตถุ ซึ่งการเขียนโปรแกรมเชิงวัตถุ สามารถสรางงานไดดวยโปรแกรมแกไขใดๆ แลวทําการบันทึกเปน แฟมขอมูลนามสกุล .java เพ่ือนํามาสรางคลาสไดดวยตัวแปลภาษาจาวา (javac.exe) สงผลทําการให ไดแฟมขอมูลทเ่ี ปนคลาสมาหนึง่ แฟม นามสกลุ .class จากนน้ั เมอื่ ตองการนาํ งานท่ีพัฒนาข้ึนมาไปใชงาน สามารถทําไดโดยการนําตัวจาวาเวอรชัวนแมทซีนที่ทําหนารัน (java.exe) มาสั่งใหทํางานตามท่ี นักพฒั นาเขยี นไดส รา งไว
แบบฝก หดั
1. การเขียนโปรแกรมภาษาจาวามีความแตกตาง หรือสมั พันธก ับภาษาแบบโครงสรา งอยา งไร 2. จงอธิบายระหวา ง jacac.exe กับ java.exe วา หนา ทีอ่ ะไร 3. จงอธิบายความแตกตางระหวา งโปรแกรม Notepad กับ EditPlus 4. จงอธบิ ายความสําคัญของการแปลภาษา (Compiler) วาสาํ คัญอยางไร 5. จงอธบิ ายความสาํ คญั ของการสงั่ ทาํ งาน (Run) วา สาํ คัญอยางไร 6. จงประโยชนของการกาํ หนดเสน ทาง(path) หลงั จากทาํ การติดต้ังโปรแกรมแลว 7. การออกจากระบบปฏิบตั ิการวนิ โดวสรู ะบบดอสทําไดอยา งไร 8. การเขียนคําอธิบายในโปรแกรมภาษาจาวาทาํ ไดด วยเครอ่ื งหมายใดไดบาง 9. คําส่ังภาษาจาวาสามารถเขียนดว ยตวั อักษรตัวใหญไดหรือไมเ พาะเหตุใด 10. ในการสง่ั จบคาํ ส่ังของโปรแกรมภาษาจาวาในแตล ะบรรทัด ใชเ ครื่องหมายใด
……………………………………………
26
เอกสารอางองิ
กติ ติ ภักดีวฒั นะกุล, และศริ วิ รรณ อัมพรดนยั . (2544). Object-Oriented ฉบับพนื้ ฐาน. กรุงเทพฯ: สาํ นักพิมพ เคทพี ี.
รงุ โรจน โพนคาํ , และปราลี มณีรตั น. (2545). Java Programming. กรงุ เทพฯ: ซคั เซค มีเดยี บจก. วรรณิกา เนตรงาม. (2545). คมู อื การเขยี นโปรแกรมภาษาจาวา ฉบบั ผูเริ่มตน. นนทบุรี: อนิ โฟเพรส
บจก. วีระศกั ด์ิ ซงึ ถาวร. (2543). Java Programming Volume I. กรุงเทพฯ: ซีเอด็ ยเู คช่ัน บจก.
- . (2545). Java Programming Volume II. กรงุ เทพฯ: ซีเอด็ ยูเคช่นั บจก. สุรางคนา ระวงั ยศ. (2555). การเขียนโปรแกรมเชงิ วัตถุ. คน เมอ่ื 23 สิงหาคม 2555, จาก
//www.kmitl.ac.th/~s3010819/MyFile/My%20Ebook/JAVA/ %BA%B7%B7%D5%E8%201%20%20%BA%B7%B9%D3.pdf About the java technology. (2012). Retrieved August 28, 2012, from: //docs.oracle.com/javase/tutorial/getStarted/intro/definition.html Anban Pillay (2007). Object Oriented Programming using Java. University of KwaZulu- Natal. Armstrong, E. (2002). The J2EE™ 1.4 Tutorial. Network Circle, CA: Sun Microsystem, Inc. Java download (2012). Retrieved August 28, 2012, from: //java.sun.com/javase/downloads/index.jsp
27
แผนบริหารการสอนประจําบทท่ี 2
หัวขอ เนื้อหา
การเขยี นโปรแกรมเชงิ วัตถุ คลาส วตั ถุ หรือ ออบเจกต การปดบงั ขอมูล การสบื ทอดคณุ สมบัติ นามธรรม โพลมิ อฟซมึ
พน้ื ฐานการเขยี นโปรแกรมภาษาจาวา สวนประกอบของโปรแกรมภาษาจาวา
อักษรหรือคาํ สงั่ ท่ีมองไมเห็น คําอธิบายโคด คําสงวน ชื่อเฉพาะ คําจัดกลุม หรือแยกกลุม คําที่แสดงคา คงท่ี ตัวอยางโปรแกรม สรุป
วตั ถุประสงค์เชงิ พฤตกิ รรม
เมื่อนกั ศึกษาไดศ ึกษาเนอ้ื หาในบทเรียนน้แี ลวสามารถ 5. อธิบายการความคดิ รวบยอดของแนวคดิ การโปรแกรมเชงิ วตั ถุ 6. อธบิ ายข้ันตอนการเขยี นโปรแกรมภาษาจาวา 7. มีทกั ษะการแปลโปรแกรมภาษาจาวาดวยโปรแกรม Edit Plus 8. มีทกั ษะการเขยี นโปรแกรมภาษาจาวา
28
วธิ ีการสอนและกิจกรรมการเรียนการสอน
1. วธิ สี อน 1.1 ใชว ิธีสอนแบบบรรยายในหัวขอหลักการเขยี นโปรแกรมเชิงวตั ถุ
1.2 ใชว ิธีสอนแบบปฏิบัติการเร่ืองพืน้ ฐานการเขียนโปรแกรมภาษาจาวา และสว่ นประกอบของ โปรแกรมภาษาจาวา
1.3 ใชวิธีสอนแบบปฏิบัติการกําหนดโปรแกรมใหนักศึกษาไดทดลองบนเครื่อง คอมพิวเตอร และซอฟตแ วรท่ที าํ งานไดจ ริง 2. กจิ กรรมการเรียนการสอน
2.1 ใหน ักศกึ ษาปฏิบัตกิ ารตามทผี่ สู อนสาธิตการโปรแกรมภาษาจาวา
2.2 ใหนกั ศกึ ษาอภิปรายผลการทดลอง 2.3 ทาํ แบบฝกหดั เกยี่ วกับเร่ืองการเขียนโปรแกรมเชิงวัตถุ
สอ่ื การเรียนการสอน
15. แฟมขอมลู การนําเสนอ ของบทที่ 2 16. ระบบอินเทอรเนต็ สาํ หรบั คนควา โคดเพมิ่ เติม 17. เคร่ืองคอมพวิ เตอรที่ใชระบบปฏิบตั ิทสี่ ามารถเขาถึงระบบปฏบิ ัตกิ ารดอส (DOS Prompt) 18. ตวั แปลโปรแกรมภาษาจาวา (Java Compiler) 19. ระบบเครือขายคอมพวิ เตอร ในหอ งปฏิบัติการคอมพิวเตอร 20. หนวยความจาํ เคล่ือนที่ (Handy Drive หรอื External Hard disk) 21. เอกสารประกอบการสอน ตํารา เอกสารที่เกี่ยวขอ ง
การวัดและการประเมินผล
1. การสังเกตจากความสนใจ และการมสี วนรวมระหวางเรยี น ดว ย การซักถามของผสู อน หรอื การตอบสนองดวยการตอบคําถาม หรือพฤติกรรมในการรบั รู รับฟง
2. การวัดความสามารถผเู รยี นไดดวยผลการทดลอง ใบงานหลงั บทเรียน ในดา นทักษะการใช เคร่ืองคอมพิวเตอร การเขียนโคดโปรแกรม การแกปญหาในการทดลองระหวา งเรียน
3. การตอบคาํ ถามทายบท ของผเู รียนมีความสนใจ กระตือรือรนในการทาํ งาน การมีภาวะ ผนู าํ ในหอ งเรียน การกลา เสนอความคดิ เห็นในการทํางาน
4. สงั เกตจากการฝก และผลงานภาคปฏิบัติ 5. สงั เกตจากความกระตือรือรนของนักศึกษา 6. ตรวจแบบฝกหดั
29
บทท่ี 2 การเขียนโปรแกรมเชงิ วตั ถุ (Object Oriented Programming: OOP)
การเขียนโปรแกรมเชิงวัตถุ เปนการเขียนโปรแกรมโดยการกําหนดสิ่งท่ีเปนปจจัยในการเขียน โปรแกรม เปนวัตถุ(object) ซ่ึงวัตถุสามารถเปนไดท้ังรูปธรรม(ส่ิงท่ีจําตองได) และนามธรรม(ส่ิงที่จับ ตองไมได) สงผลทําใหการเขียนโปรแกรมเปนเร่ืองสามารถทําไดอยางรวดเร็ว และการปรับปรุงแกไข โปรแกรมขนาดใหญทําไดงายและใชเวลานอยลง ซึ่งการเขียนโปรแกรมเชิงวัตถุเปนรูปแบบการเขียน โปรแกรมคอมพิวเตอรท่ีจําลองแนวคิด วาปจจัยท่ีปอนเขาตัวโปรแกรมเปนวัตถุ ซึ่งสามารถนํามา ประกอบ ทํางานรวมกันได สามารถเพิ่มหนาท่ีของวัตถุได สามารถแลกเปลี่ยนขอมูล แลกเปล่ียนหนาที่ และนําผลการประมวลผล สงตอ ไปให วตั ถุ อ่นื ๆ ได
วัตถุ(อ็อบเจกต)
วัตถุ หรือ อ็อบเจกต ที่ใชในการเขียนโปรแกรมเชิงวัตถุ จึงมีสวนประกอบที่สําคัญ 2 สวน คือ สวนท่ีหนึ่งคุณลักษณะ (attribute) เปนสิ่งที่บอกคุณลักษณะทั่วไปของวัตถุ หรือขอมูลของวัตถุ (data) สวนท่ีสอง พฤติกรรม (behavior) เปนสิ่งท่ีวัตถุสามารถกระทําไดหรือการกระทําของวัตถุ (method) การเขียนโปรแกรมเชิงวตั ถุ ดวยภาษาจาวามีส่ิงท่ีเปนควรรูพืน้ ฐานที่สําคัญในการเขียนโปรแกรม ดงั น้ี
คลาส (Class) คือการประกาศภาพรวมของกลุมวัตถุท่ีมีคุณลักษณะ (Data or Attribute)
ที่เหมือนกัน มีพฤติกรรมท่ี (Behavior or Method)เหมือนกัน ซึ่งคลาสเปนโครงสรางพ้ืนฐานของการ เขียนโปรแกรมเชงิ วตั ถุ เชน คลาสรถยนตเ กง มีคุณลักษณะประกอบดวย ลอ 4 ลอ มีพวงมาลัย มีตัวรถ มีเคร่ืองยนต มีเครื่องปรับอากาศ สวนพฤติกรรม คือ สามารถวิ่งได เหลียวไดเดินหนา ถอยหลัง หยุด เรงความเร็วได เปนตน ดังน้ันคลาสเปรียบเสมือนพิมพเขียว (template) หรือตนแบบของวัตถุนั่นเอง ดังน้ันหากจะตอ งสรางวตั ถุ ลาํ ดับแรกจาํ เปนตองสรา งคลาสขึ้นมากอ น
อินสแตนซ (instance) ภาษาจาวามีการแบงตัวแปรเปน 2 ชนิดคือ ชนิดไพรมิทีฟ
(primitive type) คือตัวแปรที่เก็บขอมูลพ้ืนฐานท่ีไมใชวัตถุ เชน int, char, float, boolean เปนตน สว นตวั แปรอกี ชนดิ หนึง่ ท่ีใชอ างถงึ ขอมูลในหนวยความจําทเ่ี ปน วตั ถุ ในภาษาจาวาจะเรียกตัวแปรชนิดน้ี วาอางอิง (reference) ซ่ึงการทํางานคลายๆกับพอยเตอรในภาษาซี คือเปนตัวแปรท่ีอางไปยัง หนวยความจําที่เก็บขอมูลที่เปนวัตถุน้ันๆ ตัวแปรพอยเตอรจึงตัวแปรเปนที่เก็บเฉพาะตําแหนงของ ขอ มูล ถา จะสรา งขอมลู ใหมก็ตองจัดการจองหนวยความจําขึ้นมาแลวใหพอยเตอรนี้ไปชี้ เม่ือไมตองการ ใชก็สามารถคืนหนวยความจําได กลาวคือตัวแปรชนิดอางอิงก็คือ อินสแตนซในภาษาจาวานั่นเอง หมายความวาอินสแตนซเปนตัววัตถุที่ถูกสรางข้ึนมาในหนวยความจําดวยคําส่ัง new เปนการอางถึง ขอมูลในหนวยความจําท่ีเปนวัตถุ ซ่ึงทํางานคลายๆกับ พอยเตอร (pointer) ในภาษาซี คืออางไปยัง หนวยความจําท่เี ก็บขอ มลู นนั่ เอง ดังนั้นการสรางวัตถดุ วยอนิ สแตนซจ งึ เปนคําสง่ั พน้ื ฐานของภาษาจาวา
การปดบังขอมูล (Encapsulation or Information hiding) เปนวิธีการกําหนด
สิทธิในการเขาถึงขอมูล หรือกําหนดการกระทําตอกับวัตถุของ คลาสนั้นๆ ทําใหแนใจไดวาขอมูลของ วัตถุน้ันจะถูกเปลี่ยนแปลงแกไขผานทางเมธอด (methods) หรือ คุณสมบัติ (properties) ที่ไดรับ
30
อนุญาตเทานั้น การปดบังขอมูลนั้นเปนการปองกันไมใหอ็อบเจกตภายนอกเขาถึงขอมูลไดอยางอิสระ เปนการสรางความปลอดภัยใหกับขอมูล เพราะขอมูลจะถูกเขาถึงไดจากไดรับอนุญาตใหเปนผูมีสิทธิ์ เทาน้นั
การสืบทอดคุณสมบัติ (Inheritance) เปนการสืบทอดคุณสมบัติจากคลาสแมไปยัง
คลาสลูก โดยที่คลาสลูกสามารถสืบทอดคุณสมบัติมาจากคลาสแมได ซึ่งเปนคุณสมบัติของการนําอ็อบ เจกต กลับมาใชใหม (reuse) ประหยัดเวลาในการทํางาน ซึ่งเปนจุดเดนสําคัญ ของการเขียนโปรแกรม เชิงวัตถุดังนั้นในแตละแฟมขอมูลหรือคลาส จะประกอบดวยคลาสยอย หรือซับคลาส (sub class) จะ ไดร บั การถายทอดคุณสมบัติตางๆ มาจากคลาสหลัก (super class) หรือคลาสแม
นามธรรม (Abstraction) เปนการแสดงถงึ คุณลกั ษณะและพฤตกิ รรมของอ็อบเจกต เทาที่
จําเปนตองรับรูและใชงาน โดยซอนสวนที่เหลือเอาไวเพื่อไมใหเกิดความสับสน และสามารถนํามา เพ่ิมเตมิ คณุ สมบัติเพ่ิมเตม็ ภายหลงั ได
โพลิมอฟซึม (Polymorphism) เปนการกําหนดหนาท่ีการทํางานที่มีหลายรูปแบบ หรือ
กลาวไดวา หนึ่งเมธอด สามารถทํางานไดหลายๆรูปแบบ โดยมีช่ือเมธอดเดียวกัน แตสามารถทํางาน แตกตางกันได ซึ่งโพลิมอฟซึมสามารถแบงเปน 2 แบบ คือ การโอเวอรโหลดดิ้ง (Overloading) และ การโอเวอรไรดง้ิ (Overriding)
พ้นื ฐานการเขียนโปรแกรมภาษาจาวา
โครงสรางของโปรแกรมภาษาจาวา ตองมีประกอบดวยคลาสอยางนอยหนึ่งคลาส โดยในคลาส จะประกอบดวยสมาชิกท่ีเปนขอมูล(ตัวแปร) และหรือเมธอด (ในภาษาซีเรียกวา ฟงกชัน: Function) จํานวนสมาชิกของคลาสจะอยูภายในเครื่องหมาย “{ }” ในการสรางคลาสโดยภาษาจาวาสามารถสราง ขึ้นดวยการพิมพคียเวิรด class ตามดวยชื่อของคลาส ซ่ึงช่ือคลาสท่ีตองเปนชื่อเดียวกับแฟมขอมูลของ โปรแกรมท่ีสรางข้ึนโดยทําการบันทึกเปนนามสกุล .java ดวยเม่ือทําการคอมไพลโปรแกรมภาษาจาวา แลว จะไดคลาสท่ีเปน ช่อื เดียวกบั ตัวโปรแกรมภาษาจาวาทีม่ นี ามสกลุ .class
ในการสรางคลาสอยางที่กลาวขางตนวา โปรแกรมภาษาจาวาในหน่ึงแฟมขอมูลตองมีคลาส อยางนอยหนึ่งคลาส แตไมไดหมายความวามีเพียงคลาสเดียวในหนึ่งแฟมขอมูล ดังน้ันผูเขียนโปรแกรม (Programmer) สามารถกําหนดใหหนึ่งคลาสของหนึ่งแฟมขอมูลสามารถมีคลายยอยไดตามจํานวนท่ี ตอ งการได ตัวอยางในภาพท่ี 2.1
ดังน้ันเม่ือนําคลาสของโปรแกรมภาษาจาวามาใชงาน ดวยการอินเตอรพรีเตอรจาวา (Java Interpreter) น้ัน ทําใหสามารถอางอิงคลาสใหมาทํางานไดอยางอิสระ คือการเรียกใชคลาสสามารถ เรียกไดทั้งคลาสที่เปนคลาสหลักและคลายยอยได สงผลใหเวลาในการเรียกโปรแกรมภาษาจาวามาใช งาน คือเวลาการใชงานข้นึ อยกู บั วา ในการอินเตอรพรีเตอรของแตละคร้ังจะเรียกคลาสท้ังหมดมาทํางาน หรือเรียกคลาสบางสวนมาใชงาน เพราะการอินเตอรพรีเตอรแตละคร้ัง จะทําการโหลด (Load) คลาส มาใชงานเทาที่เรียกใชเทาน้ัน มีผลทําใหเวลาในการทํางานของแตละครั้งเปนเวลาใชงานจริงตามการ โหลดจํานวนเมธอดมาทํางานเทาน้ัน ซึ่งแตกตางจากโปรแกรมเชิงวัตถุภาษาซีพลัส ๆ ท่ีโคดของ ภาษาซพี ลัส ๆ จะถกู คอมไพลเพียงครั้งเดียวท้ังตัวโคดทําใหตัวไฟลนามสกุล .exe (executable code) มีขนาดใหญเพราะไดรวมฟงกช่ันท้ังโปรแกรมไวครั้งเดียว ดังนั้นเวลาในการทํางานจึงเทากันทุกครั้งท่ี เรียกโปรแกรมมาใชง าน
31
ภาพที่ 2.1 แสดงสรางคลาสหลักและคลาสยอย จากภาพท่ี 2.1 แฟมขอมูลท่ีเปนโคดจาวาชื่อ Abc.java เปนช่ือคลาสหลักช่ือ Abc.class ท่ีถูก ทําการคอมไพลแลวพบวามีคลาสยอยช่ือ a และ b ท่ีอยูภายในคลาสหลัก Abc เขียนแสดงผลการ คอมไพลเ ปนรปู คลาสเปน ดงั นี้ Abc$a.class และ Abc$b.class ตามลําดบั ในการกําหนดช่ือโคดจาวา ตามกลาวมาขางตนวาการท่ีทําการบันทึกโคดควรเปน ซื่อเดียวกัน กบั ชอ่ื คลาส แตกม็ ีการกาํ หนดช่อื แฟมขอมลู กบั คลาส ในบางกรณี คอื 1. ถาคลาสใดไมมีการกําหนดสิทธิ์การเขาถึงดวย public หรือ private หนา class ชื่อคลาส จะเปนชือ่ อะไรกไ็ ด ไมจําเปน ตอ งเปน ชือ่ เดียวกบั แฟมขอมูล (ภาพท่ี 2.2)
ภาพที่ 2.2 แสดงการบนั ทึกชื่อแฟมขอมลู a.java ดวยชื่อคลาสท่แี ตกแตงกนั ดวยช่อื Abc
32
จากภาพท่ี 2.2 โคดจาวาชื่อ a.java สามารถสรางช่ือแฟมขอมูลที่แตกตางกับช่ือคลาส (class Abc) ซึ่งไมผิดกฎการตั้งชื่อ สามารถทําการส่ังคอมไพลไดไมแจงขอผิดพลาด (Output Completed) แตโคดจาวาไมสามารถสั่งใหทํางาน (Run) ใหทํางานเปนลักษณะบนเครื่องสวนบุคคล (Stand Alone) ได เพราะในการสั่งใหทํางานดวยการรันไทลจาวาเปนการเรียกคลาส a ดวยคําสั่ง java a แต a เปน เพียงช่ือโคดจาวา สวนคลาสท่ีถูกสรางขึ้นดวยคําสั่ง javac a.java ทําการสรางคลาสชื่อ Abc (class Abc) จึงไมส ามารถทํางานได แตส ามารถทําการเรยี กคลาส Abc ที่ถูกสรางไดดวยคําส่ัง java Abc (ภาพ ท่ี 2.3) ไดดงั น้ี
ภาพท่ี 2.3 แสดงการเรียกใชงานคลาสที่มีชอ่ื แตกตา งกับโคดจาวา จากภาพท่ี 2.3 ในการบันทกึ โคด จาวา a.java ควรทาํ การเก็บไวโฟลเดอรเดียวกับที่ตัวคอมไพล กับตัวรันไทลจาวา (c:\Program Files (x86)\Java|jdk1.6.0_14\bin) ปองกันการจะทําใหเกิดการ ผดิ พลาด ในการเรียกใชคาํ ส่งั ไมพ บไพลท ต่ี องการเรียกใช (a.java) 2. การกําหนดช่ือแฟมขอมูลที่มีการกําหนดสิทธ์ิการเขาถึงคลาสดวย public ตามดวย class ช่ือตองเปนชื่อเดียวกัน ซึ่งการกําหนดสิทธ์ิการเขาถึงคลาสดวย public ในหนึ่งโคดสามารถกําหนดได เพียงครั้งเดียวเทานั้น ดังตัวอยางโปรแกรม Applet ที่เปนรูปแบบการทํางานของโปรแกรมภาษาจาวา อีกรูปแบบหนึ่งที่ทํางาน (รัน) โดยผานทางบราวเซอร (Browser) ซึ่งมีขั้นตอนดังนี้ 1.) สรางโคดจาวา (FirstApplet.java) 2.) ทาํ การคอมไพลดว ย javac FirstAplet.java ไดผ ลเปนคลาส FirstApplet.class 3.) นําคลาสมาเขียนเปนสคริปต แทรกใน HTML 4.) ทําการเรียกใชไดดวยบราวเซอร (Internet Explorer, Google Chrome, Fire Foxe เปนตน) 2.1) สรา งโคด จาวาสาํ หรบั Applet ทาํ การบนั ทกึ แฟมชอ่ื FirstApplet.java import java.applet.*; import java.awt.*; public class FirstAppelt extends Applet { public void paint(Graphics g) {
g.drawString("Hello World!", 25, 50); } }
33
2.2 ทาํ การคอมไพล FirstApplet เปน การสรา งคลาส FirstApplet.class (ภาพท่ี 2.4)
ภาพที่ 2.4 แสดงการผลคอมไพล FirstApplet.java ไดคลาส FirstApplet.class 2.3 ทําการสรางสคริปต Applet แทรกในเว็บเพ็จ HTML โดยทําการบันทึกดวยแฟมขอมูลชื่อ ใด ๆ ที่นามสกลุ html ในทีน่ ี้ตง้ั ชือ่ เปน JavaApplet.html ดงั ตวั อยางโปรแกรมดา นลาง (ภาพที่ 2.5) <HTML><HEAD><TITLE> This is My First Applet </TITLE></HEAD> <BODY> การแสดง Applet ทส่ี รางดวยโปรแกรมภาษาจาวา <P> <APPLET code = "FirstApplet.class" width = 200 height =100> </APPLET> </BODY> </HTML>
ภาพที่ 2.5 แสดงการแทรกสครปิ ต Applet ลงใน HTML
34
2.4 ทําการเรยี ก Applet มาใชงานสามารถทาํ การเรยี กใชไ ด 2 ลักษณะคือ 2.4.1 ใช appletviewer (ภาพท่ี 2.6)
ภาพท่ี 2.6 แสดงการเรยี กใช Applet ผา นทาง appletviewer 2.4.2 การเรียกผาน Applet ผา นทางบราวเซอร (ภาพที่ 2.7)
ภาพท่ี 2.7 แสดงการเรยี กใช Applet ผานทางบราวเซอร Chome **หมายเหตุ ในการเรียกใชผานบราวเซอร อาจมีการแสดงขอผิดพลาด ใหทําการปรับปรุง Java (TM) ถูกบล็อกเนื่องจากลาสมัย และดวยในดานการกําหนดความปลอดภัยของตัวบราวเซอร ของแตละคาย ดังนนั้ ตองทาํ การเลอื กทําการ อปั เดตปล๊ักอิน และเลอื ก เรยี กใชตอนน้ี เปนลําดับถดั มา (ภาพท่ี 2.8)
ภาพท่ี 2.8 แสดงการเรียกใชอปั เดตปลัก๊ อนิ และการอนุญาตเปด การใชงาน Java(TM)
35
สวนประกอบของโปรแกรมภาษาจาวา
ภาษาของโปรแกรมคอมพิวเตอรทุกภาษา ไมเวนกระทั้งโปรแกรมภาษาจาวา จะมีการกําหนด คําเฉพาะ และสัญลักษณ (การกําหนดดังกลาวเรียกวา token) วามีความหมายอยางไร รูปแบบของคํา (lexical grammar) เขียนอยางไร รวมท้ังโครงสรางระดับประโยค (syntax grammar) วาตองเขียน อยางไรใหถูกตอง โดยในการเขียนโปรแกรมภาษาจาในแตละโปรแกรม จะมีรูปแบบของซอรสโคด (source code) ท่ีประกอบดวย อักษรหรือคําสั่งที่มองไมเห็น (white space) คําอธิบายโคด (comment) คําสงวน (keywords) ชื่อเฉพาะ (identifiers) คําจัดกลุมหรือแยกกลุม (separators) คํา ที่ใชแ สดงคา คงท่ี (literals)
อักษรหรอื คําส่ังทมี่ องไมเห็น (white space)
ในการเขียนโคดทุกครั้ง โคดทุกโคดจะตองมีสวนประกอบของอักษรหรือคําสั่งท่ีมองไมเห็นอยู เสมอ เชน โคดที่เขียนวา public static void main(String args[ ]) พบวาระหวางคําวา public static void main จํามีการเวนวรรคระหวางคําทุกคํา ซึ่งเปนขอกําหนดของการเขียนโคดของภาษาจาวา ถา ผูเขียนโปรแกรมไมปฏิบัติ คือการเขียนโดยไมเวนวรรค (publicstaticvoidmain) เม่ือสั่งคอมไพเลอร จะเกิดการอานคําสั่งไมเขาใจ (error) รวมท้ังคําสั่ง String args[ ] ถาไมเวนวรรค (Stringargs[ ]) สงผล ทําใหตัวแปลภาษาหรอื คอมไพเลอร ไมเขาใจคําสงั่ ทีเ่ ขียนได
ในการเขียนโคดของโปรแกรมภาษาจาวา ผูเขียนโปรแกรมสามารถใช การเวนวรรคไดอยาง อิสระหมายความวา สามารถเวนวรรค ระหวางคําไดมากกวา 1 เคาะ หรือ เวนท่ีละยอหนา หรือ เวน เปนที่ละบรรทัด เพ่ือใหโคดท่ีเขียนอานเขาใจงาย ก็สามารถทําไดโดยไมมีผลกระทบตอการแปลคําสั่ง หรือคอมไพล ของโปรแกรม
คาํ อธิบายโคด (comment)
การเขียนโปรแกรมทดี่ ี ผูเขียนควรเขียนคําอธิบายของแตละคําส่ังหรือแตละฟงกชันหรือเมธอด วา เขยี นไวเพือ่ ทําอะไร เปนการเตือนความจําสําหรับผูเขียนโปรแกรม และสําหรับผูอานโปรแกรมทั่วไป ท่ีตองการศึกษาโคดที่ได เพื่อนําทําการพัฒนาตอ ซึ่งการคําอธิบายโคด สามารถทําไดเหมือนกับภาษาซี ซ่งึ แบงคาํ อธิบายโคด ออกเปน 3 ลกั ษณะคอื
1. ลักษณะแรก ใชเคร่ืองหมาย /* ตามดวยขอความทั้งภาษาไทยหรือภาษาอื่นๆ และทําการ ปด คาํ อธบิ ายดวยเครือ่ งหมาย */
2. ลักษณะที่สอง ใชเครื่องหมาย // ตามดวยขอความ ไดตลอดหนึ่งบรรทัด โดยไมตองมี เคร่ืองหมายใดสัง่ ปด
3. ลกั ษณะท่สี าม เปนการเขียนคาํ อธิบายมากวา หนงึ่ บรรทัดสามารถทําไดโดย ใชเครื่องหมาย /** และทําการปดดวยเครื่องหมาย */ หรือเครอ่ื งหมาย **/
คาํ สงวน (keywords)
คําสงวน เปน คําหรือตัวอักษรพิเศษ ที่ภาษาโปรแกรมคอมพิวเตอรแตละภาษา จําเปนตอง สงวนคําบางกลุมไว เพราะคําสงวน เปนคําส่ังของโปรแกรมภาษาน้ันหามไมใหผูเขียนโปรแกรมนํามาใช
36
เปนหนาท่ีใหม เปนช่ือตัวแปร ช่ือฟงกชัน ช่ือเมธอด ชื่อคลาส เปนตน ซ่ึงในโปรแกรมภาษาจาวา มีคํา สงวนจาํ นวน 50 คําคือ
abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, void, volatile, และ while
ช่ือเฉพาะ (identifiers)
ชอื่ เฉพาะ เปนการกาํ หนดช่อื ใหก ับโคดในโปรแกรม ชื่อตัวแปร ช่ือคลาส รวมทั้งชื่อแฟมขอมูล หามนําคําสงวนมาใชเด็ดขาด เวนแตการกําหนดใหมีความแตกตางเล็กนอย เชน ชื่อของตัวแปร ตองมี เคร่ือง $ นําหนาชื่อตัวแปร ชื่อของคลาสควรข้ึนตนช่ือคลาสดวยตัวอักษรพิมพใหญ เชนดวยกับช่ือ แฟมขอมูลเปนเหมือนช่ือคลาส ซ่ึงในโคดภาษาจาวา ช่ือเฉพาะที่ใชมีลักษณะเปน case-sensitive คือ คําของตัวอักษรใหญกับตัวอักษรเล็กเปนคนละชื่อกัน เชน คําวา First กับ first เปนชื่อที่เปนคนละคํา กันสามารถนาํ มาใชก าํ หนดเปน ตวั แปรไดท ้ังสองตัว เปนตน
คําจัดกลมุ หรือแยกกลุม (separators)
ในการเขียนโปรแกรม การจัดกลุมหรือแยกกลุม มีความสําคัญอยางมากในการจัดใหเปนกลุม ของคําสั่งใด ฟงกชันหรือเมธอดใด ใหทํางานเปนชุดเดียวกัน หรือปฏิบัติตามเฉพาะกลุมเทาน้ัน ในการ จัดกลุมสามารถทาํ ไดด วยเครอื่ งหมายแตล ะชนดิ ดังนี้
1. เครื่องหมายวงเล็บเปด “(” วงเลบ็ ปด “)” (parentheses) ใชสําหรับเปนชองทางเขา ชอง ทางออก ของอารก ูเมนต (argument) ของฟงกชันหรือเมธอดทุกคร้ัง ใชสําหรับเปนสวนที่ กําหนดเง่ือนไขของ if-else, while, for, และ do รวมท้ังใชสําหรับเปนการกําหนดลําดับ การคาํ นวณทางคณติ ศาสตรใ นสวนประโยคทางคณิตศาสตร (expressions)
2. เคร่ืองหมายปกกาเปด “{“ ปกกาปด “}” (braces) ใชหรับพื้นที่สมาชิกของ array และใช สําหรับกาํ หนดขอบเขตของ block, method และ class
3. เครือ่ งหมายกา มปูเปด “[” กามปูปด “]” (brackets) ใชสําหรับกําหนดจํานวนของ array และใชส ําหรบั กําหนดตําแหนงของ array ท่ตี องการติดตอใชง าน
4. เคร่อื งหมายเซมิโคลอน “;” (semicolon) ใชสาํ หรับสั่งจบแตล ะคาํ ส่ัง เพอ่ื ใหตัวแปลภาษา (compiler) นาํ คําสง่ั กอนเคร่ืองหมายเซมิโคลอนไปทําการแปลคาํ สัง่
5. เครื่องหมายคอมมา “,” (comma) ใชสําหรับการแยกประโยคของการประกาศ (declaration) ตวั แปร รวมท้ังในการแยกประโยคยอยใน for( คาเริ่มตน, เงื่อนไข, เพิ่มคา หรอื ลดคา )
6. เครือ่ งหมายจดุ “.” (full stop) ใชสาํ หรับแยกช่ือ package แยกช่ือ subpackage และใช สําหรับแยกช่อื class หรือชอ่ื instance กบั ชื่อสมาชิก
37
คําที่แสดงคาคงที่ (literals)
ในการเขียนโคดโปรแกรมภาษาจาวา ตองมีการกําหนดคาคงที่ใหกับตัวแปรชนิดตางๆ สามารถแบงเปน 5 ชนดิ คอื
1. คาคงที่จํานวนเต็ม (integer literal) ซึ่งคาคงที่จํานวนเต็มสามารถกําหนดตามเลขฐานได 3 เลขฐาน ประกอบดวย - เลขฐานแปด ในการกาํ หนดใหใชเลขศนู ย (0) นาํ หนาเลขท่ีตองการกําหนดคา เชน 0123 เปนตน - เลขฐานสบิ ในการกําหนดหา มใชเลขศนู ย (0) นําหนา เลขที่ตอ งการกําหนดคา เชน 123 เปนตน - เลขฐานสิบหก ในการกําหนดใหใชเลขศูนยเอก (0x) นําหนาเลขที่ตองการ กาํ หนดคา เชน 0x123 เปน ตน
2. คาคงท่ีเลขทศนิยม (floating point literal) สามารถกําหนดได 2 ลักษณะคือ 0.123 กับ กําหนดในรูปแบบวทิ ยาศาสตร 1.23e-1 หรอื 1.23E-1 เปน ตน
3. คาคงท่ีคาความจริง (boolean literal) เปนการกําหนดคาทางดานโลจิก (logic) มี 2 คา คือ true กบั false
4. คาคงท่ีตัวอักษร (character literal) กําหนดคาใหอยูภายใตเครื่องหมาย single quotes เชน ‘123’ หรอื ‘a’ เปน ตน
5. คาคงที่สตริง (string literal) กําหนดคาใหอยูภายใตเครื่องหมาย double quotes เชน “123” หรือ “abc” เปนตน
ตวั อยา งโปรแกรม ใหนักศึกษาเขียนโปรแกรม ตามตัวอยางที่กําหนดเพ่ือใหทราบถึงหลักการการเขียนโปรแกรม ภาษาจาวา ใหนักศึกษาฝกทักษะในการเขียนโปรแกรมตามโครงสรางของภาษาจาวาใหมีความเขาใจ เปน สาํ คัญ ตวั อยาง 2.1 โปรแกรมในการกาํ หนดคาคงท่ี public class MyfirstExpression { public static void main(String[] args) { int a = 10; //Assignment Variable a is integer type. System.out.println("Display data area"); double b = 12345.56789; //Assignment Variable a is double type. System.out.println("Display value of this expression b = " + b); /** Show information for user by System.out.println (“information display on screen”), and show another data by “+” value in variable **/ } }
38
จากตัวอยางโปรแกรม ใหนักศึกษาอธิบายสาระสําคัญของโปรแกรม โดยทําการวิเคราะหการ ทํางานของแตคําสั่ง ในแตละบรรทัดวาทํางานอยางไรโดยอางอิงจากเรื่อง อักษรหรือคําส่ังที่มองไมเห็น คาํ อธิบายโคด คําสงวน ช่อื เฉพาะ คําจัดกลุม หรือแยกกลุม คาํ ทีใ่ ชแสดงคา คงที่ เปนตน
ตวั อยา ง 2.2 โปรแกรมในการแสดงคาที่กําหนด
public class MySecondExpression { public static void main(String[] args)
{ int a = 21 String name = “ชื่อนักศกึ ษา”; Boolean rich = true;
System.out.println("Display student name = "+ name ); System.out.println("My old "+ a + “years” ); System.out.println("My family is riches ? " + rich); } }
ใหนักศึกษาอธิบายการทํางานโปรแกรม ดวยการวิเคราะหการทํางานของแตคําส่ัง ในแตละ บรรทดั วา ทํางานอยางไรโดย
ตวั อยา ง 2.3 โปรแกรมในการกําหนดคาในขอบเขต
public class MyThirdExpression { public static void main(String[] args) { boolean rich = true; If(rich) { System.out.println(" I have a lot of money "); } else { System.out.println("My family need some money"); System.out.println("Please me… "); } } }
ใหนักศึกษาอธิบาย โดยทําการวิเคราะหการทํางานของแตคําส่ัง ในแตละบรรทัดวาทํางาน อยางไรโดยอา งองิ ทงั้ โปรแกรม
39
ตัวอยาง 2.4 การเขียนโปรแกรม ดวยการจบคําส่ังของแตละบรรทัดดวยคําส่ัง ; หรือเขียนโคดใน บรรทดั เดยี วกันมากกวาหน่ึงคําสงั่ public class ExpAndSemicolon { public static void main(String[] args)
{ int A = 100, B = 200; double C; System.out.println("Display variable A = "+ A ); System.out.println("
Display variable B = "+ B ); System.out.println("The result of Rectangular area is " + A*B + “ unit”
+ “ . ”); } } ใหน กั ศกึ ษาสงั เกตผลการทาํ งานของโปรแกรมวาปกติ หรือมีขอผิดพลาดเรื่องใดบาง
ตวั อยาง 2.5 โปรแกรมท่ยี ังไมสมบูรณ BugCode { public static viod nain(String[] args)
{ Ine a = 10: Boolean Grade = false; If(grade) { Syftem.out.println(" Try learning again. "); Sytem.ut.println(" Cheer up…"); } else { System.out.print("You are very good."): Systen.out.println("Good luck!!!");
} } ใหนกั ศึกษาชวยกันในการทาํ การแกไ ขโคด ใหถกู ตอ ง และเขียนโคด ใหมท ี่สมบรู ณ
40
สรปุ
การเขียนโปรแกรมเชิงวัตถุ ดวยโปรแกรมภาษาจาวา เปนการเขียนโปรแกรมคอมพิวเตอรท่ี พัฒนามาจากการจําลองแนวคิดของมนุษย โดยการมองของตางๆ รอบตัวที่เปนปจจัยที่ใชในการปอน ขอมูลที่เปนกอนๆ โดยในแตละกอนน้ันๆ มีสวนประกอบของหนึ่งกอนวัตถุเปนคาตัวแปรตางๆ รวมท้ัง กอนวัตถุหนึ่งกอนมีหนาท่ีในการทํางานที่แตกตางกัน ซ่ึงอาจตีความหมายเม่ือเทียบกับการเขียน โปรแกรมแบบโครงสราง ภาษาซีวา กอนวัตถุหนึ่งกอนเทียบไดกับหนึ่งโครงสรางของภาษาซี ในหน่ึง กอนสามารถประกอบดวยตัวแปรตางๆ ประกอบดวยฟงกชันท่ีหนาที่ในการทํางาน เทียบไดกับเมธอด ของภาษาจาวา แตดัวยภาษาจาวาไดมีการพัฒนามาจากภาษาซีพลัสพลัส จึงทําใหตัวภาษาจาวาไดทํา การปรับปรุงการใหมีทํางานท่ีมีประสิทธิภาพมากขึ้น ภาษาจาวาสามารถสงตอหรือสรางวัตถุใหจาก ตนแบบของวัตถุเดิมไดเหมือนกับตนฉบับ หรือสามารถสรางวัตถุใหใหมีหนาท่ี (เมธอด)ที่แตกตางจาก ตนฉบับได(โพลิมอปริซึม) ภาษาจาวาสามารถนําวัตถุมาประกอบทํางานรวมกันได สามารถเพ่ิมหนาท่ี ของวตั ถุใหมไ ด สามารถแลกเปล่ยี นขอมลู ระหวา งวัตถุได และนําผลการประมวลผลกบั วตั ถุ อื่นๆ ได
แบบฝก หดั
1. ยกตวั อยา ง white space พรอ มอธบิ ายความหมายของแตล ะคาํ 2. เขยี นคาํ key word มาอยา งนอ ย 10 คํา พรอ มอธิบายหนาท่ีของแตล ะคาํ มาพอสงั เขป 3. เขียนคาํ อธิบายความแตกตางระหวางเครอ่ื งหมาย “( )” กับเคร่อื งหมาย “{ }” 4. เขียนตัวอยางการกําหนดคาใหกับตัวแปรท้ังหาชนิด คือ 1) คาคงท่ีจํานวนเต็ม 2) คาคงท่ีเลข
ทศนิยม 3) คา คงทีค่ า ความจริง 4) คาคงท่ตี ัวอกั ษร 5) คา คงทีส่ ตริง ชนิดละ 5 คา 5. เขียนตัวอยางการกําหนดคาใหกับตัวแปรท้ังสามเลขฐาน คือ 1) เลขฐานสบหก 2) เลขฐานสิบ
- เลขฐานแปดมาอยา งนอ ยเลขฐานละ 10 คา 6. จากโคดดานลางจงเขยี นแสดงผลการทํางาน
class IntergerType { public static void main(String arg[]) { System.out.println(10); System.out.println(010); System.out.println(0x10); } }
เขียนเหตุผลการแสดงคา ของโคดวาไดผ ลท่แี สดงการทาํ งานเปนเพาะเหตใุ ด
41
7. จากโคดดานลา งจงเขียนแสดงผลการทํางาน class ConstantType { public static void main(String arg[]) { System.out.println(12345678901234); System.out.println(12345678901234L); } }
เขียนเหตุผลการแสดงคาของโคด วาไดผลทแ่ี สดงการทํางานเปนเพาะเหตุใด 8. จากโคด ดา นลา งจงเขียนแสดงผลการทํางาน
class FloatType {
public static void main(String arg[]) {
System.out.println(0.123456789); System.out.println(1.23456789e-1); System.out.println(1.23456789E-1); } } เขียนเหตผุ ลการแสดงคา ของโคด วา ไดผ ลท่แี สดงการทาํ งานเปน เพาะเหตุใด 9. จากโคด ดา นลางจงเขียนแสดงผลการทาํ งาน class FloatDoubleType { public static void main(String arg[]) { float f = 3.145926535897896F; double d = 3.145926535897896D; System.out.println(f); System.out.println(d); } } เขยี นเหตุผลการแสดงคา ของโคด วาไดผ ลทีแ่ สดงการทํางานเปน เพาะเหตใุ ด
42
10. จากโคด ดา นลา งจงเขียนแสดงผลการทาํ งาน class BooleanType { System.out.println(true); System.out.println(false); System.out.println( 1 < 10); System.out.println(10 <= 100); System.out.println(100 > 100); System.out.println(100 >= 100); System.out.println(‘A’ == ‘a’); System.out.println(‘A’ != ‘a’); }
เขยี นเหตุผลการแสดงคาของโคดวาไดผ ลท่ีแสดงการทาํ งานเปน เพาะเหตุใด --------
43
เอกสารอางองิ
กิตติ ภักดีวฒั นะกลุ , และศริ วิ รรณ อัมพรดนัย. (2544). Object-Oriented ฉบับพ้นื ฐาน. กรงุ เทพฯ: สํานกั พมิ พ เคทีพี.
รุงโรจน โพนคาํ , และปราลี มณรี ตั น. (2545). Java Programming. กรุงเทพฯ: ซัคเซค มเี ดยี บจก. วรรณิกา เนตรงาม. (2545). คมู ือการเขยี นโปรแกรมภาษาจาวา ฉบบั ผูเริ่มตน. นนทบุรี: อินโฟเพรส
บจก. วีระศักดิ์ ซึงถาวร. (2543). Java Programming Volume I. กรงุ เทพฯ: ซเี อ็ดยูเคชั่น บจก.
- . (2545). Java Programming Volume II. กรงุ เทพฯ: ซเี อด็ ยูเคชนั่ บจก. สุรางคนา ระวังยศ. (2555). การเขียนโปรแกรมเชงิ วตั ถุ. คนเม่อื 23 สงิ หาคม 2555, จาก
//www.kmitl.ac.th/~s3010819/MyFile/My%20Ebook/JAVA/ %BA%B7%B7%D5%E8%201%20%20%BA%B7%B9%D3.pdf About the java technology. (2012). Retrieved August 28, 2012, from: //docs.oracle.com/javase/tutorial/getStarted/intro/definition.html Anban Pillay (2007). Object Oriented Programming using Java. University of KwaZulu- Natal. Armstrong, E. (2004). The J2EE™ 1.4 Tutorial. Network Circle, CA: Sun Microsystem, Inc.
44
แผนบรหิ ารการสอนประจาํ บทที่ 3
หัวขอเนอ้ื หา
ตัวแปร ชนดิ ขอ มลู ตวั ดาํ เนินการ
ตัวดําเนนิ การทางคณิตศาสตรเลขจํานวนเตม็ ตัวดาํ เนนิ การทางคณติ ศาสตรเลขทศนิยม ตวั ดาํ เนนิ การทางคณติ ศาสตรรว มกับการกําหนดคา ตวั ดาํ เนนิ การทางคณิตศาสตรการเพิ่มคาและการลดคา สรุป แบบฝกหดั เอกสารอางองิ
วัตถปุ ระสงคเ ชิงพฤติกรรม
เมอ่ื นกั ศกึ ษาไดศึกษาเนอ้ื หาในบทเรยี นนี้แลว สามารถ 1. บอกความสาํ คญั ของการกําหนดตัวแปร 2. อธบิ ายชนดิ ของตัวแปรโปรแกรมภาษาจาวา 3. อธิบายข้ันตอนการใชตัวดําเนนิ การชนดิ ตางๆ 4. มีทกั ษะการโปรแกรมภาษาจาวาดวยการกําหนดตวั แปรชนดิ ตา งๆ 5. การเขียนโปรแกรมภาษาจาวาประยุกตใ ชง านตัวแปรและตวั ดําเนนิ การไดเหมาะสม
วธิ ีการสอนและกิจกรรมการเรียนการสอน
1. วิธีสอน 1.1 ใชวิธีสอนแบบบรรยายในหัวขอ ตัวแปรและตวั ดาํ เนนิ การ 1.2 ใชวธิ สี อนแบบปฏิบัตกิ ารเขยี นโปรแกรมภาษาจาวา ดวยตัวแปรและตวั ดําเนินการ 1.3 ใชวิธีสอนแบบปฏิบัติการกําหนดโปรแกรมใหนักศึกษาไดทดลองบนเครื่อง
คอมพวิ เตอร 2. กจิ กรรมการเรยี นการสอน
2.1 ใหนกั ศกึ ษาปฏิบัตกิ ารตามท่ีผสู อนสาธติ การโปรแกรมภาษาจาวา 2.2 ใหน กั ศกึ ษาอภิปรายผลการทดลอง 2.3 ทาํ แบบฝก หัดเกย่ี วกับดานตวั แปรและตวั ดําเนนิ การ
45
ส่อื การเรยี นการสอน
1. แฟม ขอมลู การนําเสนอ ของบทท่ี 3 2. ระบบอินเทอรเน็ต สาํ หรับคนควาโคด เพิ่มเตมิ 3. เครื่องคอมพวิ เตอรแ ละตวั โปรแกรม Edit Plus 4. ตัวแปลโปรแกรมภาษาจาวา (Java Compiler) 5. ระบบเครือขา ยคอมพวิ เตอร ในหองปฏิบัตกิ ารคอมพิวเตอร 6. หนว ยความจําเคล่อื นที่ (Handy Drive หรือ External Hard disk) 7. เอกสารประกอบการสอน ตํารา เอกสารท่เี ก่ียวของ
การวัดและการประเมนิ ผล
1. การสงั เกตจากความสนใจ และการมสี ว นรว มระหวางเรยี น ดวย การซกั ถามของผสู อน หรอื การตอบสนองดว ยการตอบคาํ ถาม หรอื พฤตกิ รรมในการรับรู รบั ฟง
2. การวัดความสามารถผเู รยี นไดดว ยผลการทดลอง ใบงานหลังบทเรียน ในดานทักษะการใช เคร่อื งคอมพิวเตอร การเขียนโคด โปรแกรม การแกปญหาในการทดลองระหวา งเรยี น
3. การตอบคาํ ถามทายบท ของผูเ รยี นมีความสนใจ กระตือรือรนในการทาํ งาน การมภี าวะ ผูนําในหองเรยี น การกลาเสนอความคดิ เหน็ ในการทาํ งาน
4. สังเกตจากการฝกและผลงานภาคปฏิบัติ 5. สงั เกตจากความกระตือรือรนของนักศึกษา 6. ตรวจแบบฝกหดั
46
บทท่ี 3 ตวั แปรและตวั ดําเนินการ (Variable and Operator)
การเขียนโปรแกรมทุกภาษาคอมพิวเตอร รวมท้ังภาษาจาวา ในการนําตัวโปรแกรมมาชวย แกปญหางานหนึ่งๆ ตัวโปรแกรมจะทํางานตองมีพ้ืนท่ีในการจัดเก็บขอมูล และนําขอมูลมาในการ คํานวณคาอยางตอเน่ือง ซึ่งในการติดตอกับพ้ืนที่ของหนวยความจําตัวโปรแกรมสามารถทําไดโดยผาน องคประกอบท่ีเรียกวา ตัวแปร และในการทํางานของโปรแกรมตองมีการนําคาขอมูลในตัวแปรมาทํา การคํานวณตามลักษณะตางๆ ตามขอกําหนดของผูใชงานที่ตองการใหโปรแกรมทําหนาที่ใด การ คํานวณของโปรแกรมคอมพิวเตอรสามารถทําการคํานวณตามลักษณะของมนุษย และโปรแกรม คอมพิวเตอรยังสามารถทําการคํานวณเฉพาะโปรแกรมคอมพิวเตอรที่มีรูปแบบการคํานวณที่แตกตาง จากมนษุ ยไดดว ย ซึ่งการคํานวณดังกลาว ในภาษาการเขียนโปรแกรมคอมพิวเตอรเรียกการกระทํานี้วา ตัวดําเนินการ ซึ่งมีความสําคัญอันดับตนๆ ที่นักศึกษาตองสามารถแยกแยะการใชงานและรูปแบบการ ส่ังงานโดยมีดังรายละเอียดตอ ไปนี้
ตวั แปร (variable)
ตัวแปร (variable) เปนการกําหนดภาชนะสมมุติขึ้นมาใชในการอางอิง (reference) ถึงตําแหนง (address) ของหนวยความจําคอมพิวเตอรวาตําแหนงที่ใชงานจริงอยูที่ตําแหนงใดข้ึนอยู ระบบปฏิบตั กิ ารน้ัน วา จะกําหนดใหใ ชพ้นื ทสี่ วนใด ทใี่ ชใ นการเก็บคา (value) ใหกับตัวแปร ขนาดของ คา ทต่ี องการเกบ็ ไวในหนวยความจํา จะมีผลใหระบบปฏิบัติและตัวแปลภาษาโปรแกรมนํามากําหนดวา ควรอยูที่ตําแหนงใดถึงตําแหนงใด ดวยชนิดของตัวแปรแตละชนิดมีขนาดในการเก็บคาขอมูลไมเทากัน ตัวแปรสามารถเก็บคาขอมูลไดตั้งแตขนาด 8 บิท 16 บิท 32 บิท และ 64 บิท สงผลใหการจัด หนวยความจํา (address mapping) ตองดําเนินการตามการประกาศจองพ้ืนที่ของตัวแปรในโคดที่ ผเู ขยี นโปรแกรมกําหนดขน้ึ มา
ในการเขียนโปรแกรม ตองมีการกําหนดตัวแปรท่ีใชในการเก็บคาขอมูลเสมอ จากที่กลาวมา ดานบนเพ่อื ใหต วั แปลภาษาทราบวา ผูเ ขยี นโปรแกรมตอ งการใชงานตัวแปร ดังนั้นกอนใชงานตัวแปรจึง จําเปนตองทําการประกาศตัวแปร (declaration) ตัวแปรกอนใชงานเสมอ โดยการประกาศตัวแปร ผูเขียนโปรแกรมตองกําหนดชนิดของตัวแปร วาตองการนํามาเก็บคาขอมูลอะไร มีขนาดเทาใด และ ตองการใชช่อื ใดเปน การอา งองิ การเขา ถึง (กาํ หนดคา ขอ มูลและการเรียกคาขอมูล) โดยการประกาศของ โปรแกรมภาษาจาวา มโี ครงสรางการประกาศหรือการจองพนื้ ที่หนวยความจาํ ดงั น้ี
<type> <identifier> [= <value>] [,<identifier> [= <value>] … ];
47
เม่อื
<type> คือ ชนดิ ตัวแปร (มผี ลตอ ขนาดของคา ขอมลู ทีต่ องการจดั เกบ็ ) <identifier> คอื ชือ่ ตวั แปร (ควรต้ังชอ่ื ใหส ่อื กบั คา ของขอ มูลท่ีตองการจัดเก็บ) [ … ] คอื เปนเครอ่ื งหมายทแ่ี สดงวา ผูเ ขียนโปรแกรม จะกําหนดคาใดๆ <value> คอื ในเคร่ืองหมาย[ ] หรือไมก ็ได เชน [= <value>] หมายถงึ จะกําหนดคา ขอมูลใหก บั ตัวแปรหรือไมก็ได แตถ า กาํ หนดคา ขอ มลู ใหตวั แปรตองกําหนดคาขอมูลหลงั เครื่องหมาย = ดวย คาขอมลู ของตัวแปร
ตวั อยางการประกาศตัวแปร ประกาศตวั แปรชอ่ื a กาํ หนดใหเ ปน ชนดิ ขอ มูล int (Integer: คา int a; คือ ขอมูลเก็บไดเ ฉพาะจาํ นวนเตม็ เทา นน้ั ) โดยไมม กี ารกําหนดคา ขอ มูล int a = 10; คือ ประกาศตัวแปรชอื่ a เปน ชนดิ ขอมลู int มคี า ขอ มลู เทากบั 10 float b = 3.14; คอื ประกาศตวั แปรช่อื b เปน ชนดิ ขอ มลู float (คาขอ มูลเก็บสามารถ เกบ็ เลขจาํ นวนจุดทศนยิ มได) ซง่ึ ในทนี่ ค้ี า ขอมูลของตัวแปรมี int a = 10, x; คอื คาขอมูลเทา กับ 3.14 ประกาศตวั แปรช่ือ a เปนชนดิ ขอ มูล int มีคา ขอ มลู เทากบั 10 และมกี ารประกาศตวั แปรช่อื x เปน ชนดิ ขอมลู int เชนเดียวกับ ตัวแปร a แตตัวแปร x ไมม ีการกาํ หนดคาขอ มูล ซ่ึงผูเขียนสามารถ ประกาศเชน น้ีได เปน ตน
ดังแสดงการจองพื้นที่หนวยความจําเสมือนดังภาพที่ 3.1 (ก.) แสดงโครงสรางการประกาศตัว แปร และ (ข.) ตัวอยางการประกาศตัวแปร a มีคาขอมูลเทากับ 10 (ค.) แสดงการประกาศตัวแปร x โดยไมม ีการกําหนดคา ขอ มลู พบวาระบบจะทําการกําหนดตําแหนง (Address = 0x3363) เปนการจอง พื้นท่ีไวใหสําหรบั คา ขอมูลของตวั แปร x เทา นน้ั แตคาในหนว ยความจาํ ยังไมมกี ารกําหนดคาให
Address Value 0x335F 10 a 0x335F 10 a x 0x3363 Name
(ก.) (ข.) (ค.)
ภาพท่ี 3.1 แสดงการการจองหนวยความจาํ เสมอื นของคอมพวิ เตอร
48
ชนดิ ขอมลู (data type)
ชนดิ ขอมูลของตัวแปรในโปรแกรมภาษาจาวาสามารถจัดการไดสองลักษณะคือ การจัดการบน รูปแบบคลาส (ซ่งึ จะกลา วภายหลัง) กับการจัดการรูปแบบตัวแปรพ้ืนฐาน ซ่ึงมีความคลายกับตัวแปรใน โปรแกรมภาษาซีและซีพลัสพลัส แตโปรแกรมภาษาจาวาไดทําการปรับปรุงสวนที่อาจกอปญหาสําหรับ นักพัฒนาโปรแกรมมือใหม ของตัวแปรภาษาซีและซีพลัสพลัส ที่ไมมีการกําหนดคาเริ่มตนใหกับตัวแปร เมอื่ มกี ารประกาศใชตวั แปร สงผลใหค าขอมลู ในตวั แปรภาษาซีและซีพลัสพลัส จะทําการสุมคาขอมูลมา ใหตัวแปร ดังนั้นโปรแกรมภาษาจาวาจึงไดทําการแกไข ในเร่ืองการกําหนดคาเร่ิมตนใหกับตัวแปร พื้นฐานทกุ ครั้งทีม่ ีการประกาศตัวแปร โดยมกี ารกําหนดคาเรม่ิ ตน ใหก ับตัวแปร (ตารางท่ี 3.1)
ตารางที่ 3.1 แสดงชนดิ ขอ มูลของตัวแปรกับคา เริ่มตนของตัวแปร ชนิดขอมูล ขนาดตัวแปร คาเร่ิมตน (Type) (Size) (Default) Boolean 1 บิท byte 8 บทิ false char 16 บทิ 0 short 16 บิท int 32 บิท \u0000 float 32 บิท 0 long 64 บทิ 0 double 64 บทิ 0.0 0 0.0
จากตารางท่ี 3.1 ชนิดขอมูลท่ีเปน boolean ในสวนของโปรแกรมภาษาจาวามีขนาดในการ เก็บคาเทากับ 1 บิท สามารถเก็บคาได 2 สถานะ คือ อาจมีคาเปน true (ถูกตอง) หรือมีคาเปน false (ไมถูกตอง หรือ ผิด) ในการประกาศตัวแปร ในการจองพ้ืนท่ีของหนวยความจํา ถาผูพัฒนาโปรแกรม ไมไดกําหนดคาเริ่มตนให ตัวแปลภาษาของโปรแกรมภาษาจาวาจะกําหนดคาขอมูลใหกับตัวแปรมีคา เทากับ false ซ่ึงแตกตางจากโปรแกรมภาษาซีและซีพลัสพลัส ชนิดขอมูลท่ีเปน boolean มีจะแสดง เปนเลขจํานวนเตม็ สองสถานะคอื คา ขอ มูลเปน 1 (ถูกตอ ง) หรอื คา 0 (ไมถ กู ตอ ง)
ชนิดขอมูล byte สามารถเก็บคาไดจํานวน 8 บิท คือคาอยูระหวาง 127 ถึง -128 รวมทั้งส้ิน จํานวน 256 จาํ นวน (ภาพท่ี 3.2)
49
ภาพที่ 3.2 โปรแกรมแสดงตัวแปรชนิดไบท ชนิดขอ มลู char มขี นาด 16 บิท เปน คาคงที่ตวั อักษร ท่ีสามารถแสดงคาไดภายใตเครื่องหมาย single quote (‘a’ หรือ ‘1’) (ภาพท่ี 3.3)
ภาพที่ 3.3 แสดงคา คงท่ีตัวอักษรภายใตเ คร่ืองหมาย single quotes
50
ชนิดขอมูล char มีขนาด 16 บิท เปนคาคงท่ีตัวอักษร ที่เปนตัวอักษรควบคุมการพิมพ (control character) ที่อยูภายใตตัวอักษร ‘\’ เชน backspace เขียนดวย \b ข้ึนบรรทัดใหม เขียน ดวย \n การ carriage return เขียนดวย \r การ formfeed เขียนดวย \f การยอหนา (tab) เขียนดวย \t การแสดงเคร่ืองหมาย backslash (\) เขียนดวย \\ การแสดงเครื่องหมาย single quote(‘) เขียน ดวย \' การแสดงเครื่องหมาย double quote (“) เขียนดวย\" และการสั่งวาง (null) เขียนดวย \0 เปน ตน (ภาพที่ 3.4)
ภาพที่ 3.4 แสดงการเขยี นควบคมุ ดวย back slash กรณีแสดงคาคงท่ีตัวอักษร ดวย escape sequences ดวยเลขฐานแปด (octal) หรือ เลขฐานสิบหก (hexadecimal) ตามการแสดงคาตัวอักษรตารางมาตรฐานของอเมริกา (ASCII: America Standard Code Interchange International) (ตารางท่ี 3.2) และตัวอยางโปรแกรม (ภาพที่ 3.5)