PDA

View Full Version : Essentials of the Java Programming Language ( Lesson 1)



MIB_X
12-11-2002, 11:24 PM
ว่าจะเขียนเรื่องชอง java มานานแล้วครับ แต่ก็ตัดสินใจไม่ได้ว่าจะเอาเรื่องอะไรมาเขียนดี อันนี้แปลไว้นานแล้วแต่ก็ไม่ได้มีโอกาสได้เอาลงซักที (จนมันดูจะเก่าไปนิด อิอิ) แต่ก็อย่างว่าครับ ถึง Version ของ J2SE จะเปลี่ยนไปเรื่อยๆ แต่ concept ของ Java ก็ยังคงอยู่ เริ่มต้นด้วย บทเรียนที่ 1 ครับ คร่าวๆ เกี่ยวกับ Java

Lesson 1: Compiling and Running A Simple Program
ปัจจุบันคอมพิวเตอร์ก้าวเข้ามามีบทบาทในชิวิตประจำวันเราอยากมาก ทั้งใช้งานที่บ้านและในองกรค์ธุรกิจตั้งแต่ขนาดเล็กไปถึงขนาดใหญ่ต่างก็ใช้คอมพิวเตอร์เข้ามาช่วยเพิ่มความเร็วในการทำงาน เพิ่มความถูกต้องของงาน และเพิ่มประสิทธิ์ภาพของงานนั้นๆ ตั้งแต่งานด้านกราฟฟิกค์ในภาพยนต์ที่เราชม หรือแม้แต่ธนาคาร เรียกได้ว่าเราคงจะหนีเทคโนโลยีของมันไม่ได้แล้วแหละครับ
เมื่อเราต้องการให้คอมพิวเตอร์มันทำงานอย่างใดอย่างนึงให้เราเราต้องเขียนโปรแกรมสั่งมัน โปรแกรมก็คือชุดคำสั่งที่บอกให้คอมพิวเตอร์รู้ว่ามันต้องทำอะไรเมื่อไหร่ (ใครบอกคอมพิวเตอร์ฉลาด อาจจะไม่จริงนะครับ คนสั่งสิฉลาดมากกว่า) และใน series ที่ผมกำลังจะนำเสนอต่อจากนี้ จะนำคุณเข้าสู่เรื่องของการเขียนโปรแกรม การ compile และ run โปรแกรมโดยใช้ภาษาที่ชื่อว่า Java โดยบทเรียนแรกจะแสดงถึงโปรแกรมที่ทำให้เครื่องมันแสดงผลข้อความออกมาทางหน้าจอ (อาจจะดูเป็นเรื่องขี้ประติ๋ว แต่โปรแกรมเมอร์ชั้นนำก็เริ่มต้นจากจุดเล็กๆ เช่นนี้แหละครับ เราต้องหัดยืนก่อนที่จะเริ่มเดิน และต้องหัดเดินก่อนที่จะเริ่มวิ่ง ซักวันนึงเราอาจจะบินได้ใครจะไปรู้ว่ามั๊ยครับ )
โดยขั้นตอนของการเรียนรู้ในบทเรียนแรกจะเป็นไปตามนี้ครับ
- ทั่วไปเกี่ยวกับ Java Platform
- ติดตั้งระบบเตรียมความพร้อม
- compile โปรแกรมแรกของคุณ
- สั่งให้มันทำงาน
- การเขียน comment ลงไปใน code
- API Document
- ข้อมูลเพิ่มเติม

--------------------------------------------------------------------------------

ทั่วไปเกี่ยวกับ Java Platform
Java Platform ประกอบไปด้วย Java Application Programming Interfaces (APIs) และ Java Virtual Machine (JVM)
Java APIs คือกลุ่มของคำสั่งที่ Java เตรียมไว้ให้เราเมื่อเราใช้งานมัน ถ้าใครเคยเขียนภาษาอื่นๆ อย่างภาษา C หรือ Pascal คำสั่งที่เราเรียกใช้ได้เลยอย่าง printf(..) หรือ Writeln(..) ก็คือ APIs ที่ compiler แต่ละตัวเตรียมไว้ให้เรานั้นเองครับ สิ่งเหล่านี้เองช่วยลดเวลาและขั้นตอนการพัฒนาโปรแกรมของเราได้มาก โดยโปรแกรมตัวอย่างที่จะทดลองเขียนในบทเรียนแรกนี้ก็จะใช้ Java APIs นี่แหละครับในการสั่งให้โปรแกรมแสดงผลออกทางหน้าจอ เราเพียงแค่ใส่ข้อความที่ต้องการ Print ให้มัน ส่วนขั้นตอนที่ว่ามันจะเอาข้อความของเราไปทำยังไงให้ออกมายังหน้าจอนั้น เรายังไม่ต้องสนใจครับ


