เมธอด Method


หน้าแรก JSP เมธอด Method
         ภาษาจาวามีโครงสร้างเป็นกลุ่มคำสั่ง(block) ซึ่งเป็นกลไกที่เราสามารถสร้าง
โปรแกรมย่อยหรือที่เราคุ้นเคยในชื่อโพซีเยอร์และฟังก์ชั่นนั่นเอง แต่ในภาษา
จาวา เราเรียกชื่อว่า เมธอด(method)แทน การมีเมธอดนั้นทำให้เราสามารถแยก
ย่อยโปรแกรมทั้งหมดออกมาเป็นหน่วยย่อยได้ ซึ่งทำให้ง่าย ในการจัดการ โดย
ปกติเมธอดจะถูกกำหนดในคลาส โครงสร้างของเมธอดมีดังนี้
         [modifier] [static] <return type> <method name>([type parameter])
         {
                  <method body>
         }
         ลองมาดูโครงสร้างเมธอดกันทีละตัว

6.1 [modifier]
         เป็นตัวเลือกคือจะมีหรือไม่มีก็ได้ มี 3 ตัวคือ public , private และ protect
แต่ละตัวมีความหมายดังนี้
         - public จะทำให้เมธอดสามารถอ้างจากนอกคลาสได้
         - private จะทำให้ไม่สามารถอ้างอิงจากนอกคลาสได้
         - protect ทำให้เมธอดสามารถอ้างอิงจากคลาสที่อยู่ใน package เดียวกัน
หรือคลาสที่ขยาย (Extend) มาจากคลาสนั้น หากไม่มีการระบุจะถือว่าใช้ protect
เป็นค่า default

6.2 [static]
         เป็นตัวเลือกเช่นเดียวกัน หากเมธอดใดถูกระบุเป็น static จะถูกเรียก
ได้จากเมธอดอื่นๆ ที่อยู่ในคลาสเดียวกันหรือต่างคลาสโดยขึ้นกับเงื่อนไขดังนี้
         - หากในคลาสเดียวกันเมธอด static จะเรียกได้แต่เมธอดที่เป็น static
เท่านั้น
         - หากเป็นเมธอดที่อยู่ต่างคลาสการเรียกจะเรียกผ่านชื่อคลาส โดยไม่
จำเป็นต้องสร้างอินสแทรนซ์ของคลาสขึ้นมาก่อน

6.3 return type
         คือชนิดของข้อมูลที่จะผ่านกลับมาจากเมธอด หากไม่มีการส่งค่าออกมาให้
ใส่ void ไว้หากมีการส่งก็ให้ระบุชนิดของข้อมูลได้เลยเช่น int , char เป็นต้น
6.4 method name
         คือชื่อของเมธอด สามารถตั้งชื่ออะไรก็ได้แต่ต้องถูกต้องตามหลักของภาษา
ด้วย

6.5 parameter เป็น option
         คือจะมีการผ่านค่าตัวแปรมาหรือไม่ก็ได้ หากมีมากกว่า 1 ตัวก็แยกด้วย
เครื่องหมาย ‘-’ หรือถ้าไม่มีการผ่านค่าอะไรมาก็ใส่เครื่องหมาย () ไว้หลังชื่อ
เมธอดเฉยๆ

6.6 method body
         คือลำดับของประโยคที่เมธอดจะทำตามคำสั่ง เมื่อมีการเรียกและที่สำคัญ
หากกำหนดให้เมธอดมีการผ่านค่ากลับต้องใส่คำสั่ง return และตามด้วยค่าที่ส่ง
กลับเข้าไปด้วย
         เพื่อให้เห็นภาพชัดเจน ให้ลองพิมพ์โค้ดตาม source code ชื่อ
helloWorld.jsp แล้วบันทึกชื่อไฟล์เป็น helloWorld.jsp ลงในไดเรกทอรี
C:TomcatWebAppsTutorialExample
อธิบาย Source Code ชื่อ helloWorld.jsp
         จากตัวอย่างนี้ได้ประกาศเมธอด addStr() ให้อยู่ภายใต้สัญลักษณ์
<%! กับ %> (แท็กชนิดหนึ่งของ JSP) โดย modifier เป็น public,กำหนดให้ส่ง
ผลลัพธ์ที่มีชนิดข้อมูลเป็นสตริงกลับ และรับค่าอากิวเมนต์ที่มีชนิดเป็นสตริง
ด้วยเช่นกัน เมื่อมีการเรียกเมธอดให้ทำงาน ผลลัพธ์ที่ได้คือ ค่าสตริงที่ส่งมา
บวกคำว่า “Hello” และ “I Love U” จากนั้นก็ส่งผลลัพธ์กลับ
         สำหรับขั้นตอนการทำงานของเอกสารมีดังนี้ เมื่อผู้ใช้เปิดเอกสาร JSP ขึ้น
มาและทำงานไปจนถึงบรรทัด if โปรแกรมก็จะตรวจสอบว่ามีการส่งค่าตัวแปร
ที่ชื่อว่า username มาหรือไม่โดยใช้คำสั่ง
         if ( request.getParameter(”username”) == null)
         โดยตรวจสอบค่าอากิวเมนต์ที่มากับออบเจ็กต์ request ว่าตัวแปรชื่อ
username มีค่าหรือไม่ หากไม่มีเงื่อนไขก็จะเป็นจริงคือ request.getParameter(”username”) == null โปรแกรมก็จะแสดงฟอร์มเพื่อรอ
รับชื่อของผู้ใช้ แต่ในกรณีที่มีการกดปุ่มกรอกข้อมูลและกดปุ่ม submit ทำให้
เกิดการส่งค่าตัวแปรมาแล้วโปรแกรมก็จะทำคำสั่ง
         } else {
           String msg = addStr(request.getParameter(”username”));
           Out.print(”<H1>”+msg+ “<H1>”);
         }
         โดยจะส่งชื่อผู้ที่ใช้ป้อนเข้ามาส่งไปให้เมธอด addStr() จากนั้นก็นำค่าที่ส่ง
กลับมาจากเมธอดนี้แสดงผลที่หน้าจอ
         ตามปกติหากเราต้องการจะใช้ออบเจ็กต์ เราต้องสร้างอินสแทนซ์ขึ้นมา
ก่อน แต่จากตัวอย่างนี้จะสังเกตเห็นว่าเรียกใช้ออบเจ็กต์ out และ request โดย
ไม่มีการประกาศและสร้างอินสแทนซ์เลย ที่เป็นแบบนี้เพราะออบเจ็กต์ทั้งสอง
คือ Implicit Object ซึ่ง JSP Engine จะสร้างขึ้นมาให้เราโดยอัตโนมัติ


ขึ้นไปด้านบน