|
|
|
![]() |
|
|
โค้ดโปรแกรมจะเหมือนกับบทความตอนที่แล้ว ให้ท่านลองรันดูผลลัพธ์นะครับ จากนั้นให้ลองเขียนโค้ดโปรแกรมอีกโปรแกรมตามรูปข้างล่างครับ เกี่ยวกับการเซฟและตั้งชื่อไฟล์ อย่างที่ผมเคยกล่าวไว้แล้วนะครับว่าเวลาที่เราเขียนโค้ดโปรแกรมเสร็จแล้ว เราจะต้องทำการเซฟโดยให้ชื่อไฟล์มีชื่อเดียวกับชื่อ Class ทุกประการ เนื่องจากตัวคอมไพเลอร์จะได้ทราบว่าคลาสใดอยู่ในไฟล์ใด และจะเป็นการสะดวกสำหรับผู้เขียนเองด้วยในการแยกแยะคลาสต่างๆ เก็บไว้ ภาษาจาวามีความเข้มงวดในการใช้ตัวอักษรเล็กและใหญ่ด้วย เช่น คำว่า hello กับ Hello จะไม่เหมือนกัน ถ้าโปรแกรมหนึ่งมีหลายคลาสในการตั้งชื่อไฟล์นั้นให้สังเกตว่าคลาสใดมี main อยู่ก็ให้เซฟไฟล์เป็นชื่อเดียวกับคลาสนั้นๆ |
|
|
|
|
|
จากโค้ดโปรแกรมที่ 2 เมื่อรันโปแกรมออกมาแล้วจะเห็นว่าได้ว่าผลลัพธ์เหมือนกัน
ถามว่า 2 โปรแกรมนี้มีข้อแตกต่างกันอย่างไร ? บางคนว่าโปรแกรมแรกสั้นกว่าโปรแรกมที่
2 ครับอันนี้เป็นลักษณะทางกายภาพที่เราเห็นได้ชัดเจนที่สุด บางคนว่าแล้วอย่างนี้จะเขียนแบบที่
2 ทำไมให้ยุ่งยากใจ ยืดเยื้ออีกต่างหาก สรุปก็คือ จะเขียนแบบไหนก็ไม่ผิดหรอกครับ
เพียงแต่ว่าการเขียนโปรแกรมแบบวิธีที่ 2 จะเป็นการแสดงให้เห็นถึงแนวคิดในการเขียนโปรแกรมแบบ
OOP ครับ ซึ่งเป็นจุดประสงค์หลักของภาษานี้ ผมจะอธิบายโปรแกรมที่ 2 ทีละจุดเลยนะครับ
มาลองดูกัน |
|
![]() |
|
|
1. บรรทัดที่ 1 คือ การนำ package เข้ามาใช้งานโดยจะต้องใช้คำสั่ง import แล้วอย่าลืมปิดท้ายด้วยเครื่องหมาย ; นะครับมาดูความหมายของคำว่า package กันครับ Java Class Library (Package) |
|
![]() |
|
|
2. บรรทัดที่ 2 นี้จะเป็นการสร้าง Class ขึ้นมาชื่อ Hello2 ส่วนคำว่า public ข้างหน้าเป็นขอบเขตของคลาสเราซึ่งมีความหมายดังนี้ public
ใช้นิยามตัวแปร ,Method และ Class ใดๆ เพื่อให้สามารถนำไปใช้กับ
Class หรือ โปรแกรมอื่นๆ ได้ static
ใช้นิยามตัวแปรและ Method ที่ต้องการให้มีค่าคงที่
สามารถนำไปใช้ได้กับทุกๆ ส่วนของ Class โดยค่านั้นจะไม่มีการเปลี่ยนแปลงไม่ว่ากรณีใดๆ สำหรับใครที่ยังไม่ค่อยเข้าใจเรื่องขอบเขตทั้ง
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 นะครับ คิดว่าคงจะทำให้หลายคนเข้าใจหลักการได้ดีขึ้น ในบทต่อก็จะเพิ่มความเข้มข้นขึ้นเรื่อยๆ นะครับ ติดตามกันต่อไป สำหรับบทความนี้ผมขอจบเพียงเท่านี้ครับ ขอบคุณครับ... |
|
|
|
WebThaiDD
บันทึก • การเรียนรู้
พิจิตร
--°C
...
DEVELOPMENT
Frameworks
- ⚛️ React / Vue COMING
OFFICE
Productivity
SYSTEM & FIX
Maintenance
- 🛠️ ซ่อมคอมพิวเตอร์ COMING
- 📱 ซ่อมโทรศัพท์มือถือ COMING
- ☁️ Server & SSL COMING
Hardware
BEYOND CODE
Travel Log
โปรแกรมเมอร์พาเที่ยว
- 🏖️ ทริปพักนิ้ว COMING
- ☕ คาเฟ่นั่งเขียนโค้ด COMING



