Successfully reported this slideshow.
8
                                          Introduction to Java Programming


8.1         ภาษาจาวา
            ภาษาจาวาพั...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)               หนา 2 / 24



          โ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                 หนา 3 / 24



         ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                 หนา 4 / 24



ยังคงเหมื...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                    หนา 5 / 24



8.6   ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)      หนา 6 / 24




                   ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                หนา 7 / 24



         เ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                 หนา 8 / 24



        ค...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)           หนา 9 / 24



ตัวอยาง 8.1   ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)       หนา 10 / 24



ตัวอยาง 8.2     ก...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                   หนา 11 / 24



      ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)           หนา 12 / 24




           Se...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                 หนา 13 / 24



        ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)           หนา 14 / 24



8.10      การส...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)              หนา 15 / 24



ลักษณะทั่วไ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)         หนา 16 / 24



    public class...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)             หนา 17 / 24



         }

...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)           หนา 18 / 24



           เป...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                  หนา 19 / 24



       ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                   หนา 20 / 24



8.14  ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)            หนา 21 / 24



             ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                        หนา 22 / 24



 ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)                 หนา 23 / 24



8.20    ...
1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science)            หนา 24 / 24



8.22   ตรวจสอ...
Upcoming SlideShare
Loading in …5
×

Introduction to Java Programming

975 views

Published on

แนะนำโปรแกรมจาวา

  • Be the first to comment

