20
intro. to Java (FEU.faa) ในบทที่หนึ่งนี้เราจะมาดูการติดตั้งเครื่องมือที่ใช ในการพัฒนาโปรแกรมดวยภาษา Java ตัวอยางการ เขียนโปรแกรมในรูปแบบของ application และ การเขียนโปรแกรมในรูปแบบของ applet หลังจากจบบทนี้แลว ผูอานจะไดทราบถึง o การติดตั้งเครื่องมือที่ใชในการพัฒนาโปรแกรมในภาษา Java o ตัวอยางการเขียนโปรแกรมในรูปแบบของ application o ตัวอยางการเขียนโปรแกรมในรูปแบบของ applet o ตัวอยางการเขียน HTML ไฟลที่ใชในการ execute applet o การเขียนโปรแกรม Java ดวย Crimson Editor o Netbeans กับการเขียนโปรแกรม o ประวัติคราว ของภาษา Java 1.1 ทําไมถึงเลือก Java เปนภาษาในการเขียน code Java เปนภาษาที่นักพัฒนาโปรแกรมสามารถที่จะเขียน code เพียงครั้งเดียว แลวนําไปใชไดกับ เครื่อง computer ชนิด (platform) ตาง ได โดยไมตอง compile ใหม เชน ถาเราเขียนโปรแกรม บนเครื่อง pc เราสามารถที่จะนําเอา code ที่ได compile เรียบรอยแลวไปใช (execute 1 ) ในเครื่อง อื่น ที่ไมใช pc ได เชน apple, linux, unix, หรือ อื่น ที่มี JVM (Java Virtual Machine) อยู Java เปนภาษาที่ไดถูกพัฒนาขึ้นเพื่อสนองตอการพัฒนาโปรแกรมในรูปแบบของการเขียนโปรแกรม ที่เรียกวา OOP หรือ Object-Oriented Programming ซึ่งเปนภาษาที่ชวยใหการพัฒนาโปรแกรมมี ความยืดหยุนสูง ผูเขียน หรือ ผูพัฒนาสามารถที่จะสนองตอบความตองการของผูใช (user) ได มากกวาการพัฒนาในลักษณะของการเขียนโปรแกรมแบบเดิม (procedural language programming) และที่สําคัญอีกอยางหนึ่งก็คือ Java เปนภาษาที่ไมตองเสียคาใชจายใด เลย เรา สามารถที่จะ download โปรแกรมสําหรับการพัฒนาไดจากบริษัท Sun Micro System หรือที่อื่น ที่ทาง Sun ไดอนุญาตใหมีการ download ได 1.2 กอนทีเราจะเขียนโปรแกรมดวย Java เราตองมีอะไรบาง 1. เชนเดียวกันกับการเขียนโปรแกรมในภาษาอื่น เราตองมี Text Editor ที่ใชสรางและเก็บ source code 2. JDK (Java Development Kit) ซึ่งมีหลาย version ลาสุดในขณะที่เขียนตําราเลมนีคือ J2SE 5.0 (jdk1_5_0) ซึ่ง download ไดทีhttp://java.sun.com/j2se/1.5.0/download.jsp เรา ตองใช JDK ในการ compile โปรแกรมที่เราไดเขียนขึ้น 3. Java VM หรือที่เรียกวา Java Virtual Machine ซึ่งเปนตัวกลางที่เปลี่ยน code ที่ไดจากการ compile เปน code ที่สามารถ execute บนเครื่องตาง (code ที่เครื่องนั้น รูจัก – machine code หรือที่ชาว Java เรียกวา byte code) โดยปกติ VM จะถูกติดตั้งพรอมกับ JDK ถาเรามีอุปกรณทั้งหมดที่ไดกลาวมาแลว ขั้นตอนตอไปที่เราตองทําเพื่อใหการพัฒนาโปรแกรมของ เรา เปนไปไดดวยความเรียบรอย (ไมมีอุปสรรคที่คาดไมถึง) เราตองเตรียมความพรอมของเครื่อง กอน 1 ในหนังสือเลมนี้การนําเอาโปรแกรมทีcompile แลวไปใชเราจะเรียกวาการ execute หรือ run ตามศัพทของภาษาอังกฤษ

JAVA Basic Th Ch1 Introduction

  • Upload
    pongnat

  • View
    10

  • Download
    1

Embed Size (px)

DESCRIPTION

JAVA Basic Th Ch1 Introduction

Citation preview

intro

. to

Java

(FE

U.fa

a)

ในบทที่หน่ึงนี้เราจะมาดูการติดต้ังเคร่ืองมือท่ีใช ในการพัฒนาโปรแกรมดวยภาษา Java ตัวอยางการเขียนโปรแกรมในรูปแบบของ application และ การเขียนโปรแกรมในรูปแบบของ applet หลังจากจบบทนี้แลว ผูอานจะไดทราบถึง

o การติดตั้งเคร่ืองมือท่ีใชในการพัฒนาโปรแกรมในภาษา Java o ตัวอยางการเขียนโปรแกรมในรูปแบบของ application o ตัวอยางการเขียนโปรแกรมในรูปแบบของ applet o ตัวอยางการเขียน HTML ไฟลท่ีใชในการ execute applet o การเขียนโปรแกรม Java ดวย Crimson Editor o Netbeans กับการเขียนโปรแกรม o ประวัติคราว ๆ ของภาษา Java

