Notepad และ editplus ม ความเหม อนหร อแตกต างก น

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) และหนวยสุดทายหนวย

  1. หนว ยประมวลผลกลาง (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) เลขฐานสิบ

  1. เลขฐานแปดมาอยา งนอ ยเลขฐานละ 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)

Toplist

โพสต์ล่าสุด

แท็ก

ไทยแปลอังกฤษ แปลภาษาไทย โปรแกรม-แปล-ภาษา-อังกฤษ พร้อม-คำ-อ่าน ห่อหมกฮวกไปฝากป้าmv Terjemahan แปลภาษาอังกฤษเป็นไทย pantip lmyour แปลภาษา ไทยแปลอังกฤษ ประโยค แอพแปลภาษาอาหรับเป็นไทย เมอร์ซี่ อาร์สยาม ล่าสุด แปลภาษาอาหรับ-ไทย Bahasa Thailand app แปลภาษาไทยเป็นเวียดนาม พจนานุกรมศัพท์ทหาร ยศทหารบก ภาษาอังกฤษ สหกรณ์ออมทรัพย์กรมส่งเสริมการปกครอง ส่วนท้องถิ่น แปลภาษาเวียดนามเป็นไทยทั้งประโยค กรมส่งเสริมการปกครองท้องถิ่น การไฟฟ้าส่วนภูมิภาคมีทั้งหมดกี่ภาค มัจจุราชไร้เงา 1 mono29 มัจจุราชไร้เงา 1 pantip มัจจุราชไร้เงา 3 pantip รายชื่อวิทยานิพนธ์ นิติศาสตร์ 2563 ศัพท์ทหาร ภาษาอังกฤษ pdf ห่อหมกฮวกไปฝากป้า หนังเต็มเรื่อง แปลภาษาอิสลามเป็นไทย ่้แปลภาษา Google Drive กรมการปกครอง กระบวนการบริหารทรัพยากรมนุษย์ 8 ขั้นตอน การไฟฟ้าส่วนภูมิภาค ข้อสอบคณิตศาสตร์ พร้อมเฉลย คะแนน o-net โรงเรียน ที่อยู่สมุทรปราการ ภาษาอังกฤษ ประปาไม่ไหล วันนี้ มหาวิทยาลัยรามคําแหง เปิดรับสมัคร 2566 มัจจุราชไร้เงา 2 facebook ราคาปาเจโร่มือสอง สถาบันพัฒนาบุคลากรท้องถิ่น หนังสือราชการ ส ถ หยน ห่อหมกฮวกไปฝากป้า คาราโอเกะ อาจารย์ ตจต Google Form Info arifureta shokugyou de sekai saikyou manga online legendary moonlight sculptor www.niets.or.th ประกาศผลสอบ การบริหารทรัพยากรมนุษย์ มีอะไรบ้าง ข้อสอบภาษาอังกฤษ พร้อมเฉลย pdf