สวัสดีครับ
สำหรับบทความในตอนนี้ก็จะได้พบกับเนื้อหาของภาษา java
กันนะครับ ซึ่งผมจะพูดถึงเรื่องโครงสร้างของภาษา การสร้าง Class ,Method
และสร้าง Object ขึ้นมาใช้งานนะครับ ให้ท่านพิจารณาโค้ดของโปรแกรมต่อไปนี้นะครับ
|
|
โค้ดโปรแกรมจะเหมือนกับบทความตอนที่แล้ว
ให้ท่านลองรันดูผลลัพธ์นะครับ จากนั้นให้ลองเขียนโค้ดโปรแกรมอีกโปรแกรมตามรูปข้างล่างครับ
เกี่ยวกับการเซฟและตั้งชื่อไฟล์
อย่างที่ผมเคยกล่าวไว้แล้วนะครับว่าเวลาที่เราเขียนโค้ดโปรแกรมเสร็จแล้ว
เราจะต้องทำการเซฟโดยให้ชื่อไฟล์มีชื่อเดียวกับชื่อ Class ทุกประการ เนื่องจากตัวคอมไพเลอร์จะได้ทราบว่าคลาสใดอยู่ในไฟล์ใด
และจะเป็นการสะดวกสำหรับผู้เขียนเองด้วยในการแยกแยะคลาสต่างๆ เก็บไว้ ภาษาจาวามีความเข้มงวดในการใช้ตัวอักษรเล็กและใหญ่ด้วย
เช่น คำว่า hello กับ Hello จะไม่เหมือนกัน ถ้าโปรแกรมหนึ่งมีหลายคลาสในการตั้งชื่อไฟล์นั้นให้สังเกตว่าคลาสใดมี
main อยู่ก็ให้เซฟไฟล์เป็นชื่อเดียวกับคลาสนั้นๆ
|
|
จากโค้ดโปรแกรมที่ 2 เมื่อรันโปแกรมออกมาแล้วจะเห็นว่าได้ว่าผลลัพธ์เหมือนกัน
ถามว่า 2 โปรแกรมนี้มีข้อแตกต่างกันอย่างไร ? บางคนว่าโปรแกรมแรกสั้นกว่าโปรแรกมที่
2 ครับอันนี้เป็นลักษณะทางกายภาพที่เราเห็นได้ชัดเจนที่สุด บางคนว่าแล้วอย่างนี้จะเขียนแบบที่
2 ทำไมให้ยุ่งยากใจ ยืดเยื้ออีกต่างหาก สรุปก็คือ จะเขียนแบบไหนก็ไม่ผิดหรอกครับ
เพียงแต่ว่าการเขียนโปรแกรมแบบวิธีที่ 2 จะเป็นการแสดงให้เห็นถึงแนวคิดในการเขียนโปรแกรมแบบ
OOP ครับ ซึ่งเป็นจุดประสงค์หลักของภาษานี้ ผมจะอธิบายโปรแกรมที่ 2 ทีละจุดเลยนะครับ
มาลองดูกัน
|
|
1. บรรทัดที่
1 คือ การนำ package เข้ามาใช้งานโดยจะต้องใช้คำสั่ง
import แล้วอย่าลืมปิดท้ายด้วยเครื่องหมาย
; นะครับมาดูความหมายของคำว่า package กันครับ
Java Class Library (Package)
Java มีลักษณะเช่นเดียวกับโปรแกรมภาษาระดับสูงอื่นๆ
คือ จะมี Class ย่อยที่เขียนขึ้นมาให้เรียกใช้ได้ทันที โดยไม่ต้องเขียนเองให้เสียเวลา
Class เหล่านี้เรียกว่า Libraries แต่สำหรับใน Java จะถูกเรียกว่า Package
ซึ่งใน Java เองก็มีอยู่มากมายให้เลือกใช้งานได้ต่างๆ กัน เช่น ช่วยสนับสนุนงานด้าน
Input และ Output งานด้าน Graphic User Interface (GUI) การจัดการข้อความ
การคำนวณทางคณิตศาสตร์ และอื่นๆ package ในจาวามีเยอะครับผมขอยกตัวอย่างของ
package บางส่วนขึ้นมาให้ดูเท่านั้นครับ
|
|
2. บรรทัดที่
2 นี้จะเป็นการสร้าง Class ขึ้นมาชื่อ
Hello2 ส่วนคำว่า
public ข้างหน้าเป็นขอบเขตของคลาสเราซึ่งมีความหมายดังนี้
public
ใช้นิยามตัวแปร ,Method และ Class ใดๆ เพื่อให้สามารถนำไปใช้กับ
Class หรือ โปรแกรมอื่นๆ ได้
private
ใช้นิยามตัวแปร หรือ Method เพื่อให้เรียกใช้ได้เฉพาะภายใน Class ที่สร้างตัวแปร
หรือ Method นั้นๆ ขึ้นมาเท่านั้น
protected ใช้นิยามตัวแปร
หรือ Method ที่ใช้ได้เฉพาะ Class ที่สร้างขึ้นมาด้วยวิธีการสืบทอด (Inheritance)
เท่านั้นโดยปกติจะใช้ protected กับ Class ที่เป็น Class ต้นฉบับ
static
ใช้นิยามตัวแปรและ Method ที่ต้องการให้มีค่าคงที่
สามารถนำไปใช้ได้กับทุกๆ ส่วนของ Class โดยค่านั้นจะไม่มีการเปลี่ยนแปลงไม่ว่ากรณีใดๆ
void ใช้นิยาม
Method โดยเป็นการกำหนดให้ไม่มีการส่งค่าใดๆ กลับมาให้กับ Method นี้ (ดังนั้นจึงไม่ต้องใช้คำสั่ง
return)
สำหรับใครที่ยังไม่ค่อยเข้าใจเรื่องขอบเขตทั้ง
5 ตัวนี้ก็ไม่ต้องตกใจนะครับ ดูความหมายไปพลางๆ ก่อนเมื่อถึงจุดหนึ่งท่านจะเข้าใจไปเองครับ
ในส่วนของการสร้างคลาสนี้เมื่อตั้งชื่อคลาสแล้วให้ ตามด้วยเครื่องหมาย {
เมื่อจะเริ่มเขียนส่วนอื่นในคลาส เมื่อสร้างองค์ประกอบต่างภายในคลาสเสร็จแล้วให้ปิดด้วยเครื่องหมาย
} นะครับ
|
3.
ดูในส่วนที่ 1 ในกรอบสี่เหลี่ยมนะครับบรรทัดที่
4-8 ส่วนนี้เรียกว่า Method
ครับ เป็นวิธีการที่จะให้ Object มาเรียกใช้ ผมให้
Method นี้มีชื่อว่า Run
ทำหน้าที่กำหนดค่าสติง (string) คำว่า
"Hello Java" ให้กับตัวแปล S1
แล้วแสดงผลออกมา เมื่อจบคำสั่งใดๆ แล้วอย่าลืมเครื่องหมาย
; นะครับ
|
4. ส่วนที่
2 บรรทัดที่ 9-13 เป็นการสร้าง Method ชื่อว่า main ครับ เป็นเมดธอทหลักที่จะต้องมีในโปรแกรมครับ
เวลารันโปรแกรมจะมารันที่ main Method นี้ก่อนเสมอครับ เป็นส่วนที่สำคัญที่สุดนะครับขาดไม่ได้
ภายในเมดธอทนี้ทำอะำไรบ้างมาดูกันครับ
Hello2 App = new Hello2(
) ;
ตรงนี้ดูให้ดีนะครับ จะเป็นการสร้าง
Object ชื่อว่า
App ครับ โดยการเขียนชื่อคลาสก่อนแล้วตามด้วยชื่อ
Object ชื่ออะำไรก็ได้ครับแต่ผมตั้งชื่อเป็น App แล้วตามด้วย คำสั่ง
new กับชื่อคลาสอีกทีแต่ชื่อคลาสหลัง
new ให้ใส่ ( ) ไว้ด้วยนะครับ เพราะอะไรเหรอครับ ต้องติดตามต่อไปครับ สิ่งที่ผมยังไม่อธิบายในตอนนี้มันจะไปเคลียเองในหัวข้อหรือในบทถัดๆ
ไปครับ
App.Run( ) ;
จุดนี้เป็นการให้ Object
ที่เราสร้างมาเรียกใช้เมดธอท Run มาทำงานแล้วครับ โดยเขียนชื่อ Object
แล้วใช้เครื่องหมาย dot
(.) เป็นการอ้างถึง จากนั้นตามด้วยชื่อเมดธอทที่เราต้องการเรียกใช้ครับ
อย่าลืมนะครับ ทุกครั้งที่จบคำสั่งให้ตามด้วย ; ถ้าเขียน Method หรือ Class
อย่าลืมเปิด { และปิด } ทุกครั้ง
|
เป็นอย่างไรกันบ้างครับ
พอจะมองเห็นแนวคิด แนวทางในการเขียนโปรแกรมขึ้นมาบ้างหรือยังครับ จะเห็นว่าโปแกรมที่
1 นั้นเขียนโดยมีเมดธอท main เพียงตัวเดียวก็ใช้งานได้แล้ว แต่โปรแกรมที่
2 มีการสร้าง Object ที่เป็นตัวแทนขึ้นมาเพื่อเรียกใช้เมดธอทอื่นๆ ที่อยู่ในคลาสได้ด้วย
ให้ลองนึกถึงบทความแรกที่ผมยกตัวอย่างเรื่อง คลาสการทำไข่เจียว ดูนะครับ
พอจะเปรียบเทียบให้เข้าใจขึ้นบ้างไหมครับ อีกจุดหนึ่งที่ผมจะกล่าวถึงก็คือ
ไม่ว่าจะเป็นโปแกรมที่ 1 หรือ 2 ภาษาจาวาก็บังคับให้เราสร้างคลาสครับ ในโปรแกรมหนึ่งๆ
ต้องมีคลาสอย่างน้อย 1 คลาสครับ ไม่มีไม่ได้ ตัวภาษาบังคับให้เราเขียนโปรแกรมแบบ
OOP ไปในตัวอยู่แล้วครับ
|
บทความนี้ผมเน้นเรื่องโครงสร้างของภาษาและการสร้าง
Class ,Method และ Object นะครับ คิดว่าคงจะทำให้หลายคนเข้าใจหลักการได้ดีขึ้น
ในบทต่อก็จะเพิ่มความเข้มข้นขึ้นเรื่อยๆ นะครับ ติดตามกันต่อไป สำหรับบทความนี้ผมขอจบเพียงเท่านี้ครับ
ขอบคุณครับ...
|
|