1.1 ทําไมถึงเลือก Java เปนภาษาในการเขียน code Java เปนภาษาที่นักพัฒนาโปรแกรมสามารถที่จะเขียน code เพียงคร้ังเดียว แลวนาํไปใชไดกับเคร่ือง computer ชนิด (platform) ตาง ๆ ได โดยไมตอง compile ใหม เชน ถาเราเขียนโปรแกรมบนเครื่อง pc เราสามารถที่จะนําเอา code ท่ีได compile เรียบรอยแลวไปใช (execute1) ในเคร่ืองอ่ืน ๆ ท่ีไมใช pc ได เชน apple, linux, unix, หรือ อื่น ๆ ท่ีมี JVM (Java Virtual Machine) อยู Java เปนภาษาที่ไดถูกพัฒนาขึ้นเพ่ือสนองตอการพัฒนาโปรแกรมในรูปแบบของการเขียนโปรแกรมท่ีเรียกวา OOP หรือ Object-Oriented Programming ซึ่งเปนภาษาที่ชวยใหการพัฒนาโปรแกรมมีความยืดหยุนสูง ผูเขียน หรือ ผูพัฒนาสามารถที่จะสนองตอบความตองการของผูใช (user) ไดมากกวาการพัฒนาในลักษณะของการเขียนโปรแกรมแบบเดิม (procedural language programming) และท่ีสําคัญอีกอยางหนึ่งก็คือ Java เปนภาษาที่ไมตองเสียคาใชจายใด ๆ เลย เราสามารถที่จะ download โปรแกรมสําหรับการพัฒนาไดจากบริษัท Sun Micro System หรือท่ีอ่ืน ๆ ท่ีทาง Sun ไดอนุญาตใหมีการ download ได 1.2 กอนทีเราจะเขียนโปรแกรมดวย Java เราตองมีอะไรบาง 1. เชนเดียวกันกับการเขียนโปรแกรมในภาษาอื่น ๆ เราตองมี Text Editor ท่ีใชสรางและเก็บ

source code 2. JDK (Java Development Kit) ซึ่งมีหลาย version ลาสุดในขณะท่ีเขียนตําราเลมน้ี คือ J2SE

5.0 (jdk1_5_0) ซึ่ง download ไดท่ี http://java.sun.com/j2se/1.5.0/download.jsp เราตองใช JDK ในการ compile โปรแกรมท่ีเราไดเขียนข้ึน

3. Java VM หรือท่ีเรียกวา Java Virtual Machine ซึ่งเปนตัวกลางที่เปลี่ยน code ท่ีไดจากการ

compile เปน code ท่ีสามารถ execute บนเคร่ืองตาง ๆ (code ท่ีเคร่ืองนั้น ๆ รูจัก – machine code หรือท่ีชาว Java เรียกวา byte code) โดยปกติ VM จะถูกติดตั้งพรอมกับ JDK

ถาเรามีอุปกรณท้ังหมดท่ีไดกลาวมาแลว ข้ันตอนตอไปท่ีเราตองทําเพ่ือใหการพัฒนาโปรแกรมของเรา เปนไปไดดวยความเรียบรอย (ไมมีอุปสรรคที่คาดไมถึง) เราตองเตรียมความพรอมของเคร่ืองกอน

1 ในหนังสือเลมน้ีการนําเอาโปรแกรมที่ compile แลวไปใชเราจะเรียกวาการ execute หรือ run ตามศัพทของภาษาอังกฤษ

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

2

1.3 เตรียมความพรอม (สําหรับ pc) 1. ติดตั้ง JDK 2. กําหนดที่อยูของไฟลตาง ๆ (path) ท่ีจําเปนสําหรับการ compile ภายในเครื่องเพ่ือใหการ

compile และ execute โปรแกรมเปนไปได – ถาเราไมกําหนด path เคร่ืองของเราจะไมรูจักคําส่ังตาง ๆ ท่ี Java ใช

1.3.1 ติดตั้ง JDK เม่ือ download JDK มาแลวการติดตั้งก็ทําไดงาย เนื่องจาก JDK เปนไฟลท่ีเราเรียกวา self-extracting file คือ ไฟลท่ีจะติดตั้งโดยอัตโนมัติเม่ือเรา execute (doubling click หรือ ดวยวิธีการอ่ืน ๆ เชน click บน icon ของ file แลวกด enter) สําหรับไฟล j2se 5.0 นั้นมีขนาดประมาณ 44 MB ซึ่งเปนไฟลท่ีใหญพอสมควร และใชเวลานานในการ download (ถา speed ในการ download ไมดีพอ) ซึ่งเมื่อขยายออกจะมีขนาดประมาณ 170 MB เพราะฉะนั้นเราตองเตรียมเน้ือท่ีไวใหเหมาะสมในการติดตั้ง JDK ถาหากวาเนื้อท่ีในการจัดเก็บมีนอย เราก็ควรใช JDK version อ่ืน ๆ ท่ีมีขนาดเล็กกวา หลังจากท่ีติดตัง้ J2se เรียบรอยแลว ผูอานก็ควรท่ีจะติดตั้ง Java API (Application Programming Interface) เพ่ือใหเปนการอางอิงถึงการใช class และ methods ตางๆ ท่ี Java มีใหซึ่ง API นี้สามารถ download ไดท่ี http://java.sun.com/j2se/1.5.0/download.jsp เม่ือไดไฟลมาแลวก็ทําการแตกไฟล (upzip) ไวในท่ีๆ เขาหาไดงาย และถาหากผูอานอยากที่จะดูวา code ของ Java หนาตาเปนยังไงก็สามารถ unzip source code ท่ีมากับ J2se ได หลังจากท่ีไดติดตั้ง J2se พรอมท้ังไฟลอ่ืนๆ แลวหนาตาของ directory ของ Java ก็จะมี folder ตางๆ คลายๆ กับท่ีเห็นนี้

ภาพท่ี 1-1 Folder ท่ีอยูใต j2sdk1.5.0 หลังจากการติดตั้งไฟลท่ีเก่ียวของ 1.3.2 การกําหนด path ถาการพัฒนาโปรแกรมเปนการพัฒนาบนเคร่ือง Windows 9x การกําหนด path ก็สามารถที่จะทําไดดวยวิธีการตาง ๆ ดังนี้ 1. เปดไฟล autoexec.bat แลวเพ่ิม path ท่ีไดติดตั้ง JDK ไว ซึ่งถาเราติดต้ัง J2SDK 1.5.0 ไวใน

drive c การกําหนด path ในไฟล autoexec.bat ก็ทําไดดังนี้

