ภาษา JAVA เบื่องต้น
เนื้อหาในหน้านี้ จะเป็นเนื้อหาที่ครอบคลุม การเรียน Java แทบจะทั้งหมด เนื้อหาพื้นฐาน มันจะอัดแน่นมากในบทนี้สำนวน หรือที่เราเรียกว่า Java syntax และคอนเซ็ปหลักๆ นั้น ยืมมาจาก C++ อย่างมากมายก่ายกองก็ว่าได้ ดังนี้ ในบทนี้จึงอาจดูเหมือนกำลังเรียนภาษา C++ แทนที่จะเป็นการเรียน Java ก็ได้ ก่อนที่เราจะเริ่มบทเรียน ขอบอกไว้ก่อนว่า บทเรียน Java นี้ เขียนขึ้น เพื่อคนที่ไม่เคยเรียน ไม่เคยสัมผัส กับ Java มาก่อนเลย จึงค่อนข้างละเอียดมาก
ก่อนจะเข้าสู่บทเรียน เรามาทราบองค์ประกอบของจาวาก่อนนะคะ ว่ามีอะไรบ้าง
องค์ประกอบ Java
Java เป็นภาษาที่มีอิสระในเรื่องของรูปแบบ หมายความว่า ในการพิมพ์ source code เราจะย่อหน้าหรือไม่ย่อหน้า จะวรรค 1 เคาะ หรือกี่เคาะ โปรแกรมก็ run ได้เหมือนเดิมทุกประการ ไม่เชื่อก็จงทดลองกับโปรแกรม HelloWorld.java ดูก็ได้! แต่ท่านควรยึดแบบแผนที่ดี (หัวข้อถัดไป)จะดีกว่า มิฉะนั้น จะไล่ดู ตรวจสอบ แก้ไขโค้ดลำบาก
• Java มีองค์ประกอบและไวยากรณ์คล้าย C และ C++
• Primitive Data Types มี boolean, byte, short, char, int, float
จงเลือกใช้ให้เหมาะสม โปรแกรมจึงจะทำงานอย่างมีประสิทธิภาพ (รันเร็ว ไม่เปลืองเนื้อที่ฮาร์ดดิสก์ ผลลัพธ์ถูกต้องเที่ยงตรง โดยเฉพาะทศนิยมด้วย ฯลฯ)
• Operators แต่ละคู่ต่อไปนี้ต้อง เขียน/พิมพ์ ติดกัน:
==, !=, <=, >=, &&, ||
ลักษณะและไวยากรณ์ของ Java
Comments มี 3 แบบ
//
/* */
/** */
อันที่จริงเราไม่ใช้ Comment เลยก็ได้ เพราะมันเป็นแค่หมายเหตุ หรือคำอธิบายเท่านั้น คอมฯ ไม่นำมาประมวลผลเลย แต่สำหรับโปรแกรมเมอร์ระดับอาชีพ เขียนโปรแกรมใหญ่ๆ บางบรรทัด บางบล็อกของโค้ดที่สำคัญเขาจะทำ Comment ไว้กันลืม ง่ายต่อการแก้ไขปรับปรุงใน 3 ปี 5 ปี ข้างหน้า เป็นต้น หรือแม้แต่เจอ bug ในปัจจุบันก็จะหาสาเหตุของ bug ได้ง่ายขึ้น
• เครื่องหมายสำคัญ
; เรียกว่า statement separator
{ } เรียกว่า statement grouper
โครงสร้างคุมโปรแกรม
• การเขียนโปรแกรมเรียกว่า coding
• โปรแกรมประกอบด้วยหลายๆ statements (ประโยคคำสั่ง)
• แต่ละ statement สิ้นสุดด้วยเครื่องหมาย ; (semicolon)
• โดยทั่วไป โปรแกรมทำงานอะไรก่อน อะไรหลัง ย่อมเป็นไปตามลำดับเดียวกันกับลำดับของ statements ในโปรแกรมนั้น
• ในบางกรณีที่เราไม่ต้องการให้โปรแกรมทำงานตามลำดับเดียวกันกับลำดับของ statements เราก็ต้องใช้ if, if…else, switch…case, และ loopsเช่น for, while, do…while เพื่อเบี่ยงหรือข้ามบาง statements ไป
• การเขียน loops ถ้าเขียนไม่ถูกต้อง อาจ run วนไม่หยุด (เรียกว่า infinite loop) จงกด Ctrl+C ให้หยุด แล้วแก้ไข
ก่อนจะเข้าสู่บทเรียน เรามาทราบองค์ประกอบของจาวาก่อนนะคะ ว่ามีอะไรบ้าง
องค์ประกอบ Java
Java เป็นภาษาที่มีอิสระในเรื่องของรูปแบบ หมายความว่า ในการพิมพ์ source code เราจะย่อหน้าหรือไม่ย่อหน้า จะวรรค 1 เคาะ หรือกี่เคาะ โปรแกรมก็ run ได้เหมือนเดิมทุกประการ ไม่เชื่อก็จงทดลองกับโปรแกรม HelloWorld.java ดูก็ได้! แต่ท่านควรยึดแบบแผนที่ดี (หัวข้อถัดไป)จะดีกว่า มิฉะนั้น จะไล่ดู ตรวจสอบ แก้ไขโค้ดลำบาก
• Java มีองค์ประกอบและไวยากรณ์คล้าย C และ C++
• Primitive Data Types มี boolean, byte, short, char, int, float
จงเลือกใช้ให้เหมาะสม โปรแกรมจึงจะทำงานอย่างมีประสิทธิภาพ (รันเร็ว ไม่เปลืองเนื้อที่ฮาร์ดดิสก์ ผลลัพธ์ถูกต้องเที่ยงตรง โดยเฉพาะทศนิยมด้วย ฯลฯ)
• Operators แต่ละคู่ต่อไปนี้ต้อง เขียน/พิมพ์ ติดกัน:
==, !=, <=, >=, &&, ||
ลักษณะและไวยากรณ์ของ Java
Comments มี 3 แบบ
//
/* */
/** */
อันที่จริงเราไม่ใช้ Comment เลยก็ได้ เพราะมันเป็นแค่หมายเหตุ หรือคำอธิบายเท่านั้น คอมฯ ไม่นำมาประมวลผลเลย แต่สำหรับโปรแกรมเมอร์ระดับอาชีพ เขียนโปรแกรมใหญ่ๆ บางบรรทัด บางบล็อกของโค้ดที่สำคัญเขาจะทำ Comment ไว้กันลืม ง่ายต่อการแก้ไขปรับปรุงใน 3 ปี 5 ปี ข้างหน้า เป็นต้น หรือแม้แต่เจอ bug ในปัจจุบันก็จะหาสาเหตุของ bug ได้ง่ายขึ้น
• เครื่องหมายสำคัญ
; เรียกว่า statement separator
{ } เรียกว่า statement grouper
โครงสร้างคุมโปรแกรม
• การเขียนโปรแกรมเรียกว่า coding
• โปรแกรมประกอบด้วยหลายๆ statements (ประโยคคำสั่ง)
• แต่ละ statement สิ้นสุดด้วยเครื่องหมาย ; (semicolon)
• โดยทั่วไป โปรแกรมทำงานอะไรก่อน อะไรหลัง ย่อมเป็นไปตามลำดับเดียวกันกับลำดับของ statements ในโปรแกรมนั้น
• ในบางกรณีที่เราไม่ต้องการให้โปรแกรมทำงานตามลำดับเดียวกันกับลำดับของ statements เราก็ต้องใช้ if, if…else, switch…case, และ loopsเช่น for, while, do…while เพื่อเบี่ยงหรือข้ามบาง statements ไป
• การเขียน loops ถ้าเขียนไม่ถูกต้อง อาจ run วนไม่หยุด (เรียกว่า infinite loop) จงกด Ctrl+C ให้หยุด แล้วแก้ไข
ภาษา Swift เบื่องต้น
เริ่มต้นด้วยการสร้างโปรเจคเขียนภาษา Swift กัน
ในหน้า Welcome to Xcode (จะต้องเป็นเวอร์ชั่น 6.0 หรือสูงกว่าเท่านั้นนะครับ) กดเลือกที่เมนู Create a new Xcode project
ตั้งชื่อโปรดัก (ชื่อโปรแกรม) ชื่อองค์กร และ identifier (เป็นชื่อที่มี . ขั้นระหว่างคำ ตรงนี้อาจจะใช้เป็น com.myapp ไปก่อนก็ได้ แต่หากเป็นแอพที่จะอัพเข้า App Store แล้ว ในส่วนนี้จะต้องมีส่วนของชื่อองค์กร ชื่อแบรนด์ของผลิตภัณฑ์ อยู่ด้วยนะ เพื่อจะทำให้เราระบุชื่อแอพได้แบบไม่ซ้ำกันนั้นเอง) เลือก Language เป็น Swift
เลือกที่เซฟโปรเจค แล้วกด Create เลย (จากรูปด้านบน จะเห็นว่าตรง Source Control ของผมจะมีมีปุ่มให้เลือกเนื่องจากว่า ผมได้เชื่อมพาทที่อยู่ไฟล์นี้เข้ากับ Github เอาไว้เก็บไฟล์บนอินเตอร์เน็ตนั้นเอง ศึกษาเรื่อง Source Control ที่http://www.appcodev.com/category/dev-tools/github/)
เมื่อสร้างโปรเจคสำเร็จแล้ว จะนำท่านเข้าสู่การเขียนโปรแกรมด้วย Swift เลยนะครับ
โครงสร้างไฟล์ในโปรเจคของ Swift แบบ OS X > Application > Command Line Tool
ข้อดีของการเริ่มต้นด้วยโปรเจคแบบ Command Line Tool นั้นก็คือ เราจะทราบพื้นฐานการสร้างโค้ดของโปรแกรม Swift เลยครับ จะไม่มีโค้ดอื่นมาแทรกกวนใจ ทำให้งง ทำให้เราศึกษาโค้ด Swift ได้เต็มที และรวดเร็ว งั้นเรามาเริ่มกันเลย
สังเกตสักนิด !!!
ในโปรเจค จะมีไฟล์โค้ดมาให้เราแค่ 1 ไฟล์ คือ main.swift (main คือชื่อไฟล์ ส่วน .swift คือนามสกุลไฟล์)
โค้ด Swift จะมีแค่ไฟล์เดียวคือ .swift ไม่เหมือน C หรือ Objective-C ต้องมี .h และ .m ทำให้สับสน ??? ตั้งแต่ตอนแรกเลย ใช่มั้ยครับ
ในโค้ด main.swift จะมีโค้ดมาให้แค่ 2 บรรทัด นั้นคือ import Foundation และ printin(“Hello, World!”) เท่านั้น
โค้ดที่ให้มาคืออะไร
อันนี้จะง่ายต่อการเข้าใจมากๆ ครับ
คือการปริ้นตัวหนังสือออกมาทาง Console เราสามารถใช้ได้ทั้ง println() ให้บรรทัดต่อไปขึ้นบรรทัดใหม่ และ print() ให้บรรทัดต่อไปต่อกันกับบรรทัดก่อนหน้าได้
จะสังเกตว่า โค้ดแต่ละบรรทัดของ Swift จะไม่มี ; (Semicolon) ปิดท้ายประโยคนะครับ เพื่อประหยัดตัวอักษร แต่เราจะเขียนใส่เข้าไปก็ได้ครับไม่เออเรอแต่อย่างใด หากยังติดกับโปรแกรมภาษา Objective-C อยู่ ^^
การประกาศตัวแปร
การประกาศตัวแปรในภาษา Swift นั้นประกาศได้ 2 แบบ คือ- แบบระบุชนิดตัวแปรเข้าไปเลย (Type Safe)
- แบบไม่ระบุชนิดตัวแปร (Type Inference)
- ตัวแปรที่ไม่สามารถเปลี่ยนแปลงค่าได้ หรือ Constant ตัวแปรนี้จะประกาศตัวแปรด้วยคีย์เวิร์ด let
- ตัวแปรที่สามารถเปลี่ยนแปลงค่าหลังจากประกาศตัวแปรแล้วได้ หรือ Variable ตัวแปรนี้จะประกาศตัวแปรด้วยคีย์เวิร์ด var
ตัวอย่างทั้งสองคีย์เวิร์ดนี้มีการใช้แต่ต่างกัน หากไม่ต้องการให้ตัวแปรแก้ไขค่าได้ให้ใช้ let หากต้องการแก้ไขค่าตัวแปร อัพเดทค่าตัวแปร ในอนาคตให้ใช้ var
สังเกต
การประกาศตัวแปรแบบ Type Safe ชื่อชนืดของตัวแปรจะเริ่มต้นด้วยตัวพิมพ์ใหญ่ทั้งหมด เช่น String, Double, Int, Bool (จะไม่มีตัวพิมพ์เล็กให้สับสนอีกต่อไป เพราะว่าการประกาศตัวแปรพื้นฐานใน Swift ทุกตัวนั้นเป็น Object ของ Structure ทั้งหมด ดังนั้นชื่อชนิดตัวแปรจึงเป็นตัวพิมพ์ใหญ่)
ค่า Boolean จะใช้ชนิดตัวแปรว่า Bool และค่าที่ใช้จะใช้ true (จริง) และ false (เท็จ) เท่านั้น
การอัพเดทค่าตัวแปร ชนิด var และ let
จากรูปตัวแปร langName ที่ประกาศแบบ var นั้นจะสามารถอัพเดทค่าได้
ส่วนตัวแปร awesome ประกาศเป็นแบบ let หากมีการอัพเดทค่า จะทำให้คอมไพล์เลอร์ฟ้อง error : Cannot assign to ‘let’ value ‘awesome’ ทันที
การปริ้นและแสดงข้อความออกทาง Console
เราทราบมาคร่าวๆ แล้วนะครับว่า หากต้องการปริ้นข้อความหรือค่าตัวแปรต่างๆ ออกทาง Console ให้ใช้คำสั่ง println() หรือไม่ก็ print() เพื่อปริ้นค่าออกมาตามนี้
สังเกต หากเราต้องการปริ้นค่าตัวแปรพร้อมกับข้อความให้เราใส่ชื่อตัวแปรไว้ใน \(ชื่อตัวแปร) และใส่ทั้งหมดนี้ในสัญลักษณ์ฟันหนู เช่น “\(ชื่อตัวแปร) ข้อความธรรมดา” เท่านี้เอง
หรือต้องการแค่ปริ้นค่าตัวแปรออกมาเท่านั้น ก็ใช้แค่ชื่อตัวแปรได้เลย เช่น println(langName) โดยไม่ต้องใส่ใน \( )
การประกาศชื่อตัวแปรแบบ Unicode
ภาษา Swift เราสามารถใช้ Unicode มาเป็นชื่อตัวแปรได้แล้วนะครับ Unicode นี้อาจจะเป็นภาษาไทยก็ได้ เป็นไงหละครับ สะดวกมั้ย
จากตัวอย่างเราสามารถประกาศชื่อตัวแปรเป็นภาษาไทย ได้จริงๆ นะ ต่อไปการตั้งชื่อโปรแกรมจะไม่ใช่เรื่องยากอีกต่อไปที่จะคิดว่าจะใช้ชื่ออะไรดี
แล้วอักษร Unicode เอามาจากไหน ?
สำหรับนักพัฒนาที่อยากจะใช้อักษร Unicode มาใช้เป็นชื่อตัวแปร ให้กดไปที่ ตรงเปลี่ยนภาษา > Show Character View เสร็จสามารถเลือกอักษรที่ต้องการแล้ว ดับเบิ้ลคลิ้กมาใช้ในโค้ดได้เลย
ในบทความนี้จะพูดถึงพื้นฐานการเริ่มต้นกับ Swift นะครับ บทต่อไปจะเป็นเรื่องของ String Character ครับ ติดตามกันได้นะครับ
เพื่อนๆ คนไหนสนใจที่จะเริ่มศึกษา Swift ไปด้วยกัน เข้ามาคุยกันได้ที่เพจ Let Swift (www.facebook.com/let.swift) เลยนะครับ หรือในเพจ Appcodev ก็ได้เช่นกัน