JVM หรือตัวแปลภาษา Java ก็ว่าได้ครับ เวลาเรา compile ภาษา Java ผลที่ได้จากการ compile จะไม่ใช่ภาษาระดับที่ทำงานได้เลย มันจะต้องถูกแปลจากเจ้า JVM นี่แหละให้เป็นภาษาเครื่องอีกทีนึง เหตุผลอย่างนึงที่ Java ทำงานในลักษณะนี้ เพราะ concept แรกเริ่มเดิมทีของ Java คือ ต้องการเป็นภาษากลางที่สามารถจะทำงานได้ในทุกๆ Platform ไม่ว่าจะเป็น Windows, Linux, Soralis และอีกหลายๆ ตัว มันเลยจำเป็นที่จะต้องมีตัวกลางครับโปรแกรมเมอร์ไม่ต้องเขียน code ใหม่ หรือ compile code ใหม่เมื่อเอาไปทำงานในสภาวะแวดล้อมไหน JVM จะแปล binary ของ Java ให้ทำงานได้กับระบบนั้นๆ ได้เอง ถ้าถามว่า อ้าวอย่างนี้มันก็ทำงานช้าหน่ะดิ เพราะต้องเอาไปแปลงอีกที คำตอบคือ ช้ากว่าปกติแน่นอนครับผม
ติดตั้งระบบเตรียมความพร้อม
ก่อนที่คุนจะเริ่มเขียนและ run Java ได้ คุณจำเป็นต้องติดตั้ง Java Compiler ก่อนนะครับ โดยไปโหลด J2SE SDK มาลงครับ ตอนนี้ออกถึง version 1.4 แล้ว เลือก load ตามระบบปฏิบัติการที่คุณใช้งานอยู่ได้เลยครับผม ที่ http://java.sun.com

compile โปรแกรมแรกของคุณ
หลังจากติดตั้ง JDK เป็นที่เรียบร้อยแล้ว ตอนนี้เครื่องคุณก็พร้อมที่จะเป็น Java Workshop แล้วครับ เรามาเริ่มจากการ coding โปรแกรมง่ายๆ กันก่อน เหมือนเป็นการทดสอบว่า JDK ที่ลงไปมันทำงานได้จริงหรือเปล่า
ก่อนอื่นก็ต้องเขียน code คุณสามารใช้ text editor ตัวใดก็ได้ที่คุณถนัด ถ้าอยู่ใน Unix อาจจะใช้ vi หรือ Emacs ก็ตามแต่ ส่วนทางฝั่ง windows อาจจะเริ่มด้วย Notepad ครับง่ายและเบา
เริ่มโดยการ Coding ตามตัวอย่างข้างล่างเลยครับ

//A Very Simple Example
class ExampleProgram {
public static void main(String[] args){
System.out.println("I'm a Simple Program");
}
}

หลังจาก coding เรียบแล้วก็ save เป็นชื่อ ExampleProgram.java ครับ ข้อพึ่งระวังคือ Java เป็นภาษาที่ให้ความสำคัญกับตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก คือมันจะมองว่าเป็นคนละตัวกันครับ พึงระวังตรงจุดนี้ครับ
ขั้นตอนต่อไปคือเราจะ compile โปรแกรมนี้เพื่อให้เป็น file ที่ ตัวแปลภาษา java มันอ่านได้ (เราเรียก code ที่ผ่านการ compile โดย java compiler ว่า Byte Code ครับ เวลาที่ตัวแปลมันทำงานมันจะแปล code ที่เรียกว่า ByteCode เป็น ภาษาเครื่องหรือ Machine Code เพื่อให้มันทำงานอีกครั้งนึงครับ) การ compile ก็ทำได้โดยการเปิด Command Prompt ขึ้นมาครับ เปลี่ยน directory ไปยังที่ๆ เราเก็บ ExampleProgram.java ไว้ แล้วก็สั่ง

javac ExampleProgram.java

สั่งให้มันทำงาน
หลังจาก compile โปรแกรมที่เขียนเมื่อกี๊เสร็จแล้วนะครับ เราจะได้ file เพิ่มขึ้นมาใหม่ชื่อ ExampleProgram.class เจ้าตัวนี้แหละครับ คือ ByteCode ที่เราจะเอาไปใช้งาน (กรณีที่เราพัฒนา application ด้วย Java) โดยมันจะทำงานได้บนเครื่องใดๆ ก็ตามที่ติดตั้ง JVM ไว้ หรือไม่ก็ผ่านทาง web browser ที่รองรับ Java ครับ อาจจะเป็น Internet Explorer, Netscape หรือ Opera
ทดลอง run โปรแกรมนี้ดูนะครับ โดยเรียกตัวแปลภาษา Java ( หรือ Java Interpeter) มา run มันดังนี้ครับ