ใสคําส่ัง set path=c:\j2sdk1.5.0\bin ในบรรทัดใหมถายังไมมีมีคําส่ัง set path อยูเลย แตถามีการใช คําส่ัง set path อยูแลวก็ใหใส ; (semicolon) หลงัตัวสุดทายของ path แลวจึงใส c:\j2sdk1.5.0\bin

2. หรือเราอาจกําหนด path ทุกคร้ังกอนการเขียนโปรแกรม (ถาเราไมไดกําหนดในไฟล

autoexec.bat) โดยไปที่ Command Prompt (หรือท่ีรูจักกันในคนรุนเกาวา dos window) และ set path บน Command Prompt ดังท่ีเห็นในภาพ

bin – ท่ีเก็บ compiler และเครื่องมืออ่ืน ๆ demo – เก็บตัวอยางการใชงาน Java docs – เก็บรายละเอียด API include – เก็บ method พื้นฐานตาง ๆ ของ Java jre – เก็บไฟลตาง ๆ ที่เกี่ยวของกับการ run โปรแกรม lib – เก็บไฟลท่ีใชในการทํางาน sample – เก็บตัวอยางโปรแกรม src – เก็บ source code ของ Java

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

3

ภาพท่ี 1-2 การกําหนด path ของ Java

3. ทําการพัฒนาโปรแกรมใน directory ท่ีมี JDK อยู เชนเปลี่ยน drive ไปท่ี c:\j2sdk1.5.0\bin

แลวเร่ิมทํางานใน directory นี้ ไฟลทุกตัวท่ีเก่ียวของกับการเขียนโปรแกรมจะตองเก็บไวท่ีนี่ – วิธีนี้ ไมแนะนํา เพราะจะทําให directory ของ java เปรอะไปดวยไฟลท่ีเราเขียนข้ึนเอง

ถาเราใช Windows XP หรือ Windows 2000 การกําหนด path ทําไดดวยข้ันตอนตอไปนี้ (Windows XP และ Windows 2000 ใชคําส่ังท่ีแตกตางกันนิดหนอย ตัวอยางท่ีทําใหดูนี้ เปนการกําหนด path บนเครื่องท่ีใช Windows XP) 1. กดปุมขวาของ mouse บน icon My Computer (หรือ ไปท่ีปุม start ท่ีมุมลางซายของจอแลว

เลือก My Computer) แลวเลอืก Properties

ภาพท่ี 1-3 การเขาหา My computer 2. กดปุม advanced บน System Properties

ภาพท่ี 1-4 ปุม Advanced

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

4

3. กดปุม Environment Variables

ภาพท่ี 1-5 ปุม Environment Variables 4. ใน System Variables เลือกขอความท่ีข้ึนตนดวยคําวา Path

ภาพท่ี 1-6 ท่ีอยูของตัวแปร Path

5. เม่ือกดปุม Edit ก็จะไดหนาจอดังท่ีเห็น

ภาพท่ี 1-7 การกําหนดคาใหกับ Path

6. เติม ; (semicolon) ถายังไมมี แลวจึงใส path ท่ีไดติดตั้ง J2SDK ไว เสร็จแลวกดปุม OK

เพ่ือใหระบบบันทึกการเปลี่ยนแปลงที่ไดทําข้ึน หลังจากท่ีไดกําหนด path ใหกับเคร่ืองท่ีเราจะใชในการเขียนโปรแกรมแลว ข้ันตอนตอไปก็ข้ึนอยูกับผูเขียน การพัฒนาโปรแกรมก็ทําไดโดยไมตองวุนวายกบัการกําหนด path ตาง ๆ อีก (ยกเวนเสียแตวา path ท่ีไดกําหนดขึ้นไมมีอยูจริง – เราก็ตองกลับไปเร่ิมตนใหม พรอมกับ path ท่ีมีอยูจริง) ท้ังนี้ท้ังนั้น ผูพัฒนาโปรแกรมตองเลือกเองวา วิธีไหนเหมาะสมที่สุด ถาตองใช Java อยูบอย ๆ และ สม่ําเสมอก็ควรที่จะเลือกกําหนด path แบบถาวร เพ่ือจะไดไมตองเสียเวลากับการกําหนด path ส่ิงท่ีสําคัญอีกส่ิงหนึ่งท่ีขาดไมไดในการทดสอบและ execute code ท่ีเขียนข้ึนดวย Java ก็คือ JRE หรือท่ีเรียกวา Java Run-time Environment ถาเรานําเอา code ท่ีไดผานการ compile จาก J2SDK แลวไป execute บนเครื่องท่ียังไมไดติดตั้ง JRE ผลลัพธก็คอื execute ไมได แตถาเคร่ืองน้ันไดรับการติดตั้ง J2SDK ก็จะไดรับการติดตั้ง JRE พรอมกันไปดวย ดังท่ีไดกลาวไวกอนหนานี้ สาเหตุท่ี Sun ทําแบบนีก้็เพราะวา หลาย ๆ คนอาจไมใชผูพัฒนา Java โปรแกรมแตเปนผูใชโปรแกรมที่เขียน

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

5

ข้ึนดวย Java ก็ได ดังน้ันหากเครื่องใด ๆ ตองใชโปรแกรมท่ีเขียนข้ึนดวย Java บอย ๆ ก็ตอง download JRE มาไวท่ีเคร่ืองดวย

1.4 เขียน code ท่ีเปน application หรือเขียน code ท่ีเปน applet Applet เปน code ท่ีเขียนข้ึนมาเพ่ือใหสามารถที่จะ execute ใน web browser ผานทาง HTML ไฟล ซึ่งโดยท่ัวไปมักจะมีขนาดเล็ก เพ่ือใหการ download applet ทําไดรวดเร็วยิ่งข้ึน สวน application เปนการ execute ไฟลผานทาง command line ดังนั้นขนาดจึงไมเปนอุปสรรค (เพราะไมตองมีการ download) หนังสือเลมน้ีจะแสดงโปรแกรมตัวอยางดวยการเขียน code ในรูปแบบของ application 1.5 เคร่ืองมือ หรือ คําสั่ง (SDK tools) ท่ีตองใชในการพัฒนาโปรแกรม Java Development Kit ไดถูกเปล่ียนใหมีช่ือเปน J2SDK – Java 2 Software Development Kit ดังนั้นเราจะใชช่ือเคร่ืองมือในการพัฒนาโปรแกรมนี้สลับกันไปมา แตใหตั้งสมมติฐานวาท้ังสอง ตางก็เปนเคร่ืองมือท่ีใชในการพัฒนา Java โปรแกรมเชนเดียวกัน javac เปนเคร่ืองมือท่ีใชในการ compile (compiler) ท่ีทําการเปล่ียน source code ท่ีเรา