Introduction to Java Programming

  1. 1. 8 Introduction to Java Programming 8.1 ภาษาจาวา ภาษาจาวาพัฒนาขึ้นโดยบริษัทซันไมโครซิสเต็มท ชื่อของจาวามาจากชื่อของกาแฟที่ทีมวิศวกรของ ซันดื่มตอนที่รวมพัฒนาจาวาตนแบบดวยกัน จาวาเปนเทคโนโลยีเปดที่มีซันเปนผูกํากับทิศทางและคอยระวังไม ใหใครเอาจาวาไปดัดแปลงประยุกตใชในทางที่เบี่ยงเบนออกจากจุดประสงคเดิมของมัน และเพื่อใหเกิดความชัด เจนในการพัฒนา ภาษาจาวามีคําสั่งพื้นฐานคลายภาษาซีพลัสพลัสเปนอยางมาก นักเขียนโปรแกรมที่ใชภาษาซีพลัส พลัสสามารถเรียนรูภาษาจาวาไดในเวลาอันรวดเร็ว เหตุผลที่ทีมวิศวกรของซันไมเลือกใชภาษาซีพลัสพลัสใน การพัฒนาภาษาสําหรับโปรแกรมขนาดจิ๋วบนเครื่องใชอิเล็กทรอนิกสเปนเพราะเครื่องใชอิเล็กทรอนิกสมีเนื้อที่ สําหรับเก็บโปรแกรมจํากัด พวกเขาจึงสรางภาษาคอมพิวเตอรภาษาใหมขึ้นมาใหชื่อวา โอค ซึ่งตั้งชื่อตามตน ไมใหญที่อยูในสวนของบานที่ทีมวิศวกรใชเปนสถานที่สําหรับทํางาน ภาษาใหมนี้มีความกระชับมากกวาเดิม แตมีคําสั่งพื้นฐานเหมือนภาษาซีพลัสพลัส เนื่องจากตองการใหนักเขียนโปรแกรมภาษาซีพลัสพลัสซึ่งมีอยูมาก ที่สุดในขณะนั้นสรางความคุนเคยไดอยางรวดเร็วตอมาพวกเขาไดเปลี่ยนชื่อภาษาใหมนี้เปน จาวา ตามชื่อชนิด กาแฟที่พวกเขาดื่ม ภาษาจาวาจัดเปนภาษาคอมพิวเตอรเชิงวัตถุเชนเดียวกับภาษาซีพลัสพลัส แตสิ่งที่ภาษาจาวาตางกับ ภาษาซีพลัสพลัสเปนอยางมากคือ โปรแกรมภาษาจาวาตองเขียนเปนแบบเชิงวัตถุเทานั้น ในขณะที่ภาษาซี พลัสพลัสสามารถเขียนแบบเชิงวัตถุ หรือเขียนแบบโครงสรางก็ไดที่เปนเชนนี้เนื่องจากภาษาซีพลัสพลัสมีตน กําเนิดมาจากภาษาซีซึ่งเปนภาษาแบบโครงสราง ดังนั้นภาษาซีพลัสพลัสจึงตองสนับสนุนการเขียนโปรแกรม แบบโครงสรางดวยเพื่อใหเขากันไดกับภาษาซี อยางไรก็ตามภาษาแบบโครงสรางเปนเทคโนโลยีที่ลาสมัย โปรแกรมประยุกตในทองตลาดปจจุบันนี้ลวนแตเขียนดวยภาษาเชิงวัตถุทั้งสิ้น จาวาจึงไมสนับสนุนภาษาโครง สราง 8.2 จาวาแฟลตฟอรม นิยามที่เหมาะสมอันหนึ่งของจาวาคือ จาวาเปนแฟลตฟอรม คําวา แฟลตฟอรม โดยทั่วไปมีความ หมายใกลเคียงกับคําวา ระบบปฏิบัติการ ตัวอยางเชน ระบบปฏิบัติวินโดว บางทีเราก็เรียกวา แฟลตฟอรม วินโดว ความหมายตรงตัวของคําวา แฟลตฟอรม ในพจนานุกรมหมายถึง สถานี เชน ชานชาลาสถานีรถไฟ สาเหตุที่เราเรียกระบบปฏิบัติการวาเปนแฟลตฟอรมเปนเพราะเวลาเราเขียนโปรแกรมประยุกตอะไรก็ตามขึ้นมา กอนที่เราจะใชงานมันไดเราจะตองรันมันบนระบบปฏิบัติการ ตัวอยางเชน ไมโครซอฟตเวิรดจะใชงานไดตองรัน บนระบบปฏิบัติการวินโดว ระบบปฏิบัติการวินโดวจึงเปนเสมือนสถานีปฏิบัติการสําหรับโปรแกรมไมโครซอฟต เวิรด
  2. 2. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 2 / 24 โปรแกรมภาษาจาวาไมเหมือนโปรแกรมที่เขียนขึ้นดวยภาษาคอมพิวเตอรภาษาอื่น โปรแกรมภาษา จาวาไมไดรันบนระบบปฏิบัติการ แตรันบนแฟลตฟอรมเสมือนซึ่งเราเรียกวา จาวาแฟลตฟอรม หรือ จาวาเวอรชัวนแมทชีน ดวยเหตุนี้เราจึงกลาววา จาวาเปนแฟลตฟอรม จาวาเวอรชัวนแมทชีนเปนสิ่งที่ซอนโปรแกรมภาษาจาวาจากระบบปฏิบัติการของเครื่องคอมพิวเตอร ดังนั้นโปรแกรมที่เขียนดวยภาษาจาวาไมวาจะนําไปรันบนระบบปฏิบัติการใดมันจะมองไมเห็นความแตกตาง ของระบบปฏิบัติการที่มันรันอยู เนื่องจากมันไมไดติดตอกับระบบปฏิบัติการของเครื่องคอมพิวเตอรโดยตรง แต มันจะติดตอกับจาวาเวอรชัวนแมทชีนแทน และจาวาเวอรชัวนแมทชีนจะติดตอกับระบบปฏิบัติการอีกที จาวาเวอรชัวนแมทชีนในทุกๆ ระบบปฏิบัติการมีหนาตาเหมือนกันหมด ดังนั้นโปรแกรมที่เขียนขึ้นดวย ภาษาจาวาสามารถนําไปรันบนระบบปฏิบัติการใดก็ได หรือกลาวอีกนัยหนึ่งก็คือ จาวาเวอรชัวนแมทชีนก็คือ ระบบปฏิบัติการสําหรับโปรแกรมภาษาจาวา โปรแกรมจาวา โปรแกรมจาวา โปรแกรมจาวา จาวาเวอรชัวนแมทชีน ระบบวินโดว ระบบลีนุกซ ระบบแมคอินทอช รูปแสดงจาวาแฟลตฟอรม ปกติแลวโปรแกรมประยุกตที่เขียนดวยภาษาอื่น ถาพัฒนาขึ้นมาเพื่อระบบปฏิบัติการใดจําเปนที่จะ ตองรันบนระบบปฏิบัติการนั้น เชน ไมโครซอฟตเวิรดสําหรับระบบปฏิบัติการวินโดวจะตองรันบนระบบปฏิบัติ การวินโดวเทานั้น ไมสามารถนําไปใชงานบนระบบปฏิบัติการอื่น เชน ลีนุกซหรือแมคอินทอชได เนื่องจาก ระบบปฏิบัติการแตละอันมีความแตกตางกันอยู นี่เปนความไดเปรียบของการเขียนโปรแกรมดวยภาษาจาวา เพราะไมวาจะเขียนขึ้นบนระบบปฏิบัติการใด เมื่อเขียนเสร็จแลวจะสามารถนําไปรันไดบนระบบปฏิบัติการอื่น ทุกระบบที่มีจาวาเวอรชัวนแมทชีน เราเรียกคุณสมบัตินี้ของโปแกรมภาษาจาวาวา Write Once, Run Anywhere 8.3 นักเขียนโปรแกรมภาษาจาวา จาวาเวอรชัวนแมทชีนไมไดอยูแตในเฉพาะโลกของคอมพิวเตอรตั้งโตะเทานั้น แตยังมีอยูบนทุกๆ สิ่ง ทุกอยางตั้งแตสมารทการด โทรศัพทมือถือ ปาลมออแกนไนเซอร พีซี บราวเซอร หรือเครื่องคอมพิวเตอร แมขาย การเรียนรูภาษาจาวาจึงเปนการลงทุนที่คุมคาสําหรับนักเขียนโปรแกรม เพราะรูภาษาเดียวแตสามารถ นําไปใชพัฒนาโปรแกรมบนอะไรก็ได ----- Chapter 8: Introduction to Java Programming -----
  3. 3. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 3 / 24 ขั้นตอนการเขียนโปรแกรมภาษาจาวานั้นไมตางกับการพัฒนาโปรแกรมภาษาอื่นมากนัก การเขียน โปรแกรมเริ่มตนจากการเขียนคําสั่งภาษาจาวาลงบนเท็กซไฟล เราเรียกไฟลเหลานี้วา ซอรสโคด ซึ่งซอรสโคด ภาษาจาวาจะตองมีนามสกุลเปน .java เสมอ เมื่อเขียนโปรแกรมเสร็จแลว เราจะทําการคอมไพลซอรสโคด การคอมไพลซอรสโคดก็คือ การเปลี่ยน คําสั่งภาษาจาวาเปนภาษาเฉพาะอยางหนึ่งซึ่งจาวาเวอรชัวนแมทชีนเขาใจ ตัวที่ทําหนาที่ในการคอมไพล ซอรสโคดเรียกวา จาวาคอมไพลเลอร ซึ่งเปนซอฟตแวรที่สามารถอานคําสั่งในไฟล .java แลวแปลเปนภาษา เฉพาะที่จาวาเวอรชัวนแมทชีนเขาใจ ภาษาเฉพาะที่จาวาเวอรชัวนแมทชีนเขาใจนี้เรียกวา จาวาไบตโคด ซึ่ง คอมไพลเลอรจะเก็บจาวาไบตโคดที่ไดไวในไฟลนามสกุล .class ไฟลนามสกุล .class ที่ไดจาก จาวาคอมไพลเลอรนี่เองคือตัวโปรแกรมที่แทจริง เมื่อใดที่ตองการรันโปรแกรมที่เขียนขึ้น เพียงแตนําไฟล .class ไปรันบนจาวาเวอรชัวนแมทชีน จาวาเวอรชัวนแมทชีนเขาใจจาวาไบตโคดและจะทํางานตามคําสั่งใน โปรแกรมที่เขียนขึ้นโดยการอานไฟลจากจาวาไบตโคด ซึ่งเราสามารถสรุปขั้นตอนการพัฒนาโปรแกรมดวย ภาษาจาวาไดดังรูป เขียนโปรแกรมภาษาจาวาลงบนเท็ก ซไฟล ไดซอรสโคดนามสกุล .java คอมไพล ซอรสโคด ดวยจาวาคอมไพลเลอร ไดจาวาไบตโ คดนามสกุล .class นําจาวาไบตโคดไปรันบน จาวาเวอรชัวนแมทชีน รูปแสดงขั้นตอนการพัฒนาโปรแกรมดวยภาษาจาวา เราอาจะเขาใจภาษาจาวาแตจาวาเวอรชัวนแมทชีนไมเขาใจ จาวาเวอรชัวนแมทชีนเขาใจจาวาไบต โคดซึ่งเราอานไมรูเรื่อง คอมไพลเลอรก็คือตัวกลางที่จะแปลภาษาจาวาที่เราเขียนใหกลายเปนจาวาไบตโคดนั้น เอง 8.4 โปรแกรมเชิงวัตถุ การเขียนโปรแกรมคอมพิวเตอรมี 2 แบบคือ การเขียนโปรแกรมแบบโครงสราง และการเขียนโปรแกรม เชิงวัตถุ การเขียนโปรแกรมแบบโครงสรางเปนการเขียนโปรแกรมแบบที่มนุษยคุนเคย คือ การเขียนคําสั่งเรียง ตอกันไปเรื่อยๆ ทีละบรรทัด โปรแกรมจะเริ่มทํางานจากคําสั่งแรกสุดเรื่อยไปจนถึงคําสั่งทายสุดเปนอันจบ โปรแกรม อาจมีการสรางเปนโปรแกรมยอยๆ ในโปรแกรมใหญบาง เพื่อลดคําสั่งที่ซ้ําซอน แตหลักการกวางๆ ----- Chapter 8: Introduction to Java Programming -----
  4. 4. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 4 / 24 ยังคงเหมือนเดิม ตัวอยางของภาษาที่มีวิธีการเขียนโปรแกรมเปนแบบโครงสรางไดแก ภาษาเบสิก ภาษาโคบอล ภาษาฟอรแทรน ภาษาปาสคาล และภาษาซี การเขียนโปรแกรมเชิงวัตถุ มีการสรางวัตถุสมมุติขึ้นมากอนแลวเขียนคําสั่งนิยามวัตถุนั้นจนสามารถ ทําใหวัตถุนั้นทํางานตามที่เราตองการได ซอรสโคดของโปรแกรมเชิงวัตถุแทนที่จะเปนคําสั่งเขียนเรียงตอกันไป เรื่อยๆ ก็จะเปนการนิยามขึ้นอยางเหมาะสม การเขียนโปรแกรมเชิงวัตถุตองใชเวลาในการศึกษาพอสมควร โดยเฉพาะอยางยิ่งนักเขียนโปรแกรมตองมีความชํานาญในการสรางวัตถุใหมีคุณสมบัติที่ทํางานตามที่เรา ตองการได ตัวอยางของภาษาที่มีการเขียนโปรแกรมแบบเชิงวัตถุ คือ ภาษาจาวา และภาษาซีพลัสพลัส (ภาษา ซีพลัสพลัสเขียนไดทั้งแบบโครงสรางและวัตถุ) การที่โปรแกรมภาษาจาวาตองเขียนแบบเชิงวัตถุเสมอจัดวาเปนทั้งจุดเดนและดอยของภาษาจาวา การที่ภาษาจาวาไมสนับสนุนการเขียนโปรแกรมแบบโครงสรางซึ่งเปนวิธีการเขียนโปรแกรมที่ลาสมัย ทําให ภาษามีความกะทัดรัดมากกวาภาษาซีพลัสพลัส แตในเวลาเดียวกันก็ทําใหตองใชเวลาศึกษานานโดยเฉพาะ อยางยิ่งที่ไมใชนักเขียนโปรแกรมมืออาชีพ เพราะการเขียนโปรแกรมเชิงวัตถุไมใชเรื่องที่จะเรียนรูไดในเวลาอัน รวดเร็ว 8.5 จาวา 2 ภาษาจาวามีการพัฒนาอยางตอเนื่อง โดยที่ซันเปนผูกําหนดโครงสรางและคําสั่งตางๆ ของภาษา ภาษาจาวาตั้งแตเวอรชัน 1.2 ขึ้นไป มีชื่อเรียกใหมวา จาวา 2 สามารถสืบคนขอมูลเพิ่มเติมเกี่ยวกับจาวา โดย เฉพาะจาวาเวอรชันใหมลาสุดไดจาก http:/java.sun.com ซึ่งมีการเปลี่ยนแปลงอยูอยางสม่ําเสมอ รูปแสดงเว็บไซต http://java.sun.com/ ----- Chapter 8: Introduction to Java Programming -----
  5. 5. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 5 / 24 8.6 จาวาเวอรชัวนแมทชีนและจาวาคอมไพลเลอร โปรแกรมที่เขียนดวยภาษาจาวาตองรันบน จาวาเวอรชัวนแมทชีน ดังนั้นจะตองมีจาวาเวอรชัวน แมทชีนบนเครื่องคอมพิวเตอร โปรแกรมจาวากอนจะนําไปรันไดตองผานการคอมไพลดวย จาวาคอมไพล เลอร กอน สรุปแลวถาเราตองการเขียนโปรแกรมดวยภาษาจาวาเราจะตองมีทั้ง จาวาคอมไพลเลอร และ จาวาเวอรชัวนแมทชีน เนื่องจากจาวาเปนเทคโนโลยีเปด ดังนั้นคุณอาจจะเลือกใชจาวาเวอรชัวนแมทชีนและจาวาคอมไพล เลอรของบริษัทใดก็ได แตในเอกสารฉบับนี้ใชจาวาเวอรชัวนแมทชีนและจาวาคอมไพลเลอรที่ดาวนโหลดไดจาก เว็บไซตจาวาของซันเนื่องจากเปนที่รูจักดีและที่สําคัญคือฟรี อีกสิ่งที่ตองมีก็คือเครื่องคอมพิวเตอรสวนบุคคลซึ่งอาจใชระบบปฏิบัติการใดก็ได เพราะจาวาสามารถ รันไดทุกระบบปฏิบัติการ ในเอกสารฉบับนี้จะใชระบบปฏิบัติการวินโดว (95/98/ME/2000/XP) เพราะเปนระบบ ปฏิบัติการที่หาไดงายที่สุด จาวาเวอรชัวนแมทชีนบนคอมพิวเตอรสวนบุคคลของบริษัทซันมีชื่อวา JRE หรือ จาวารันไทมเอ็นไวรอนเมนท สวนจาวาคอมไพลเลอรของซันมีชื่อวา SDK ทั้งสองสามารถดาวนโหลดไดจาก เว็บไซต http://java.sun.com/j2se 8.7 การติดตั้ง SDK สามารถดาวนโหลดโดยเขาไปที่เว็บไซต http://java.sun.com/j2se แลวเลือกดาวนโหลดซอฟตแวรที่มี ชื่อวา Java 2 SDK ซึ่งมีการเปลี่ยนเวอรชันใหมอยางสม่ําเสมอ สามารถใชเวอรชันใดก็ไดที่สูงกวาเวอรชัน 1.2 แตขอแนะนําใหใชเวอรชันที่ใหมที่สุดที่ไมเวอรชันทดสอบ (Beta version) การเลือกระบบปฏิบัติการวินโดว ในขั้นตอนการดาวนโหลดผูดาวนโหลดจะตองทําการเลือก ระบบปฏิบัติการถึงแมวาโปรแกรมจาวาจะไมขึ้นกับระบบปฏิบัติการ แตตัวจาวาคอมไพลเลอรและจาวาเวอร ชัวนแมทชีนขึ้นกับระบบปฏิบัติการ เมื่อดาวนโหลดเสร็จแลวก็ใหทําการติดตั้งโดยการดับเบิลคลิกที่ไอคอนของไฟลที่ดาวนโหลดมา โปรแกรมจะเขาสูการติดตั้ง SDK ซึ่งเปนวิซซารดเหมือนกันการติดตั้งโปรแกรมบนวินโดวทั่วไปซึ่งคุณควรติดตั้ง ไดดวยตนเอง ในขั้นตอนของการเลือกโฟลเดอรที่จะติดตั้งโปรแกรม ขอแนะนําใหเลือกติดตั้งบนโฟลเดอรชื่อวา C:java (อาจจะใชชื่ออื่นก็ได แตถาใชชื่อนี้เวลาเรียกใชจะสะดวกกวา) ----- Chapter 8: Introduction to Java Programming -----
  6. 6. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 6 / 24 ----- Chapter 8: Introduction to Java Programming -----
  7. 7. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 7 / 24 เมื่อติดตั้ง SDK เสร็จแลว ทุกสิ่งทุกอยางจะอยูในโฟลเดอร c:java ทั้งหมดรวมทั้ง JRE ที่พวงติดมา ดวย แตขั้นตอนการติดตั้งยังไมสมบูรณกอนจะใชงานไดคุณตองระบุ PATH ใหกับระบบปฏิบัติการของคุณ เสียกอน ในระบบปฏิบัติการวินโดวทําไดโดยการคลิกเมาสขวาที่ไอคอน My Computer บนเดสกท็อป แลวเลือก Properties เพื่อเซตคาตัวแปรระบบใหแกระบบปฏิบัติการวินโดว ในสวนนี้วินโดวแตละเวอรชันจะมีหนาจอและ ขั้นตอนที่ไมเหมือนกัน (แตแตกตางกันเล็กนอย) ในเอกสารฉบับนี้จะแสดงการเซตคาตัวแปรสําหรับ Windows XP หลังจากที่เลือกแท็บ Properties แลวใหเลือกที่แท็บ Advance แลวคลิกที่ปุมที่ชื่อวา Environment Variables เลือกตัวแปรชื่อ PATH ในสวนของ System variables แลวกดปุม Edit เพื่อเปลี่ยนแปลงคา จากนั้น พิมพขอความ ;C:javabin ตอทายดังภาพ เพื่อเปนการเซตคาตัวแปรระบบ Path ใหมบน Windows XP สังเกต :C:javabin ที่ทายสุดของชอง Variable Value เทานี้ การติด SDK ของเราก็เปนอันเสร็จเรียบรอย ----- Chapter 8: Introduction to Java Programming -----
  8. 8. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 8 / 24 คําสั่งและโปรแกรมที่ใชในการพัฒนาโปรแกรมภาษาจาวาซึ่งเปนคําสั่งเบื้องตนและมีการเรียกใชงาน บอยจะถูกเก็บอยูในไดเร็คทอรี c:javabin คําสั่งและโปรแกรมดังกลาวมีรายการดังนี้คือ • javac.exe เปนโปรแกรมสําหรับใชแปล(Compile) Source code ไฟล.java • java.exe เปนโปรแกรมสําหรับใชรันไฟล.class ซึ่งไดจากการ Compile • appletviewer.exe เปนโปรแกรมสําหรับแสดงผล applet ซึ่งใชกับเครื่องที่ไมมี โปรแกรม Browser 8.8 ชนิดของโปรแกรมของโปรแกรมจาวา ปจจุบันโปรแกรมจาวาแบงออกเปน 2 ชนิดคือ Java Application (หรือ เรียกสั้นๆ วา “Applications”) และ Java Applets (หรือเรียกสั้นๆ วา “Applets”) ทั้ง 2 ชนิด นําไปใชงานแตกตางกันดังนี้ • Java Application มีการทํางานทั้งใน Graphics Mode และ Text Mode เปนการนําจาวามาเขียนเปนโปรแกรม ที่สามารถนํามาใชงานไดอยางอิสระ (Stand Alone Program) เหมือนกับการเขียนโปรแกรม ภาษาระดับสูงอื่นๆ เชน C++, Pascal, COBOL ทั้งนี้สามารถนํา Application ไปใชงานที่ คอมพิวเตอรตางแฟลตฟอรม (Platform) ไมวาจะเปน PC, Macintosh หรืออื่นๆ • Java Applets จะทํางานภายใตโปรแกรม Browser หรือ Appletviewer เปนการนําจาวามาเขียนเปน โปรแกรมเชนเดียวกัน แตไมสามารถเรียกใชตามลําพังเหมือนกัน Applications แตจะตอง นําไปใสไวในเอกสาร HTML (เพื่อทําให Web Page ทํางานไดดียิ่งขึ้น) แลวใชโปรแกรม Web Browser (เชน Netscape, Internet Explorer) หรือใช Utilities ของจาวา ชื่อ AppletViewer เพื่อเรียกผลลัพธก็ได 8.8.1 Java Application ขั้นตอนในการสรางโดยเริ่มจากใชโปรแกรมประเภท Text-Editor (เชน notepad, Word Pad หรือ Editplus) เขียนโปรแกรม Java โดยจะตองบันทึก extension (นามสกุลของไฟล) นั้นเปน .java เชน Hello.java เมื่อเราไดทําการเขียนโปรแกรมเสร็จเรียบรอยแลว ขั้นตอนตอไปก็คือการ compile โดยใช javac.exe ในการ compile และจะไดไฟล Hello.class มา เราสามารถสั่ง run ไฟล Hello.class โดยใช java.exe ดังแสดงขั้นตอน การสรางโปรแกรมตามรูปดานลางนี้ ในโปรแกรม Java application จะมีเมทอด main() ไดเพียงเมทอดเดียวเทานั้น โดยภายใน class ที่มี เมทอด main() จะตองมีชื่อ class เปนชื่อเดียวกันเดียวกับไฟล .java และไฟล .java สามารถมี class ที่สรางขึ้น ไดมากกวาหนึ่งคลาส ----- Chapter 8: Introduction to Java Programming -----
  9. 9. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 9 / 24 ตัวอยาง 8.1 โปรแกรมแสดงขอความ "Hello" ออกทางหนาจอ 1. ใหทําการสรางโฟลเดอร MyJava ไวใน C: (Drive C) 2. ใชโปรแกรม Notepad พิมพโคด ตามรูปดานลาง แลวบันทึกไวใน C:MyJava โดยกําหนดชื่อเปน Hello.java 3. เปด MS-DOS Prompt window แลวเปลี่ยน Directory เปน C:Myjava 4. Compile โปรแกรม Hello.java โดยใชคําสั่ง Javac Hello.java เราจะไดไฟล Hello.class จากการ Compile 5. สั่ง run ไฟล Hello.class โดยใชคําสั่ง Java Hello โปรแกรมก็จะ run โดยจะแสดงคําวา "Hello" ออก มา 8.8.2 Java Applet การสราง Java Applet ชวงขั้นตอนแรกๆ จะมีวิธีการสรางไฟล .java และไฟล .class เหมือนกับ Java Application แตจะแตกตางกันที่ Java Applet ตองอาศัย ไฟล .html ในการแสดงผล โดยจะใชแท็ก <applet></applet> ของภาษา HTML ในการเชื่อมโยงไฟล .class ซึ่งเปน Java Applet มาแสดงผลเปน Browser หรือ appletviewer ซึ่งมีรูปแบบของการเชื่อมโยงดังนี้ <applet code=” HelloApplet.class” width=100 height=100></applet> คา width และ height คือ attribute ที่เปนตัวกําหนดขนาดพื้นที่ของ Java Applet ซึ่งจะแสดงผลบน Browser สวน code คือการระบุไฟล.class ที่ตองการใหแสดงผล ----- Chapter 8: Introduction to Java Programming -----
  10. 10. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 10 / 24 ตัวอยาง 8.2 การสราง Applet เพื่อแสดงขอความ "Hello Applet" 1. ใหทําการสรางโฟลเดอร MyJava ไวใน C: (Drive C) 2. ใชโปรแกรม Notepad พิมพโคด ตามรูปดานลาง แลวบันทึกไวใน C:MyJava โดยกําหนดชื่อเปน HelloApplet.java 3. เปด MS-DOS Prompt window แลวเปลี่ยน Directory เปน C:Myjava 4. Compile โปรแกรม HelloApplet.java โดยใชคําสั่ง Javac HelloApplet.java เราจะไดไฟล HelloApplet.class จากการ Compile 5. ใชโปรแกรม Notepad พิมพโคด ตามรูปดานลาง แลวบันทึกไวใน C:MyJava โดยกําหนดชื่อเปน HelloApplet.html 6. ใช Web Browser เปดไฟล HelloApplet.html เพื่อทดสอบการทํางานของ HelloApplet.class ผล จะ แสดงดังรูปดานลาง ----- Chapter 8: Introduction to Java Programming -----
  11. 11. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 11 / 24 ยังมีอีกวิธีที่ใชในการทดสอบการทํางานของ HelloApplet.class ก็คือการใชคําสั่ง appletviewer.exe โดยเรียกผาน MS-DOS Prompt window โดยพิมพคําสั่ง appletviewer HelloApplet.html ผลที่ได จะแสดงดัง รูปดานลาง โดยสวนมากแลวขอแนะนําใหใช Appletviewer ในการพัฒนา เพราะวามีขนาดเล็ก ,มีการทํางานที่เร็ว กวา Web Browser และ โปรแกรม Web Browser จะมีการจํา class ที่ไดทําการโหลดมากอนหนา ทําใหเมื่อทํา การเรียกใช class นั้นอีกครับ Web Browser จะนํา class เกาที่ไดโหลดมาครั้งกอนมาใช ทําใหเกิดปญหาใน การพัฒนา applet ของเรา 8.9 การใช Editplus ชวยในการเขียน แปล และประมวลผล โปรแกรม Editplus เปนเพียง Editor มิใช Compiler แต Editplus เปนโปรแกรมที่สามารถเรียกตัว Compiler มาแปลโปรแกรมที่กําลังเขียนอยู พรอมกับ Run และแสดงผลในสวนของ Output windows ทําให สามารถเรียกโปรแกรมอื่นมาทํางานไดและสามารถทราบถึงผลการ Compile หรือ Run วาเปนอยางไร ในสวนนี้จะแสดงถึงขั้นตอนในการสรางปุมเพื่อเรียกใชคําสั่งในการ Compile และ Run โปรแกรมที่ เขียนดวยภาษาจาวา ซึ่งขั้นตอนตางๆ ไดแสดงไวในรูปดานลางนี้ แกไขชื่อ Group 1 เปน Java เลือก Program เพื่อเพิ่ม Tool ----- Chapter 8: Introduction to Java Programming -----
  12. 12. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 12 / 24 Set คาในการ Compile และ Run เมื่อตองการเขียนโปรแกรมดวยภาษาจาวา โดยใชโปรแกรม Editplus ใหเขาไปที่เมนู File แลวเลือกคํา สั่ง New ->Java หรือเลือกที่ จะปรากฏเมนูยอยออกมาจากนั้นเลือกที่รายการ Java ----- Chapter 8: Introduction to Java Programming -----
  13. 13. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 13 / 24 เมื่อตองการ Compile หรือ Run โปรแกรมก็ใหเปดหนาจอโปรแกรมที่เราตองการ Compile หรือ Run หลังจากนั้นเขาไปที่เมนู Tools แลวเลือกคําสั่งที่เราตองการเชน Compile, Run หรือ CallAppletViwer ที่เราได สรางไวจากภาพขางตน รูปแสดงขั้นตอนการ Compile และผลลัพธที่ไดจากการ Compile รูปแสดงขั้นตอนการ Run และผลลัพธที่ไดจากการ Run ----- Chapter 8: Introduction to Java Programming -----
  14. 14. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 14 / 24 8.10 การสรางและเรียกใชโปรแกรมภาษาจาวา ขั้นตอนในการสราง Java Application ไดแก 1. ปอนรายละเอียดตางๆ ของโปรแกรม หรือที่เรียกวา “Source code” ลงไป จากนั้น Save ไฟลนี้เก็บไว โดยกําหนดนามสกุลเปน .java ไฟลนี้เรียกวา “Source File” 2. นํา Source File มา Compile โดยใชคําสั่ง “javac” ซึ่งเปน Compiler ของภาษาจาวา แลว ตามดวยชื่อ Source File ที่กําหนดไวในขอ 1 ถาไมมีขอผิดพลาดใดๆ เกิดขึ้นในโปรแกรม (Syntax Error) จะไดผลลัพธเปนไฟลใหมเพิ่มมาอีก 1 ไฟล โดยจะมีนามสกุลเปน .class ทั้งนี้ไฟลที่ไดจะอยูในรูปของ “Bytecodes” ไบตโคด 3. เรียกใชผลลัพธที่ไดจากในขอ 2 โดยใชคําสั่ง “java” ซึ่งเปน Interpreter ของภาษาจาวา แลวตามดวยชื่อไฟลผลลัพธในขอ 2 แตไมตองใสนามสกุล .class ลงไปดวย มิฉะนั้นจะ เกิด Error ขึ้น ตัวอยางที่ 8.3 ปอนขอมูลแลวกําหนดชื่อโปรแกรมเปน “HelloApp” จากนั้นใหทําการ Compile และเรียกใช โปรแกรมนี้ดวย import java.lang.*; public class HelloApp { public void Run( ) { char c[] = {‘J’,’a’,’v’,’a’}; String S1 = new String©; System.out.println(S1); } public static void main (String args[ ]) { HelloApp theApp = new HelloApp( ); theApp.Run( ); } ผลลัพธ C:Myjava>javac HelloApp.java C:Myjava>java HelloApp Java คําอธิบาย เมื่อเรียกใชโปรแกรม โปรแกรมจะแสดงขอความวา “Java” ออกมาทางจอภาพ ----- Chapter 8: Introduction to Java Programming -----
  15. 15. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 15 / 24 ลักษณะทั่วไปของโปรแกรมจาวา จะเปนดังนี้ 1. มี Class อยางนอย 1 Class ใน 1 โปรแกรม (1 โปรแกรม สามารถมีไดมากกวา 1 Class แตวิธีการ เรียกใช Method ในแตละ Class ก็จะแตกตางกันไป ซึ่งจะไดกลาวในลําดับตอไป) 2. ภายใน 1 โปรแกรม จะมี Class ที่เปนชนิด “public” ไดเพียง Class เดียวเทานั้น ทั้งนี้ ชื่อ Class ที่ เปน public จะตองเปนชื่อเดียวกันกับชื่อโปรแกรมเสมอ การทํางานของโปรแกรมขางตน จะเปนดังนี้ 1. ภายในโปรแกรมจะตองมี Method ที่ชื่อ “main” เสมอ โดย Method “main” จะเปน Method แรกที่ โปรแกรมจะเรียกใชเปนลําดับแรก จากตัวอยางโปรแกรมจะไปเรียกใช Method “main” จากนั้นภาย ใน “main” จะไปเรียกใช Method อื่นๆ ตอไป 2. กอนการเรียกใช Method ใดๆ จะตองทําการสราง Object ของ Class ขึ้นมากอนเสมอ เชน จากตัว อยางโปรแกรมจะเรียกใช Method “main” โดยอัตโนมัติ ดังนั้นจึงไมตองสราง Object ใดๆ ขึ้นมา แต เมื่อ “main” ตองการจะเรียกใช Method “Run” จะตองสราง Object ขึ้นมากอน ดวยคําสั่ง HelloApp theApp = new HelloApp( ); โปรแกรมจะสราง Object (หรือตัวแปร) ชื่อ “theApp” ขึ้นมาโดยมีโครงสรางตาม Class “HelloApp” จากนั้นจึงเรียกใช Method “Run” ดวยคําสั่ง theApp.Run( ); หมายเหตุ รูปแบบการทํางานดังกลาวขางตน อาจจะแตกตางกันไปแลวแตความชํานาญของ โปรแกรมเมอรแตละคน ซึ่งจะไดพิจารณากันอีกครั้งในหัวขอตอไปนี้ 8.11 โครงสรางของ Class (Class Structure) ในการเขียนโปรแกรมแบบ Object นั้น ผูเขียนโปรแกรมหรือที่เรียกวา โปรแกรมเมอรนั้น ก็สามารถ กําหนดรูปแบบการเขียนไดอยางเปนอิสระ ซึ่งแตละคนก็อาจเขียนแตกตางกันไป ทั้งนี้เพื่อใหเปนแบบสําหรับแต ละหนวยงาน แตก็จะยังคงมีโครงสรางพื้นฐานของ Class ที่คลายกัน โดยเราสามารถแบงโครงสรางได 2 รูปแบบ ตอไปนี้ในการอธิบาย รูปแบบที่ 1 แยกเปน Method ชื่อ “main” และ “Run” ทั้งนี้โปรแกรมจะเริ่มทํางานที่ “main” โดย อัตโนมัติ จากนั้นภายใน “main” จะมีการเรียกใช Method ชื่อ “Run” อีกทีหนึ่ง (จะตองมี การสราง Object ใหมขึ้นมากอนดวย ดังที่กลาวไวในตัวอยางที่ 8.3) การเขียนในลักษณะ เชนนี้ จะทําใหโปรแกรมดูเปนระเบียบและเปนรูปแบบของ OOP มากขึ้น ----- Chapter 8: Introduction to Java Programming -----
  16. 16. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 16 / 24 public class someApp { private variable declaration; private variable declaration; public someApp( ) { //constructor; } public void Run( ) { //a method; } public int someMethod (int value1, int value2) { //another method; } public static void main(String args[ ]) { someApp theApp = new someApp( ); theApp.Run( ); } } รูปแบบที่ 2 รวม Method ชื่อ “Run” มาอยูใน Method ชื่อ “main” โดยโปรแกรมจะเริ่มตนทํางานที่ “main” ทันที ไมตองเรียกใช Method “Run” อีกตอหนึ่ง เปนการเขียนที่งายและรวดเร็ว public class someApp { private variable declaration; private variable declaration; public someApp( ) { //constructor; ----- Chapter 8: Introduction to Java Programming -----
  17. 17. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 17 / 24 } public int someMethod (int value1, int value2) { //another method; } public static void main(String args[ ]) { // a method (ยุบ Method “Run” มาไวใน Method) นี้; } } คําอธิบายของทั้ง 2 รูปแบบ 1. จากโครงสรางขางตน จะแสดง class จํานวน 1 Class ภายใน Class จะมี Method ยอยๆ จากตัว อยาง class นี้ มีชื่อวา “SomeApp” โดยมี Method ยอยชื่อ someApp, someMethod และ main (รูป แบบที่ 1 มี Method ชื่อ “run” เพิ่มมาดวย) ทั้งนี้ทายชื่อของ Method จะตองตามดวยเครื่องหมาย วง เล็บเปดและปดเสมอ (ในกรณีที่ไมไดมีการสงคา Parameter ใดๆ ไปดวย) 2. ชื่อของ Class หรือ Method ใดๆ ที่ตั้งไว จะตองระมัดระวังในเรื่องตัวอักษรพิมพเล็ก และพิมพใหญ ดวยเนื่องจาก Compiler ของจาวา จะแปลเปนคนละชื่อกัน เชน someApp จะไมเหมือนกับ Some_App เพื่อความเขาใจอาจใชตัวอักษรตัวใหญเปนตัวขึ้นคําใหม เชน someApp ก็ได 3. ภายใน Class หนึ่งๆ จะตองมีเครื่องหมายปกกาเปด { เพื่อแสดงจุดเริ่มตน และมีเครื่องหมายปกกาปด } เพื่อแสดงจุดสิ้นสุดของ Class นั้น เชนเดียวกันกับแตละ Method ก็จะมีเครื่องหมายปกกาเปดและ ปดมาแสดงจุดเริ่มตนและจุดสิ้นสุดเชนเดียวกัน 4. แตละคําสั่งที่ใชภายใน Class (ยกเวนบรรทัด Header ของ Class และ Method) จะตองปดทายดวย เครื่องหมาย Semicolon (;) เสมอ เชน theApp.Run( ); 5. บรรทัดที่แสดงชื่อ Class จะตองมี Keyword วา “class” เสมอ และไมตองปดทายดวย Semicolon (;) เชน public class someApp; 6. หนาชื่อของตัวแปร, Method หรือ Class จะมี Keyword เพื่อระบุขอบเขต (Accessibility) ของการ เรียกใชชื่อ (Accessibility) เหลานี้ได โดยแบงเปน static, public, private, protected และ void 7. จาวาไมไดกําหนดรูปแบบการจัดเรียง Method ใน Class ไว ดังนั้นจึงสามารถวาง Method ตางๆ ได ตามอิสระแตทั้งนี้เพื่อความสะดวก เรานิยมวาง main Method ไวที่ดานบนหรือดานลางสุดของ โปรแกรม เพื่อใหสังเกตไดงายขึ้น (ทุกโปรแกรมจะเริ่มตนทํางานที่ main Method กอนเสมอ) “main” ----- Chapter 8: Introduction to Java Programming -----
  18. 18. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 18 / 24 เปน Method แรกที่โปรแกรมเรียกใช ดังนั้นทุกโปรแกรมจะตองมี Method ชื่อนี้เสมอ และจะตอง เขียนในรูปแบบ อยางใดอยางหนึ่งคือ public static void main(String args[]) หรือ public static void main(String[] args) 8. ตัวแปรตางๆ ควรกําหนดรวมไวในที่เดียวกัน เพื่อใหมีระเบียบและแกไขไดงายขึ้น 9. สามารถมี Class ไดมากกวา 1 class ใน 1 โปรแกรม และโปรแกรมใดๆ ก็สามารถเรียกใช class และ method ในโปรแกรมอื่นๆ ได (ถาโปรแกรมนั้นกําหนดใหสามารถเรียกใชได) สําหรับ Class ที่ใชเปน ชื่อโปรแกรมนั้นจะตองมี Keyword วา “public” ดวยเสมอ (ดังนั้นมีเพียง 1 public class ใน 1 โปรแกรมเทานั้น) ตัวอยางที่ 8.4 นําตัวอยางที่ 8.4 มาดัดแปลงใหเขียนตามรูปแบบที่ 2 ไดดังนี้ import java.lang.*; public class HelloApp { public static void main (String args[]) { char c[] = {‘J’,’a’,’v’,a’}; String S1 = new String(c) ; System.out.println(S1); } } 8.12 โครงสรางของ Method (Method Structure) โดยทั่วไปรูปแบบ Method จะเปนดังนี้ (ยกเวน main Method, Constructor และ Destructor) accessibility return_data_type methodName (parameter_list) { // เนื้อหาของ method } คําอธิบาย 1. บรรทัดแรกของ Method เรียกวา “Header” ใชแสดงชื่อของ Method รวมทั้งคาตางๆ ดังนี้ • accessibility กําหนดชนิดของการเรียกใช สําหรับแตละ Method นี้ แบงเปน private, public, protect, static และ void ----- Chapter 8: Introduction to Java Programming -----
  19. 19. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 19 / 24 • return_data_type กําหนดชนิดของผลลัพธที่ Method นั้นจะสงคากลับ ใน 1 Method จะตองสงผลลัพธอยาง นอยที่สุด 1 คากลับไปยัง Method ที่เรียกใชมา (ยกเวนกําหนด Accessibility ไวเปน “void”) ทั้งนี้ชนิดของ Return_data_type อาจเปนชนิดทั่วไป (เชน Integer, Character) หรือเปนชนิดซับซอน (เชน Array หรือ Object) ก็ได • parameter_list เปนชื่อของตัวแปรที่ใชรับขอมูลที่สงมาจาก Method ที่เรียกใชงาน method นี้ ถาไมมีการสง คามาให ก็ไมจําเปนตองมี parameter_list ก็ได กรณีที่มี parameter_list มากกวา 1 ตัว ให คั่นแตละตัวดวยเครื่องหมาย comma (,) 2. บรรทัดที่เปน Header ของ Method ไมตองปดทายดวยเครื่องหมาย semicolon (;) 3. Body of Method ก็คือ คําสั่งตางๆ ที่จะใชในการทํางานงานของ Method นี้ 4. Body of Method จะตองอยูภายในเครื่องหมาย { และ } ดวย 8.13 Accessibility คาขอบเขตของการใชงาน ตัวแปร, Method หรือ Class นั้นเรียกวา “Accessibility” แบงออกเปน • static ใชนิยามตัวแปรและ Method ที่ตองการใหมีคาคงที่ สามารถนําไปใชได กับทุกๆ สวนของ Class โดยคานั้นจะไมมีการเปลี่ยนแปลงไมวากรณีใดๆ • public ใชนิยามตัวแปร , Method และ Class ใดๆ เพื่อใหสามารถนําไปใชกับ Class หรือโปรแกรมอื่นๆ ได • private ใชนิยามตัวแปรหรือ Method เพื่อใหเรียกใชไดเฉพาะภายใน Class ที่ สรางตัวแปร หรือ Method นั้นๆ ขึ้นมาเทานั้น • protected ใชนิยามตัวแปรหรือ Method ที่ใชไดเฉพาะ Class ที่สรางขึ้นมาดวยวิธี การสืบทอด (Inheritance) เทานั้น โดยปกติจะใช Protected กับ Class ที่เปน Class ตนฉบับ (Base Class) • void ใชนิยาม Method โดยเปนการกําหนดใหไมมีการสงคาใดๆ กลับมาใหกับ Method นี้ (ดังนั้นจึงไมตองใชคําสั่ง Return) ถาไมมีการระบุคา Accessibility ไว จะหมายถึง • ตัวแปร ใชไดเฉพาะใน Method ที่นิยามตัวแปรนั้นไว • Method ใชไดเฉพาะภายใน Class นั้นเทานั้น Class อื่นจะมาเรียกใชไมได • Class ใชไดเฉพาะภายในโปรแกรม (File) นี้เทานั้น โปรแกรมอื่นจะมาเรียกใช Method หรือตัวแปรตางๆ ใน Class นี้ไมไดเลย ----- Chapter 8: Introduction to Java Programming -----
  20. 20. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 20 / 24 8.14 Overloading งานบางงานอาจตองการใหมีการแยกแยะดวยวา สงคาตัวแปรชนิดใดมา เชน ถาสงคาตัวแปรมาเปน Integer ก็ใหทํางานใน Method ที่ 1 ถาสงมาเปน String ก็ใหทํางานใน Method ที่ 2 โดยทั้ง 2 Method จะ ทํางานเหมือนกัน เพียงแตรับคา Input มาตางกัน ลักษณะเชนนี้เรียกวา “Overloading” ขอจํากัดของ Overloading คือ ชื่อ Method ที่ใช (เชน Method1, Method2) จะตองเปนชื่อเดียวกัน เพียงแต parameter_list ตางกัน รูปแบบของ Overloading แสดงไดดังนี้ public String find (int ID-numb) { // เนื้อหาของ method } public String find (String name) { // เนื้อหาของ method } คําอธิบาย 1. ทั้ง 2 Methods มีชื่อเดียวกันคือ “find” และมีชนิดของ Return_data_type เปน “String” เหมือนกัน 2. ถา Method ที่เรียกใชงาน สงคา Parameter มาเปนชนิด Integer (ตัวเลข) โปรแกรมจะเลือกทํางาน ตาม “Method บน” แตถาสง Parameter มาเปนชนิด String (ขอความ) โปรแกรมก็จะทํางานตาม “Method ลาง” แตไมวาจะทํางานตาม Method ใด ก็ตาม ผลลัพธที่สงกลับไปให Method ที่เรียกใช งาน จะตองเปน “String” เสมอ 8.15 Constructors เมื่อ Object ใดๆ ถูกสรางขึ้นมาจะตองไปเรียกใช Method ที่ระบุนี้ขึ้นมาใชงานทันที การกําหนดการ ทํางานลักษณะเชนนี้เรียกวา “Constructor” ดังนั้น Constructor ก็คือ Method ทั่วๆ ไป ของจาวา แตมีขอจํากัด ดังนี้ 1. ชื่อของ Constructor จะตองเปนชื่อเดียวกันกับชื่อ Class ที่ใชสราง Object 2. Header ของ Constructor จะตองไมมีคา Return_data_type ดังนั้น ถาชื่อ Method ใดๆ ใน Class เปนชื่อเดียวกันกับ Class ดวย แสดงวา Method นั้นเปน “Constructor” Method ตัวอยางของการสราง Constructor เชน ในโปรแกรมสําหรับเกมสบางอยางจําเปนตองเรียกใชตัวเลข สุมทุกครั้งที่เริ่มตนเกมสใหม แตทั้งนี้ไมจําเปนที่ทุกโปรแกรมจะตองมีการกําหนด Constructor ไวดวย แตเพื่อ ใหมีมาตรฐานเดียวกัน จึงนิยมเขียน Constructor เอาไวในโปรแกรมเสมอ ถึงแมจะไมมีการทํางานใดๆ ใน Constructor ก็ตาม โดยจะกําหนดเปนบรรทัดวางไว เชน สมมติชื่อของ Class คือ “HelloApp” ดังนั้นจะสราง Method ชื่อ “HelloApp” เอาไวดวย โดยกําหนดเครื่องหมายปกกาเปดและปดเอาไวเทานั้น (ไมมีการทํางาน ใดๆ) ----- Chapter 8: Introduction to Java Programming -----
  21. 21. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 21 / 24 public HelloApp ( ) { } โดยทั่วไปสําหรับโปรแกรมสวนใหญๆ ใน Class หนึ่งๆ มักจะมีการกําหนด Constructor ไวมากกวา 1 Constructor โดยจะขึ้นอยูกับคาของ Parameter ที่สงมา ดังนั้นจึงสามารถนําลักษณะที่เรียกวา “Overloading” มาใชงานรวมกับ Constructor ได (อยาลืมวา Constructor ก็คือ Method นั่นเอง) 8.16 Public Class Class ที่มีคา Accessibility เปน “public” จะมีไดเพียง Class เดียวใน 1 โปรแกรมเทานั้น และชื่อ Class จะตองเปนชื่อเดียวกันกับชื่อโปรแกรมดวย 8.17 main Method main Method จะแตกตางจาก Method อื่นๆ ไดแก • มีเพียง 1 main Method ใน 1 โปรแกรมเทานั้น • จะตองมีคา Accessibility เปน “static” เสมอ • จะไมมีการสงคากลับคืน ดังนั้นจึงใช Accessibility “void” รวมดวยเสมอ • Parameter_list จะตองเปนรูปแบบใดรูปแบบหนึ่งเสมอคือ (String args[ ]) หรือ (String[ ] args) หมายเหตุ มี Keyword 2 คํา ที่ใชในการอธิบายไดแก • Parameter เปนชื่อตัวแปรที่ Method ที่ถูกเรียกใช ใชในการรับคาที่สงมาจาก Method ที่เรียกใช • Argument เปนชื่อตัวแปรที่ Method ที่เรียกใช ใชในการสงคาไปใหกับ Method ที่ถูก เรียกใช กลาวงายๆ ก็คือ Argument เปนตัวสง และ Parameter เปนตัวรับ นั่นเอง 8.18 การเรียกใช Class Libraries Class Libraries คือโปรแกรมยอยๆ ที่เขียนขึ้นมาพรอมใหใชไดเลย เรียกโปรแกรมยอยๆ วา “Package” การเรียกใชนั้น จะกําหนดคําสั่งไวดานบนสุดของโปรแกรม โดยใชคําสั่ง Import แลว import java.lang เปนการเรียกใช Class ชื่อ lang ใน Package ชื่อ java ----- Chapter 8: Introduction to Java Programming -----
  22. 22. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 22 / 24 import java.*; เรียกใชทุก Class ของ Package ชื่อ “java” เปนการสะดวกกวาการเรียกใชทีละ Class แตจะสิ้น เปลืองหนวยความจําไปสวนหนึ่ง 8.19 การสราง Object Class เปรียบเสมือนตนแบบ (Template) สําหรับสราง Object ใดๆ ขึ้นมา Object ใดถูกสรางใน Class ใด ก็จะมีโครงสรางเหมือนกันที่ระบุใน Class นั้น (ถามีแต Class แตไมมี Object ก็จะไมมีการทํางานใดๆ เกิดขึ้น เปรียบเสมือนกับหองเรียนที่ไมมีครูและนักเรียน ก็จะไมมีการเรียนการสอนเกิดขึ้น ดังนั้นเมื่อสราง Class ขึ้นมา ก็จะตองสราง Object ขึ้นมาดวยเสมอ) เมื่อมีการสราง Object ใดๆ ขึ้นมา โปรแกรมจะทํางานตามขั้นตอนดังนี้ • จัดสรรที่วางใน Main Memory (หนวยความจําหลัก) ใหกับตัวแปรตางๆ ของ Object • เชื่อม Object นั้นกับ Method ตางๆ ใน Class • ถา Class นั้นมีการใช “Constructor” ใหทํางานตาม Constructor กอน • สงคาของที่อยู (Address) ของจุดเริ่มตนของ Object ไปใหกับโปรแกรม เพื่อใหโปรแกรม ทราบวา Object เชน ใชคําสั่ง 1 และคําสั่งที่ 2 ในการสราง Object ใหมดังนี้ คําสั่งที่ 1 HelloApp theApp; • HelloApp เปนชื่อ Class ที่จะใชสราง Object • theApp เปนชื่อตัวแปรที่ใชเก็บ Address ของ Object ที่สรางขึ้น (สรางตัวแปรขึ้น มาเทานั้น ยังไมไดสราง Object) เรียกตัวแปรนี้วา “ตัวแปร Object” สรุป เปนคําสั่งที่ใชสรางตัวแปรชื่อ theApp เพื่อเตรียมไวสําหรับสราง Object ไวใน Class ชื่อ HelloApp คําสั่งที่ 2 theApp = new HelloApp( ) • new เปนคําสั่งที่ใชในการสราง Object ใหม • theApp เปนชื่อตัวแปร (หรือ Object ) ที่สรางมาไวแลวจากขอ 1 • HelloApp เปนชื่อ Class ที่ใชสราง Object ใหม โดยจะตามดวยคา Parameter ที่ จะสงมาใชในการสราง Object ใหม (จากตัวอยางจะไมมีคา Parameter ใดๆ ดังนั้นจึงกําหนดเปนเพียงวงเล็บเปดและปดเทานั้น) สรุป เปนคําสั่งที่ใชสราง Object ใหมภายใต Class ชื่อ HelloApp และเก็บที่อยูของ Object ไวใน ตัว แปรชื่อ theApp ทั้ง 2 คําสั่ง สามารถเขียนรวมกันเปนคําสั่งเดียวได โดยมีรูปแบบดังนี้ ----- Chapter 8: Introduction to Java Programming -----
  23. 23. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 23 / 24 8.20 การเรียกใช Method การเรียกใช Method ใดๆ นั้นจะตองอางอิงถึง Object ใน Method นั้นๆ ดวยเสมอ โดยการเรียกใช Method ใดๆ มีรูปแบบดังนี้ Object_variable.Method_name(argument_list) Object_variable คือชื่อ Object (หรือตัวแปร) ที่สรางขึ้นมาดวยคําสั่ง new Method_name คือชื่อ Method ที่ Class นั้นๆ มีอยู Argument_list คือรายชื่อตัวแปรที่ใชสงไปให Method ที่เรียกใช (Method_name) System.out.println(“กรุณาใสชื่อของคุณ”); คําอธิบาย เปนการเรียกใช Method ชื่อ “println” ซึ่งเปน Method หนึ่งใน Class ชื่อ “System.out” ของ Package ชื่อ “lang” ที่เรา import เขามา (import java.lang.*) ทั้งนี้จะสงขอความวา “กรุณาใสชื่อของคุณ: “ ไป ใหกับ Method นี้ดวย เพื่อใชในการแสดงผลทางจอภาพ หมายเหตุ อยาลืมเครื่องหมายจุด (.) คั่นระหวางชื่อตัวแปร Object และชื่อ Method ดวย 8.21 การใสหมายเหตุ (Comment) เปนสวนของโปรแกรมที่ตองการใชอธิบายสิ่งใดๆ ก็ตามใหโปรแกรม โดย Compile จะขามการแปลขอ ความของบรรทัดที่กําหนดเปนหมายเหตุไว การสรางหมายเหตุ ทําได 2 รูปแบบคือ 1. ใช /* และ */ เหมาะสําหรับกําหนดขอความที่ยาวเทากับ 1 บรรทัด โดยโปรแกรมจะถือวาขอความที่ตามหลัง /* จะเปนหมายเหตุ ไปจนกวาจะพบเครื่องหมาย */ จึงจะแสดงวาจบหมายเหตุแลว 2. ใช // เหมาะสําหรับขอความสั้นๆ 1 บรรทัด โดยถาบรรทัดใดขึ้นตนดวย // บรรทัดนั้นจะถือเปน หมายเหตุ และ Compiler จะขามบรรทัดนั้นไป ไมวาจะใชหมายเหตุรูปแบบใดก็ตาม ไมตองมีเครื่องหมาย ; ปดทาย เหมือนกับคําสั่งอื่นๆ เชน // This line is comment1 // This line is comment2 /* This line is comment3 This line is comment4 */ ----- Chapter 8: Introduction to Java Programming -----
  24. 24. 1204101 : ความรูพื้นฐานทางวิทยาการคอมพิวเตอร (Fundamentals of Computer Science) หนา 24 / 24 8.22 ตรวจสอบการทํางานของโปรแกรมทีละขั้นตอน (Program Tracking) ลองตรวจสอบการทํางานของโปรแกรม HelloApp ในตัวอยางที่ 8.3 ทีละขั้นตอน ดังนี้ • เริ่มตนทํางานโดยมาที่ main Method ถาเปนรูปแบบที่ 1 จะทํางานตอไปนี้กอน • ใน main Method จะสราง Object ใหมชื่อ “theApp” ภายใต Class ชื่อ “HelloApp” (โปรแกรมนี้มีเพียง Class เดียวและเปน Application Class ดวย) • เรียกใช Method ชื่อ “Run” จากคําสั่ง theApp.Run( ) ทั้ง 2 รูปแบบ จะทํางานเดียวกันคือ • เรียกใช Method “println” ของ Object ชื่อ “out” ซึ่งอยูใน Class ชื่อ “System” โดย Method นี้จะทําหนาที่แสดงขอความที่ปอนเขามาทางจอภาพ • จบการทํางานของโปรแกรม หมายเหตุ 1. คําสั่ง System.out.println เปน Package ตัวหนึ่งที่สามารถเรียกใชงานไดทันที โดยจะใชแสดง ผลขอความ หรือ ตัวอักษรมากกวา 1 ตัวบนจอภาพ 2. เครื่องหมายเพิ่มเติมที่อาจพบไดใน Method “println” ไดแก 3. ใส Sting Quote (‘) ไวใน Double Quote (“) ในกรณีที่ตองการกําหนดเปนขอความซอนกัน เชน System.out.println(“nn สวัสดีครับ “ คุณ “+theName+” ‘ ! nn”); รายการเอกสารอางอิง [1] กิตติ ภักดีวัฒนะกุล. Java ฉบับโปรแกรมเมอร. พิมพครั้งที่ 1. สถานที่พิมพ: ไทยเจริญการพิมพ, 2542. [2] สาธิต ชัยวิวัฒนตระกูล. เกง JSP ใหครบสูตร. พิมพครั้งที่ 1. 2545. [3] นรินทร โอฬารกิจอนันต. จาวาสําหรับผูเริ่มตน [4] http://www.thaiall.com/class/indexr.htm ----- Chapter 8: Introduction to Java Programming -----

×