java ExamplePeogram
ผลที่ได้จะเป็น
I'm a Simple Program

เวลาใช้ java ไปสั่งให้ class ใดๆ ทำงาน ไม่ต้องใส่นามสกุลให้มันครับ (.class)


การเขียน comment ลงไปใน code
ขั้นตอนในการเขียนโปรแกมอย่างนึงที่โปรแกรมเมอร์พึงกระทำคือการ เขียน comment ลงไปใน code ด้วยครับ เพื่อคราวหน้าคราวหลังถ้าเราจำเป็นต้องมายุ่งเกี่ยวกับ code ในส่วนนี้อีก อย่าน้อยก็เหมือน note เตือนความจำว่า แต่ละส่วนที่เราเขียนขึ้นมา เราเขียนมันขึ้นมาทำไม และสำหรับคนอื่นที่อาจจะจำเป็นต้องเอาโปรแกรมเราไปพัฒนาต่อ จะได้ง่ายแก่การทำความเข้าใจครับ การเขียน comment ของ Java ทำได้หลายลักษณะครับ ไม่ว่าจะเป็น double slass, c-style หรือลักษณะพอเศษที่เรียกว่า doc

การ comment โดยใช้ double slash
double หรือ // นิยมใช้กันในภาษา C++ โดยมันจะบอก compiler ให้รู้ว่า อะไรก็ตามที่อยู่ หลังเครื่องหมาย // ไปจนสิ้นสุดบรรทัดคือ comment ไม่ต้องเอาไปตีความหมายครับ ดูตัวอย่างครับ

//A Very Simple Example
class ExampleProgram {
public static void main(String[] args){
System.out.println("I'm a Simple Program");
}
}

C-Style comments
คือการเขียน comment ในลักษณะเดียวกับภาษา C ครับคือใช้เครื่องหมาย /* .... */ โดยอะไรที่อยู่ภายในเครื่องหมายนี้จะถือว่าเป็น comment โดยเราอาจจะ comment ได้เป็นช่วงครอบคลุมหลายๆ บรรทัดได้ครับ ดังตัวอย่างครับ
/* These are
C-style comments
*/
class ExampleProgram {
public static void main(String[] args){
System.out.println("I'm a Simple Program");
}
}



Doc Comment
การ comment ลักษณะนี้ใช้เมื่อเราต้องการที่จะ ให้โปรแกรมมันสร้างเอกสารประกอบขึ้นมาให้โดยอัตโนมัติครับ สามารถ comment โดยใช้เครื่องหมาย /** .... */ โดยข้อความใดๆ ที่อยู่ภายในเครื่องหมายนี้จะถูกถอดออกมาจาโปรแกรมที่ชื่อ javadoc เพื่อทำเป็นเอกสารประกอบการอธิบายเกี่ยวกับ class ที่เราเขียนขึ้นมาหน่ะครับ ลองดูตัวอย่าง

/** This class displays a text string at
* the console.
*/
class ExampleProgram {
public static void main(String[] args){
System.out.println("I'm a Simple Program");
}
}

แต่สำหรับ Class ง่ายๆ ที่เราลองเขียนขึ้นมาไม่จำเป็นต้องใช้ Comment ลักษณะนี้ก็ได้ครับ เพราะเราคงจะไม่จำเป็นต้องทำเอกสารประกอบการอธิบายหรอกกระมัง มันเหมาะกับการใช้งานกับ Class ใหญ่ๆ ที่มีความซับซ้อนมากๆ ครับ และเอกสารที่ โปรแกรม javadoc มันสร้างออกมาจะเป็นเอกสารประเภท HTML ใช้ web browser เปิดดูได้


API Document
สำหรับ APIs ทั้งหมดของ Java มีเอกสารให้ Download ครับ ลองไปหาดูได้ที่
http://java.sun.com

ข้อมูลเพิ่มเติม
ผมว่าฝั่ง Java นี่เอกสารประกอบการศึกษาหาความรู้ค่อนข้างจะละเอียด มีเยอะ และน่าอ่านครับ คุณสามารถเข้าไปหาอ่านได้จากเว็บ java ของ sun ได้ครับที่ http://java.sun.com

momo
15-11-2002, 10:05 PM
เอาทีล่ะ ภาษาสิฟ่ะ

Crovax
13-06-2003, 04:21 AM
เฮ้อ เวลาเอาจริง ม่ายเหนมานจาได้ยางที่เขียนเลย
ลองเขียนดูละสงสัยต้องอ่านอีกเยอะเลยอ่า