เขียนข้ึนใหเปน byte code java เปนเคร่ืองมือท่ีใชในการ execute byte code สําหรับโปรแกรมท่ีเขียนข้ึนในแบบของ

application javaw เชนเดียวกับ java appletviewer เปนเคร่ืองมือท่ีใชในการ execute โปรแกรมท่ีเขียนข้ึนในแบบของ applet ยังมีเคร่ืองมืออีกหลายตัวท่ี java มีให แตตอนนี้เราจะใชเฉพาะเคร่ืองมือท่ีไดกลาวไวแคสามตัวนี้ เทานั้น การพัฒนาโปรแกรมทั้งท่ีเปน application และ applet นั้นจะมีข้ันตอนท่ีแตกตางกันพอสมควร ดังแสดงใหเห็นในภาพที่ 1-8 และในภาพที่ 1-9 ในการเขียน code นั้นเราจะตองมี editor ท่ีเปน text editor กลาวคอืเปน editor ท่ีไมมีการเก็บ format ตาง ๆ ของตัวอักษรดังเชนท่ี Microsoft Word เก็บ แตจะเก็บเปนรหัส ASCII ท่ี SDK สามารถอานและ execute ได สมมติวาเรามี text editor และ SDK แลวการพัฒนาก็เปนไปตามขั้นตอนท่ีแสดงในภาพทั้งสอง

ภาพที่ 1-8 ขั้นตอนการพัฒนาโปรแกรมที่เปน application

Text Editor Javac

Java

Java Source File First.java

Java Class File First.class

Java Program Output

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

6

ภาพท่ี 1-9 ขั้นตอนการพัฒนาโปรแกรมที่เปน applet 1.6 การสรางโปรแกรม Java ท่ีเปน application สมมติวาเราเลือกใช text editor ตัวใดตัวหนึง่ท่ีมีอยูมากมาย ท้ังท่ี free และทั้งท่ีตองจายเงินซื้อมา เราก็มาลองเร่ิมเขียนโปรแกรมตัวแรก กันเลยดีกวา เพ่ือใหเขาใจไดงายถึงข้ันตอนและที่มาท่ีไปในการเขียนโปรแกรมดวยภาษา Java เราจะเขียนโปรแกรมท่ีไมทําอะไรมากมายนัก เพียงแตสงขอมูลไปยังหนาจอเมื่อ user เรียกใช (execute) โปรแกรมนี้ เราจะตั้งช่ือโปรแกรมน้ีวา HelloWorld.java และมีขอมูลดังนี ้

1: /** 2: Display a sentence "Hello World" to screen 3: */ 4: class HelloWorld { 5: public static void main(String[] args) { 6: System.out.println("Hello World!"); 7: } 8: }

ผูอานยังไมตองกังวลกับความหมายของศัพทเฉพาะ (keyword) ตาง ๆ ของ Java ท่ีเห็นในตอนนี้ หลังจากท่ีเขียนโปรแกรมไดสักพักหนึ่ง ผูอานก็จะเขาใจถึงความหมายเหลานี้ดีข้ึน แตตอนนี้ตองเขาใจวาไฟลท่ีเราเขียนข้ึน มีนิยามของ class ท่ีเราเขียนขึ้นช่ือ HelloWorld ซึ่ง Java กําหนดไววา ช่ือของ class และชื่อของไฟลท่ีเก็บ code ของ class นี้จะตองเปนช่ือเดียวกัน class นี้มี method อยูหนึ่งตวัช่ือ main() เม่ือเรา execute โปรแกรมนี้ JRE จะคนหา method ท่ีช่ือ main() เพ่ือทําการประมวลผลชุดคําส่ังตาง ๆ ท่ีมีอยู ท้ังนี้ method main() จะตองมี keyword ท่ีช่ือ public, static, และ void อยู รวมไปถึง parameter ท่ีเปน array ท่ีเก็บ String ดวย ถาผูอานเคยเขียนโปรแกรมดวย ภาษา C หรือ ภาษา C++ มากอนก็จะเห็นถึงความคลายคลึงกันของ method main() นี้ ตัวแปรที่มีอยูในวงเลบ็ (Parameter) ของ method main() ท่ีเปน String[] args บงบอกถึงคา (command-line argument) ตาง ๆ ท่ีผูใชโปรแกรมสงผานไปยังตัวโปรแกรมเพื่อเอาไวใชในการทํางานตาง ๆ ซึ่งอาจมี หรือไมมีก็ได และเราจะยังไมกลาวถึงคาเหลาน้ีในเวลานี้ ในตัว method main() เองมีประโยคที่ข้ึนตนดวย System.out.println("…") ซึ่งเปนคําส่ังท่ีใชสงขอความไปยัง System.out ท่ีโดยท่ัว ๆ ไปก็คือ console window หรือท่ีเรียกกันติดปากวา dos window หรือ dos prompt ดังตัวอยางท่ีแสดงใหเห็นในภาพที่ 1-10

Text Editor Javac

appletviewer

Java Source File First.java

Java Class File First.class

Java Program Output

HTML file First.html

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

7

ภาพที่ 1-10 การ compile และ run โปรแกรม 1.6.1 การ compile โปรแกรม HelloWorld ดังเชนท่ีแสดงใหเห็นในภาพที่ 1-10 การ compile ไฟลท่ีเขียนข้ึนตองใชคําส่ัง javac ตามดวยช่ือไฟล พรอมกับนามสกุล ดังนี ้ javac HelloWorld.java

