บทที่ 1 - mwit · บทที่ 1 รู จักกับภาษาจาวา...
TRANSCRIPT
MWITS
Mahido
l Witta
yanu
sorn
Schoo
l
MWITS
บทที่ 1รูจักกับภาษาจาวา
เนื้อหา1. ประวัติความเปนมา2. การทํางานของโปรแกรมภาษาจาวา3. เครื่องมือสําหรับเขียนโปรแกรมภาษาจาวา4. เริ่มตนเขียนโปรแกรมภาษาจาวา5. การเขียนคําอธิบายโปรแกรม
จุดประสงคการเรียนรู1. อธิบายประวัติความเปนมาของภาษาจาวาได2. อธิบายการทํางานของภาษาจาวาได3. เลือกใชจาวาแพลตฟอรมใหเหมาะสมกับงานได4. เขียนโปรแกรมภาษาจาวาเพื่อแสดงผลอยางงายได5. เลือกใชเครื่องหมายเพื่อเขียนคําอธิบายโปรแกรมได
1. ประวัติความเปนมาภาษาจาวาถือกําเนิดขึ้นจากความตองการที่จะสรางคอมไพเลอรภาษาคอมพิวเตอรซึ่งเปนอิสระ
จาก Hardware รุนใดรุนหนึ่ง หรือยี่หอใดยี่หอหนึ่ง โดยจุดประสงคแรกนั้นตองการที่จะใชเขียนโปรแกรม เพื่อควบคุมอุปกรณ เครื่ อ งใช ไฟฟ าและอุปกรณอิ เล็กทรอนิคสต างๆ เชน เตาอบ เครื่ องซักผา โทรศัพทมือถือ Set Top Box ของเคเบิ้ลทีวี ฯลฯ ดวยเหตุนี้ โดยการนําของ James Gosling หัวหนา กลุม Green Group แหงบริษัท Sun Microsystems จึงไดเริ่มโครงการพัฒนาภาษาดังกลาวอยางจริงจัง ในป 1991 โดยขั้นแรกชื่อวา ภาษา Oak แตหลังจากที่ไมประสบความสําเร็จในการนําไปใชงานตามความคิดริเริ่มดังกลาว ประกอบกับบริษัท Sun Microsystems เริ่มมองเห็นความจําเปนที่ตองมีภาษาที่สรางโปรแกรมบนเครื่องหนึ่งแตสามารถนําไปใชงานบนเครื่องใดๆ ก็ได (Write Once Run Anywhere) บริษัทจึงไดนําเอาภาษา Oak มาพัฒนาตอใหเปนภาษาเชิงวัตถุ (Object Oriented Language) จนไดภาษาจาวาขึ้นในป 1995
ที่มา: blogs.norman.com
MWITS
Mahido
l Witta
yanu
sorn
Schoo
l
MWITS
รายวิชา ง30102 การเขียนโปรแกรมเชิงวัตถุ โรงเรียนมหิดลวิทยานุสรณ
- 2 -
2. การทํางานของโปรแกรมภาษาจาวาการพัฒนาโปรแกรมดวยภาษาจาวาจะเริ่มตนจากการเขียนโคดโปรแกรมจนไดไฟล Source code
ที่มีนามสกุลเปน .java ซึ่งก็คือไฟลโคดที่เราเขียนขึ้น โดยไฟล Source code นี้จะถูกแปล (compile) ดวย Javac compiler ไดเปน Java Bytecode ซึ่งจะอยูในรูปของไฟลที่มีนามสกุลเปน .class
เมื่อโปรแกรมถูกเรียกใชงานบนคอมพิวเตอรหรืออุปกรณใดๆก็ตาม Java Bytecode นี้จะถูกแปลดวย Interpreter ซึ่งในที่นี้คือ Java Virtual Machine หรือ JVM อีกครั้งหนึ่ง เพื่อใหเปนภาษาเครื่องเฉพาะอุปกรณชนิดนั้นๆ เพื่อใหโปรแกรมสามารถทํางานบนอุปกรณนั้นๆได
รูปที่ 1 ภาพรวมของกระบวนการพัฒนาโปรแกรมโดยใชภาษาจาวาที่มา: http://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html
เนื่องจาก Java VM สามารถทํางานบนระบบปฏิบัติการตางๆได ทําใหไฟลนามสกุล .class (Java Bytecode) ไฟลเดียวกันสามารถทํางานบนระบบปฏิบัติการที่หลากหลาย เชน ระบบปฏิบัติการ Microsoft Windows, Solaris , Linux หรือ Mac OS เปนตน ทําใหโปรแกรมที่พัฒนาดวยภาษาจาวานั้นจะไมยึดติดกับแพลตฟอรมใดๆ (Platform Independent)
Write Once, Run Anywhere เปนลักษณะของโปรแกรมที่สรางจากภาษาจาวา กลาวคือโปรแกรมจะถูกนักพัฒนาโปรแกรมสรางขึ้นในครั้งเดียว แตสามารถนําไปใชงานไดในทุกๆที่ ไมวาคอมพิวเตอรจะใชงานระบบปฏิบัติการใดๆ แตอยางไรก็ตามในทุกๆที่ก็ตองมี JVM ดวยเชนกัน
รูปที่ 2 โปรแกรมเดียวกันสามารถรันหรือทํางานไดบนหลายแพลตฟอรมโดยใช JVMที่มา: http://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html
Source code Java Bytecode
MWITS
Mahido
l Witta
yanu
sorn
Schoo
l
MWITS
รายวิชา ง30102 การเขียนโปรแกรมเชิงวัตถุ โรงเรียนมหิดลวิทยานุสรณ
- 3 -
ทั้งนี้คอมพิวเตอรหรืออุปกรณที่จะรันโปรแกรมที่เขียนดวยภาษาจาวา จะตองติดตั้ง Java Runtime Environment หรือ JRE กอนเสมอ ซึ่งภายใน JRE นั้นจะมี Java Virtual Machine อยูดวย
แพลตฟอรมคืออะไรแพลตฟอรม(Platform) คือสภาวะแวดลอมที่ประกอบดวยฮารดแวรและซอฟตแวรของระบบ
คอมพิวเตอรระบบหนึ่ง ซึ่งคอมพิวเตอรที่ใชระบบปฏิบัติการตางกัน ก็จะมี Platform ที่ตางกันไปดวย ในอดีตโปรแกรมประยุกตแตละโปรแกรมจะถูกพัฒนาใหทํางานเฉพาะแพลตฟอรม เนื่องจากแตละแพลตฟอรมมีโปรแกรมอินเตอรเฟซที่ตางกัน ดังนั้น จึงมีโปรแกรมที่ถูกพัฒนาใหทํางานบน Windows ชุดหนึ่ง และทํางานบน Macintosh อีกชุดหนึ่ง แตหากพัฒนาโปรแกรมดวยภาษาจาวาจะสามารถทํางานบนแพลตฟอรมที่ตางกันไดโดยอาศัย Java Virtual Machine
3. เครื่องมือสําหรับเขียนโปรแกรมภาษาจาวาคุณสมบัติขอหนึ่งของภาษาจาวาคือ เปนจาวาแพลตฟอรม กลาวคือ นักพัฒนาโปรแกรมสามารถ
นําภาษาจาวาไปใชเพื่อพัฒนาโปรแกรมไดโดยไมมีขอจํากัดในเรื่องของระบบปฏิบัติการ ฮารดแวร และซอฟตแวรที่โปรแกรมนั้นอาศัยทํางาน โดยบริษัท Sun Microsystems ไดแบงจาวาแพลตฟอรมเปนหลายรูปแบบ (ในบางครั้งจะเรียกวาเปนเทคโนโลยีจาวา) ดังนี้
1) Java Platform, Standard Edition (Java SE) ใชสําหรับพัฒนาโปรแกรม (Java application) เพื่อใชงานบนเครื่องคอมพิวเตอรสวนบุคคล และแอพเพล็ต (Java Applet) เพื่อไปทํางานภายใต web browser (ที่มี Java interpreter)
2) Java Platform, Enterprise Edition (Java EE) ใชสําหรับพัฒนาโปรแกรมในระดับองคกรที่ทํางานบนคอมพิวเตอรระดับเซิรฟเวอร เพื่อรองรับการใชงานจากผูใชจํานวนมากๆ
3) Java Platform, Micro Edition (Java ME) ใชสําหรับพัฒนาโปรแกรมบนอุปกรณอิเล็กทรอนิกส เชน โทรศัพทมือถือ สมารทโฟน ไมโครคอนโทรลเลอร เซนเซอรตางๆ พีดีเอpersonal digital assistants (PDAs) กลองเคเบิลทีวี เครื่องพิมพ เปนตน
4) Java Card ใชสําหรับพัฒนาโปรแกรมบนสมารทการดและอุปกรณอื่น ๆ ที่มีหนวยความจําขนาดจํากัดมากๆ สามารถเรียกใชโปรแกรมขนาดเล็กได
Java Platform, Standard Edition (Java SE) ประกอบดวย1) Java Runtime Environment (JRE) ใชรัน Java Bytecode (ไฟลนามสกุล .class) โดย
JRE จะมี Java Class libraries หรืออาจเรียกอีกอยางวา Java APIs (Application Programming Interfaces) ที่จําเปนตอการใชงานของโปรแกรมภาษาจาวา นอกจากนี้ยังมี Java Virtual Machine และสวนประกอบอื่นที่ใชสําหรับรัน applets และ applicationsที่ถูกเขียนขึ้นดวยภาษาจาวา
2) Java Development Kit (JDK) ประกอบดวย JRE และเครื่องมือตางๆ เชน compilers and debuggers
MWITS
Mahido
l Witta
yanu
sorn
Schoo
l
MWITS
รายวิชา ง30102 การเขียนโปรแกรมเชิงวัตถุ โรงเรียนมหิดลวิทยานุสรณ
- 4 -
ในการพัฒนาโปรแกรมดวยภาษาจาวาจะมีเครื่องมือที่รองรับการพัฒนามากมายหลายตัว ซึ่งเครื่องมือแตละตัวก็จะมีคุณลักษณะที่แตกตางกันไป เชน
• NetBeans เปนเครื่องมือที่ใชสําหรับพัฒนาแอพพลิเคชันดวยภาษาจาวา ไดรับการสนับสนุนจากบริษัท Sun Microsystems ซึ่งเปนซอฟตแวรที่สามารถใชงานไดโดยไมมีคาใชจายใดๆ
• Eclipse เปนเครื่องมือที่ใชสําหรับพัฒนาแอพพลิเคชันดวยภาษาจาวา ที่พัฒนาขึ้นโดย Eclipse contributors โดยเปนซอฟตแวรที่สามารถใชงานไดโดยไมมีคาใชจายใดๆ
4. เริ่มตนเขียนโปรแกรมภาษาจาวาภาษาจาวามีรูปแบบการเขียนโปรแกรมที่ประกอบดวยคลาสอยางนอยหนึ่งคลาสที่มีเมธอด main()
ซึ่งเปรียบเสมือนจุดเริ่มตนของโปรแกรม โดยมีรูปแบบการเขียนโปรแกรมดังนี้
ตัวอยางที่ 1 Sourcecode ของคลาส Hello World ซึ่งถูกบันทึกไฟลชื่อ HelloWorld.java12345
public class HelloWorld {public static void main(String[] args) {
System.out.println(“Hello World”);}
}จากตัวอยางที่ 1 สามารถอธิบายไดดังนี้ บรรทัดที่ 1 เปนการประกาศคลาสขึ้นในชื่อ HelloWorld ซึ่งขอใหสังเกตวาชื่อไฟลจะตองเปนชื่อ
เดียวกันกับชื่อคลาส นั่นคือตองบันทึกไฟลชื่อ HelloWorld.java มีวงเล็บปกกาเปดในบรรทัดที่ 1 หมายถึง จุดเริ่มตนคลาส HelloWorld และวงเล็บปกกาปดใน
บรรทัดที่ 5 หมายถึง จุดสิ้นสุดคลาส HelloWorld คลาส HelloWorld มีเมธอด main() ซึ่งเมื่อ JRE ประมวลผลก็จะทําการคนหาเมธอดชื่อ main()
เพื่อเริ่มทํางานตามชุดคําสั่งที่เขียนไวในเครื่องหมายวงเล็บปกกา { } ของเมธอด main() เมธอด main() จะตองมีคียเวิรด public static void รวมไปถึงพารามิเตอรที่เปนตัวแปรชุดของ
ขอมูลประเภท String ชุดคําสั่งตางๆที่ตองการใหทํางาน จะตองเขียนไวภายในเครื่องหมายวงเล็บปกกา { } ของเมธอด
main() บรรทัดที่ 3 เปนคําสั่งแสดงขอความ “Hello World” สังเกตวาขอความนั้นจะอยูในเครื่องหมาย
“ ” เสมอ ทุกคําสั่งตองปดทายหรือจบดวยเครื่องหมาย semicolon หรือ ; เสมอ
สําหรับสวนประกอบอื่นๆ จะกลาวถึงในบทถัดๆไป
5. การเขียนคําอธิบายโปรแกรมในการเขียนโปรแกรมขนาดเล็ก การเขียนคําอธิบายตางๆ อาจไมใชเรื่องจําเปนนัก แตการเขียน
โปรแกรมขนาดใหญและซับซอน เชน ระบบงานการเงิน ระบบลงทะเบียนนักเรียน หรือบริการตางๆ หากไมมีการเขียนคําอธิบายกํากับก็อาจทําใหการแกไขหรือปรับปรุงโปรแกรมในภายหลังนั้นกระทําไดยาก
MWITS
Mahido
l Witta
yanu
sorn
Schoo
l
MWITS
รายวิชา ง30102 การเขียนโปรแกรมเชิงวัตถุ โรงเรียนมหิดลวิทยานุสรณ
- 5 -
ดังนั้น การเขียนคําอธิบายโปรแกรม (Comment) ในแตละสวนการทํางาน จะชวยใหเราเขาใจการทํางานของโปรแกรมไดงายขึ้น เมื่อตองแกไขหรือปรับปรุงโปรแกรมนั้นๆในภายหลัง
สําหรับการเขียนคําอธิบายในภาษาจาวานั้น สามารถทําไดโดยใชเครื่องหมาย // นําหนาสวนที่เปนคําอธิบายโปรแกรม โดย Javac compiler จะไมแปลภาษาในสวนที่อยูหลังเครื่องหมาย // จนกระทั่งสิ้นสุดบรรทัด ดังตัวอยางที่ 2ตัวอยางที่ 2 การเขียนคําอธิบายใน Sourcecode ของคลาส Hello World ดวยเครื่องหมาย //
1234567
//Ex.2 HelloWorld.javapublic class HelloWorld {
public static void main(String[] args) {//This is my first program
System.out.println(“Hello World”);} //end method main
} //end class HelloWorldจากตัวอยางที่ 2 จะเปนการเขียนคําอธิบาย 4 แหง ไดแก
บรรทัดที่ 1 //Ex.2 HelloWorld.javaบรรทัดที่ 4 //This is my first programบรรทัดที่ 6 //end method mainบรรทัดที่ 7 //end class HelloWorld
ซึ่งหากตองการเขียนคําอธิบายหลายๆบรรทัดติดกัน ใหใชเครื่องหมาย /* คําอธิบาย */ ดังนี้
ตัวอยางที่ 3 การเขียนคําอธิบายใน Sourcecode ของคลาส Hello World ดวยเครื่องหมาย /* *//*HelloWorld.javaThis is my first program */public class HelloWorld {
public static void main(String[] args) {System.out.println(“Hello World”);
}} //end class HelloWorld
แบบฝกหัด1. จงเขียนโปรแกรมเพื่อแสดงขอความทักทาย และแนะนําตนเอง2. จงเขียนโปรแกรมเพิ่มเติมจากขอที่ 1 โดยเขียนคําอธิบาย (Comment) บอกชื่อ – สกุล ชั้น เลขที่ของ
ตนเอง ในบรรทัดแรกของ Source code