ในการ compile ทุกคร้ังเราจะตองไมลืมใสนามสกุลใหกับไฟลท่ีเราไดเขียนข้ึน ไมเชนนั้นแลว compiler จะฟอง โดยการสงขอความที่บอกถึงขอผิดพลาดในโปรแกรม (error message) ใหเราเชน ถาเรา compile ไฟล HelloWorld โดยไมใส .java เราก็จะได error ดงันี้ E:\bc221Book\source>javac HelloWorld javac: invalid flag: HelloWorld Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info … … …

(ผูเขียนไดตัดขอความบางสวนท่ี java ฟองออก) 1.6.2 การ execute โปรแกรม HelloWorld สมมติวาเรา compile โปรแกรม HelloWorld โดยไมมี error ใด ๆ เกิดข้ึนการ execute โปรแกรมก็ทําไดดวยคําส่ัง java ตามดวยช่ือไฟล ดังนี ้ java HelloWorld

และก็จะได output ดังท่ีเห็นในภาพที่ 1-10 ในการ execute โปรแกรมนั้นเราจะไมใส .class ตามหลังช่ือไฟล (ถึงแมวาเราตองมีไฟลนี้ก็ตาม) ถาเราใส compilerก็จะฟองดวย error ท่ีบอกวา หาไฟลไมเจอ (java.lang.NoClassDefFoundError) ดังท่ีเห็นในภาพที่ 1-11

ภาพที่ 1-11 error ท่ีเกิดขึ้นจากการใส .class ตามหลังช่ือไฟลในขณะ run โปรแกรม

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

8

1.6.3 สรุปขั้นตอนของการพัฒนาโปรแกรมที่เปน application 1. compile ดวยคาํส่ัง javac ตามดวยช่ือไฟล พรอมกับนามสกุล 2. execute ดวยคาํส่ัง java ตามดวยช่ือไฟลโดยไมมีนามสกุลใด ๆ ตอทาย การเขียนโปรแกรมที่ดีนั้น ผูเขียนควรใสคําอธิบาย (comment) ถึงการทํางานของโปรแกรมที่เขียนข้ึน เพ่ือใหผูท่ีนําโปรแกรมไปใช หรือผูอานคนอ่ืน เขาใจถึงวิธีการใชท่ีถูกตอง ในการเขียน comment ดวยภาษา Java นั้น มีการทําไดสองวิธี คือ 1. การใช // 2. การใช /* … */ การใชในแบบที่หนึ่งนั้น เปนการใส comment ไดไมเกิน 1 บรรทัด สวนการใชในแบบที่สอง ผูใชสามารถที่จะใส comment ไดมากกวาหนึ่งบรรทัด แต comment ตองอยูภายในเคร่ืองหมาย /* … */ เทานั้น ดังตัวอยางจากการนําโปรแกรม HelloWorld มาเขียนใหมดวย comment

1: /** 2: Display a sentence "Hello World" to screen 3: */ 4: class HelloWorld { 5: //Java launcher will call this method to 6: //display string "Hello World!" 7: public static void main(String[] args) { 8: System.out.println("Hello World!"); 9: } 10: }

1.7 การสรางโปรแกรม Java ท่ีเปน applet ในการเขียนโปรแกรมที่เปน Java applet นั้นเราจะตองมีไฟลอยูอยางนอย 2 ไฟล ซึ่งหนึ่งในนั้นคือ Java source file และอีกไฟลหนึ่งคือ HTML file เราลองมาเขียน applet เล็ก ๆ ท่ีสงขอความไปยัง web browser เหมือนกับท่ีเราเขียน application กอนหนานี ้

1: /** 2: My first Java applet 3: */ 4: 5: import javax.swing.JApplet; 6: import java.awt.Graphics; 7: 8: public class HelloWorldApplet extends JApplet { 9: public void paint(Graphics g) { 10: g.drawString("Hello World! สวัสดีครับโลกเกา ๆ ใบน้ี", 25, 25); 11: } 12: }

เนื่องจากวาเราตองการ applet สําหรับการสงขอความไปยัง web browser ดังนั้นเราจึงตองดึงเอาเคร่ืองมือท่ีชวยใหเราสามารถแสดงขอความที่วา ดวยการใชการถายทอดคุณสมบัติ (inheritance) ท่ี Java มีใหดวยการเพิ่มคําวา extends Applet ทางดานหลังของ class HelloWorldApplet เราจะยังไมพูดถึงรายละเอียดเก่ียวกับการถายทอดคุณสมบัติของ Java ตอนนี ้อีกส่ิงหนึ่งท่ีขาดไมไดในการเขียน applet ของเราตอนนี้ก็คือ method paint() ซึ่งเปน method ท่ีทําการวาดขอความลงบน applet ดวยการเรียกใช method drawstring() จาก class Graphics ในตาํแหนงท่ีกําหนดไว จากคําส่ังนี้ g.drawString("Hello World! สวัสดีครับโลกเกา ๆ ใบนี้", 25, 25); เม่ือ compile โปรแกรม HelloWorldApplet ดวยคําส่ัง javac แลวเราก็สามารถที่จะ execute applet ไดดวยการเรียก HTML ไฟลท่ีเขียนข้ึน ดังนี้ <html> <applet code="HelloWorldApplet.class" width="300" height="80"></applet> </html>

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

9

ดวยการใช applet tag ใน HTML ไฟลพรอมกับการใสช่ือของ Java ไฟลท่ี compile แลวในสวนของ field ท่ีช่ือ code และกําหนดขนาดความกวางของ applet ใน field ท่ีช่ือ width และความยาว (สูง) ใน field ท่ีช่ือ height การ execute ไฟล HelloWorldApplet.html ก็สามารถทําไดดวยการใชคําส่ัง appletviewer ตามดวยช่ือไฟล เราก็จะได output ดังนี ้

ภาพที่ 1-12 Applet แสดงคา Hello World 1.7.1 สรุปขั้นตอนการเขียนโปรแกรมแบบ applet 1. สราง Java source file ดวยการ extends Applet 2. สราง HTML file ท่ีมี applet tag และขอมูลท่ีสําคัญในการแสดง applet คือ (1) class file ของ

Java โปรแกรม (2) ขนาดของ applet – width และ height เราคงจะทิ้งเร่ืองการเขียน applet ไวเพียงแคนี้ แตจะไปศึกษาถึงโครงสรางตาง ๆ ของภาษา Java ข้ันตอนการออกแบบ และการเรียกใช class รวมไปถึงเทคนิคและวิธีการใช method ตาง ๆ ท่ี Java มีใหในรูปแบบของการสราง application เทานั้น 1.8 การสราง Java program ดวย Crimson Editor ตัวอยางของโปรแกรม HelloWorld.java ท่ีเราไดเขียนข้ึนกอนหนานี้ใชภาษาอังกฤษท้ังหมดในการเขียน ผลลัพธท่ีไดจากการ run โปรแกรมก็เปนภาษาอังกฤษ ผานทาง Dos Window ถาเราตองการท่ีจะเขียนโปรแกรมเพื่อใหแสดงผลลัพธ หรือ ขอความท่ีเปนภาษาไทยนั้น จะตองใช Operating System ท่ีรองรับการปอนและสงขอมูลท่ีเปนภาษาไทย เชน Windows ตาง ๆ ท่ีสรางขึ้นมาเพ่ือคนไทยโดยเฉพาะ ซึ่งจะสังเกตไดจากคําวา Thai Edition หรือ คําวา ไทย ตอทาย แตก็มี OS หลาย ๆ ตัวท่ียอมใหมีการปอนและสงขอมูลท่ีเปนภาษาไทยผานทางชองทางอ่ืน ๆ ท่ีไมใช Dos Window ในการฝกฝนการเขียนโปรแกรม Java ใหม ๆ นั้นเราจําเปนท่ีจะตองมีชองทางในการแสดงผลที่สามารถใชไดท้ังภาษาไทย และภาษาอังกฤษ ดังนั้นเพื่อใหการปอนและสงขอมูลใชไดท้ังภาษาไทยและภาษาอังกฤษ เราจะเลือกใช Text Editor ท่ีรองรับภาษาไทย เชน Crimson กอนอ่ืนเราตองหา Crimson มาติดตั้งในเคร่ืองท่ีเราใชในการสรางโปรแกรมดวยภาษา Java เสียกอน ซึ่งสามารถที่จะไป download มาไดจาก http://www.crimsoneditor.com/ โปรแกรมตัวนี้เปน freeware เม่ือติดตั้งเรียบรอยแลวก็ใหเขาไปใน menu ท่ีช่ือวา Tools

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

10

ภาพท่ี 1-13 การกําหนดคา Preferences เลือก Preferences ก็จะไดหนาตางท่ีเห็นนี ้

ภาพท่ี 1-14 หนาตางการกําหนด font click ท่ี Fonts และเลือก font ใหกับ Screen fonts ซึ่งเปนหนาตางสําหรับการ edit ผูอานควรเลือก font ท่ีรองรับภาษาไทย เชน Tahoma หรือ font ตระกูลอ่ืนๆ ท่ีมีคําวา UPC ตามหลัง เสร็จแลวใหทําแบบเดียวกับ Printer fonts และ Miscellaneous (เราจะแสดงใหดูเฉพาะการกําหนด font ใหกับหนาตางแสดงผล) ในการกําหนด font ของหนาตางแสดงผล ผูอานจะตองกดปุมสองครั้งใน Output Window เพ่ือเปล่ียนคาตางๆ ท่ีตองการ

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

11

ภาพที่ 1-15 หนาตางแสดงผล หลังจากกดปุมสองคร้ังก็จะไดหนาตางของการกําหนด font ใหกับหนาตางแสดงผล ดังท่ีแสดงในภาพที่ 1-16 ซึ่งผูอานสามารถที่จะกําหนดตางๆ ไดเอง

ภาพที่ 1-16 การกําหนด font และคาตางๆ หลังจากท่ีกําหนดคาใหกับหนาตางทุกตัวเรียบรอยแลว เราก็ตองมากําหนดให Crimson รูจักกับการ compile และ execute โปรแกรมในภาษา Java ดวยการเลอืก Conf. User Tools ในสวนของ Preference ซึ่งจะไดหนาตางดังท่ีเห็นในภาพที่ 1-17

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

12

ภาพท่ี 1-17 หนาตางการกําหนดคาของ User Tools เร่ิมตนดวยชองแรกสุดใน User Tools ท่ีเขียนวา Empty ใสขอมูลดังตัวอยางท่ีเห็นในภาพที่ 1-18

ภาพท่ี 1-18 การกําหนดคาใหกับการ compile รายละเอียดขอมูลท่ีใสดังท่ีเห็นในภาพที่ 1-18 Menu Text: Compile Java Source File ผูอานจะใสอะไรก็ไดท่ีส่ือความหมาย Command: ท่ีท่ีผูอานได install Java ไว เชน c:\j2sdk1.5.0\bin\javac.exe ซึ่งอาจคนหาดวยการ browse ผานทางปุมท่ีมีให Argument: $(FileName) เปนไฟลท่ีมีนามสกุล เลือกจาก drop-down list Initial directory: $(FileDir) เลือกจาก drop-down list Hot key: กดปุม Ctrl แลวตามดวยปุมฟงคช่ันท่ีตองการใชเชน F5 พรอมกับใสเคร่ืองหมาย ในชอง Capture output และ Save before execute หลังจากนั้นก็ทําการกําหนดคําส่ังใหกับการ run โปรแกรมดังตัวอยางท่ีแสดงในภาพที่ 1 – 19 โดยเปล่ียนขอมูลในชองของ Argument ใหเปน $(FileTitle) เพราะJava ตองการเพียงแคช่ือไฟลท่ีไมมีนามสกุลในการ run

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

13

ภาพที่ 1-19 การกําหนดคาใหกับการ run โปรแกรม เม่ือทําทุกอยางเรียบรอยแลวใหกดปุม OK เพ่ือทําการบันทึกคําส่ังท่ีเราสรางขึ้นให Crimson รูจัก และเมื่อได compile และ run ผลลัพธท่ีเราไดคือ

ภาพที่ 1-20 ผลของการ run โปรแกรม HelloWorld.java

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

14

ถาเราตองการท่ีจะ run โปรแกรม HelloWorldApplet ท่ีเราไดเขียนข้ึนและแสดงผลลัพธของการ run ผานทาง Crimson เราตองทําการกําหนดคําส่ังอีกตัวหนึ่งข้ึนมา เพ่ือใหสามารถที่จะ run Applet ได และโดยเฉพาะอยางยิ่ง การสงขอความที่เปนภาษาไทยไปยัง applet ข้ันตอนและวิธีการก็คลายๆ การกําหนดในสวนอ่ืนกอนหนานี้ เพียงแตวาเราตองกําหนด option ของการแสดงผลใหใช HTML encoding ท่ีสามารถแสดงผลเปนภาษาไทย ซึ่งทําไดงายๆ ดังภาพท่ีแสดงนี ้

ภาพท่ี 1-22 การกําหนด option ใหกับคําสั่ง appletviewer ภาพที่ 1-23 แสดงผลลัพธของการใชคําส่ังท่ีเราไดกําหนดไวหลังจากท่ีเรากด ctrl + F7 ซึ่งเปนภาพเดียวกันกับภาพ 1-12

ภาพท่ี 1-23 ผลลัพธจากการ run HelloWorldApplet.html Crimson ยังมี features ตางๆ อีกมากมายท่ีเราสามารถที่จะ set ไวชวยในการทํางานของเราไดท้ังนี้ผูอานสามารถที่จะหาขอมูลเพ่ิมเติมไดจาก help file ของตัว Crimson เอง ส่ิงท่ีเราตองการบอยมากก็คือการใสขอมูลเขาสูโปรแกรมผานทาง keyboard ซึ่งอาจเปนขอมูลทดสอบ หรือเปนขอมูลท่ีตองการใชจริงในโปรแกรม แตเราไมสามารถทําได (งาย ๆ) ดวย Crimson ดังนั้นเราจึงจําเปนตองใชเคร่ืองมือตัวอื่นในการนําขอมูลเขา เชน command window หรือ การใช IDE ตัวอ่ืน ๆ ท่ีมีอยู เชน netbeans 1.9 การใช NetBeans สําหรับการพัฒนาโปรแกรม ปจจุบันผูใชสามารถที่จะเลือก download Java 1.5 ท่ีมี NetBeans IDE รวมอยูดวยจาก Sun โดยตรง NetBeans เปนโปรแกรมที่ดีมากตัวหนึ่งสําหรับการพัฒนาโปรแกรมที่ตองการใช GUI (Graphical User Interface) ท้ังโปรแกรมท่ี run บน web และบนเคร่ืองโดยตรง

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

15

ภาพท่ี 1.28 โปรแกรม NetBeans

อีกท่ีหนึ่งท่ีผูอานสามารถ download NetBeans ไดก็คือ http://www.netbeans.org/ เราจะแสดงวิธีการสรางโปรแกรมอยางงาย ๆ ดวย Netbeans ใหดู

ภาพท่ี 1.29 New Java Application Project Dialogbox

หลังจากท่ีเปด Netbeans พรอมกับเลือก General และ Java Application เราก็จะไดหนาตางดังท่ีเห็นในภาพ 1.29 และเมื่อกดปุม Next เราก็จะได

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

16

ภาพท่ี 1.30 การตั้งช่ือ project และตําแหนงที่เก็บ project

และเมื่อเรากดปุม Finish เราก็จะไดหนาตางสําหรับเขียน code ดังท่ีแสดงในภาพ 1.31 นี้

ภาพท่ี 1.31 แสดง project windows ตาง ๆ ท่ีถูกกําหนดจาก Netbeans

หลังจากท่ีใส code เสร็จเราก็ compile project ดวยการกด Build Build Main Project และเมื่อ compile เสร็จโดยไมมี error เราก็ execute project ดวยการกด Run Run Main Project เราก็จะเห็นผลลัพธท่ีแสดงใน output window ดานลาง

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

17

ในการสราง applet นั้นเราตองเลือก Java Library Class ภายใต Java Application ซึ่งเม่ือเลือกแลวเราก็จะไดหนาตางดังน้ี

ภาพท่ี 1.32 หนาตาง HelloWorldApplet ภายใต New Java Library Class

หลังจากท่ีกดปุม Next เราก็จะไดหนาตางท่ีมี Project อยูเราก็กดปุมขวาบน HelloWorldApplet (เราเรียกสวนตาง ๆ เหลานี้วา node) เลือก New File/Folder เราก็จะไดหนาตางใหม ซึ่งเราตองเลือก Java Classes ภายใต Categories และเลือก Applet ภายใต File Types หลังจากนั้นก็กดปุม Next เราก็จะไดหนาตางใหมดังนี ้

ภาพท่ี 1.33 หนาตางของ New Applet

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

18

เราจะใหช่ือ Class Name วา HelloWorldApplet พรอมกับกําหนดให Package เปน org.neramit.hello ซึ่งผูอานสามารถกําหนดใหเปนอะไรก็ไดตามท่ีชอบ และเมื่อกด Finish เราก็จะไดหนาตางสําหรับเขียน code ใหกับ applet ของเรา และเพ่ือใหงายขึ้นเรานําเอา code ท่ีเห็นน้ีใสเขาสู method init() ท่ีมีอยู public void init() {

String greeting = "Hello from Netbeans!"; setLayout(new BorderLayout());

JLabel label = new JLabel(greeting, SwingConstants.CENTER); add(label, BorderLayout.CENTER); JPanel panel= new JPanel(); JButton source = new JButton("neramit"); source.addActionListener(listenToURL("http://sci.fareastern.ac.th/faa")); panel.add(source); add(panel, BorderLayout.SOUTH); } private ActionListener listenToURL(final String url) { return new ActionListener() { public void actionPerformed(ActionEvent e) { try { getAppletContext().showDocument(new URL(url)); } catch(MalformedURLException ex) { ex.printStackTrace(); } } }; }

หลังจากนั้นก็กดปุมขวาบน HelloWorldApplet ใน Project window เลือก Build Project และเมื่อเลือก Files tab เราก็จะเห็น

ภาพท่ี 1.34 ไฟลท่ีถูกสรางขึ้นจาก Netbeans โดยอัตโนมัติ

เราเรียกใช applet viewer เพ่ือดูผลลัพธไดดวยการกดปุมขวาบน HelloWorldApplet.java ใน Project window เลือก Run File

intro

. to

Java

(FE

U.fa

a)

บทท่ี 1: กอนจะถึง Java

19

ภาพที่ 1.35 ผลลัพธจากการ run ไฟล HelloWorldApplet.java

อีกทางหนึ่งท่ีเราเรียกดู applet ของเราไดก็คือ ผานทาง web browser ซึ่งเราสามารถทําผานทาง Netbeans ไดดวยการกดปุมขวาบน HelloWorldApplet.html ท่ีอยูใน Files tab แลวเลอืก view เราก็จะเห็น applet ใน browser ดังนี้

ภาพท่ี 1.36 applet ที่เปดใน browser

intro

. to

Java

(FE

U.fa

a)

เริ่มตนการเขียนโปรแกรมดวย Java

20

และถาผูอานกดปุม neramit web browser ก็จะไป load web site ของผูเขียนมาแสดง เราจะกลับมาดูถึงการใช Netbeans ในบทที่ 11 เร่ืองของการสราง GUI สําหรับ application ตาง ๆ 1.10 ท่ีมาของภาษา Java โดยสังเขป Java เปนภาษาที่เกิดข้ึนจากการพัฒนาของบริษัท Sun Microsystems โดยมีท่ีมาจากภาษาที่ช่ือวา Oak ซึ่งเปนภาษาที่ใชภายใน Sun เอง เขียนข้ึนโดย Patrick Naughton และ James Gosling (มีการตั้งสมมุติฐานวาโปรแกรมตัวนี้ไดช่ือวา Oak ก็เพราะวา James Gosling มองเห็นตน Oak นอกหนาตางท่ีทํางานทุกวัน) หนาท่ีเบื้องตนท่ี Oak ตองทําก็คือเปนภาษาที่เล็ก มีความสามารถในเรื่องของชุดคําส่ังสูง ใชหนวยความจํานอย ไมยึดติดกับระบบคําส่ังของ CPU ในรูปแบบ (platform) ตางๆ เพราะจะตองนําไปใชกับอุปกรณอิเล็กทรอนิกส เชน ตูสับเปลี่ยนชอง ของ cable TV แตหลังจากท่ี Sun ไดพัฒนา Oak และใชมาอีกระยะหนึ่ง Sun ก็ไดนําเอา Oak ออกมาสูสายตาชาวบานท่ัวไป แตเนื่องจากวา ช่ือของ Oak ไดมีผูใชอยูกอนแลว Sun จึงตองหาชื่อใหมใหกับภาษานี้ ซึ่งในตอนแรก็ไดทดลองหลายชื่อ เชน Silk, Ruby และ WRL (Web Runner Language) แตช่ือเหลานี้ก็ไมไดถูกเลือก ในท่ีสุด Java ก็กลายเปนช่ือของภาษานี้ (ท้ังๆ ท่ีไมมีอะไรเก่ียวของกับ กาแฟ จากชวา หรือ อะไรท่ีเก่ียวของกับเกาะชวาเลย) Java ไดออกสูสายตาของชาวโลกจริงเมื่อตนป ค.ศ. 1996 โดยทาง Sun ไดเพ่ิมความสามารถใหกับ Java คือ สามารถที่จะ execute code ท่ีอยูภายใน web page ได ทําให java ไดรับความนิยมในหมูนักพัฒนาโปรแกรมมาก แต Java รุนแรกๆ ก็ยังมีขีดความสามารถที่จํากัด ยังไมสามารถทําอะไรไดมากมายนัก จนกระทั่งปลายป ค.ศ. 1998 ทาง Sun ก็ไดเปดตัว Java 1.2 ซึ่งเปนรุนท่ีทาง Sun ภูมิใจมากที่สุด มีการปรับแตงอยางมากมาย เพ่ิมขีดความสามารถใหกับ Java เพ่ือใหสมกับคําท่ีทาง Sun ไดสัญญาไวกับชาวโลกวา Java เปนภาษาที่เขียนข้ึนมาคร้ังเดียว แลวเอาไป run ท่ีไหนก็ได (Write Once, Run Anywhere) ทาง Sun ไดเปลี่ยนใหมให Java เปน Java 2 Standard Edition Software Development Kit Version 1.2 หลังจากนั้นไมนาน Sun ก็ออกรุนอ่ืนอีก 2 รุนมาสูสายตาชาวโลก คือ รุน Micro Edition สําหรับการทํางานบนเครื่องมือส่ือสาร เชน โทรศัพทเคลื่อนท่ี และรุน Enterprise edition ซึ่งเปนรุนท่ีออกมาสําหรับการทํางานบนเซิรฟเวอร Java มีอยูมากมายหลาย version แต version ลาสุดของ Java ขณะที่เขียนตําราเลมน้ี คือ J2SDK1.5.0 ผูอานสามารถติดตาม version ใหม ๆ และ download ไดท่ี web site ของ Sun ท่ีไดใหไวกอนหนานี้ ในบทที่สองเราจะมาทําความรูจักกับขอกําหนด ตาง ๆ ของ โปรแกรม ขอมูล (data) ตัวแปร (variable) และ การประมวลผล (calculation – evaluation)