เรียนรู้ภาษา 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 ให้หยุด แล้วแก้ไข

Methods* (วิธีการ)

Method คือ บล็อกหรือกลุ่มของโค้ด สั่งให้คอมฯ กระทำอะไรสักอย่างคำ Method ในภาษา Java ตรงกับคำ Function หรือ Procedure ในภาษาอื่นๆ

 

การเรียกใช้ Method

Methods ต่างๆ เมื่อเราเขียนขึ้นแล้วก็อยู่เฉยๆ อย่างนั้นแหละ
ถ้าเราต้องการให้มันทำงานก็มี 3 วิธี ดังนี้

1) สร้าง variable เพื่อรับค่าส่งกลับของ method

ต.ย.  int larger = max(3, 4);

หรือ

2) ใช้ statement

ต.ย.  System.out.println(“Hello World!”);

หรือ

3) คลิก ดับเบิลคลิก แดรก หรือ กระทำใดๆ ต่อวัตถุ (ปุ่ม / button / ฯลฯ) หรือโปรแกรมทำงานเองก็ได้

ต.ย.  public void actionPerformed(ActionEvent event)   //เมธอดนี้ทำงานเมื่อผู้ใช้คลิกปุ่ม

ต.ย.  public static void main(String[] args)      //เมธอดนี้ทำงานเองเมื่อเริ่ม run Application

ต.ย.  public void paint(Graphics g)              //เมธอดนี้ทำงานเองเมื่อลำดับการรันมาถึง statement นี้

 

Overloaded methods

static int max(int num1, int num2)
{
if (num1 > num2)return num1;

else

return num2;
}

static double max(double num1, double num2)
{

if (num1 > num2)

return num1;

else

return num2;

}

จากโค้ดข้างซ้ายเราเรียกใช้เมธอด max() ได้ดังนี้

ต.ย.   int larger = max(3, 4);

หรือ

ต.ย.   double larger = max(3.5, 4.7);

ก็ได้

 

ดังนั้น max() จึงเป็น
Overloaded method

เพราะใช้ได้กับ type

(หรือจำนวน parameter) ที่ต่างกัน

ในกรณีนี้ int ก็ได้ double ก็ได้

 

แนวคิดพื้นฐานของ OOP (Object-Oriented Programming)

 Class (จำพวก) คือ บล็อกของโปรแกรมที่กำหนดลักษณะ (variables) และพฤติกรรม (methods) กว้างๆ หลวมๆ ทั่วๆ ไป ของสิ่งทั้งหมดใน จำพวก เดียวกัน
• Object (สิ่ง) คือ บล็อกของโปรแกรมที่กำหนดลักษณะ (variables) และพฤติกรรม (methods) เฉพาะเจาะจง ของสิ่งใดๆ เพียง สิ่งเดียว เท่านั้น
ขอให้มองว่า Class (จำพวก) เป็นเพียงโครงสร้างกว้างๆ หลวมๆ เท่านั้น เราต้อง สร้าง Object ของ Class นั้นก่อน (ระบุสิ่งใดสิ่งหนึ่งว่าอยู่ในจำพวกนั้น) แล้ว เขียนคำสั่งให้ Object (สิ่ง) นั้นทำงาน (เรียกใช้เมธอดของ Object นั้น) — สรุปก็คือ เราสั่งให้ Object ทำงาน เราไม่สั่งให้ Class ทำงาน

 

สี่หลักการสำคัญของโปรแกรมเชิงวัตถุ (OOP)

 Abstraction   การนิยาม variables และ methods ที่จำเป็น มาสร้าง class แม่
 Polymorphism   การใช้ object เรียกใช้ method ชื่อเดียวกัน เช่น d.speak();    s.speak(); แต่สามารถทำงานได้หลายอย่างซึ่งคล้ายกัน แต่ก็แตกต่างกันในรายละเอียด   (d.speak(); “ฮ่ง-ฮ่ง-ฮ่ง”    s.speak(); “ขอมอบเพลงนี้เพื่อคุณ”)
 Inheritance   การสร้าง class ลูก โดยวิธีสืบทอด variables และ methods ของ class แม่ ส่งผลให้เขียนโปรแกรมง่ายขึ้น เร็วขึ้น ผิดพลาดน้อยลง
 Encapsulation   การซ่อนบาง variables และ methods (เช่น ประกาศเป็น private ภายใน class) ไม่ให้คนอื่นเข้าถึง หรือแก้ไขได้ (ไม่จำเป็นต้องรู้/เข้าถึง ก็ใช้โปรแกรมได้ง่าย สะดวก ถ้ารู้จะงง เกะกะ สับสน ใช้โปรแกรมยาก เปรียบเสมือนรถยนต์ เขาซ่อนเครื่องยนต์ แบตเตอรี่ สายไฟ หม้อน้ำ และอื่นๆ ที่เกะกะไว้ใต้ฝากระโปรงรถ โผล่แต่พวงมาลัย เกียร์ ให้คนขับใช้ก็พอ)

 

ที่มาของ Polymorphism ในภาษา OOP

• ภาษาพูดที่ใช้กันมี Polymorphism อยู่มากมาย เช่น พ่อสั่งลูก 3 คน: “ไปทำการบ้านเดี๋ยวนี้”   เมื่อได้ยิน คนน้อง ป.1 ก็ไป คัดลายมือ คนกลาง ม.3 ก็ไป ทำเลข คนโต ม.6 ก็ไป ทำแคลคูลัส
• ภาษาคอมพิวเตอร์แบบ OOP นั้น method หนึ่งสามารถทำให้เกิดการกระทำที่แตกต่างกันสำหรับแต่ละ object เช่นกรณีของ method speak()*สำหรับ object dog ก็คือ dog.speak() จะให้ผลลัพธ์บนจอ “ฮ่ง ฮ่ง ฮ่ง”

สำหรับ object cat ก็คือ cat.speak() จะให้ผลลัพธ์บนจอ “เมี้ยว เมี้ยว เมี้ยว”

สำหรับ object singer ก็คือ singer.speak() จะให้ผลลัพธ์บนจอ “ขอมอบเพลงนี้เพื่อคุณ”

• จากตัวอย่างข้างต้น ลูก 3 คนอาจอยู่เฉยๆ ก็ได้ เพราะไม่แน่ใจว่าพ่อสั่งใคร? สั่งลูกคนไหน? (ไปทำการบ้านเดี๋ยวนี้) แต่เดาความประสงค์ของพ่อได้ ทุกคนก็ปฏิบัติ(มนุษย์เดาเก่งจริงๆ!) แต่ผลของการปฏิบัติก็ไม่ได้เหมือนกัน เสียทีเดียว เพราะเป็นคนละคนกัน ความสามารถไม่เหมือนกัน
• อันที่จริง James Gosling (และผู้ต้นคิด OOP) จงใจเลียนแบบภาษาพูด โดยหวังว่าจะทำให้ Java เป็นเรื่องง่ายๆ อันเป็นยอดปรารถนาของโปรแกรมเมอร์ทุกคน อย่างไรก็ตาม ภาษาพูดมักกำกวม จึงแก้ไขจุดอ่อนนี้โดยตั้งกฎว่า ทุก method เมื่อนำมาใช้ ต้องระบุชื่อ object ไว้ข้างหน้า (คั่นด้วย จุด) เพราะตระหนักดีว่าคอมพิวเตอร์เถรตรงในทุกกรณี (คอมพิวเตอร์ไม่เดา)

 

บทที่ 1 การเขียนโปรแกรมJava

บทที่ 2 การเขียนโปรแกรม Java

บทที่ 3 Programming

บทที่ 4 ตัวแปรArray

บทที่ 5 การเขียนโปรแกรมแบบวนซ้ำ

บทที่ 6 ตัวแปรชนิดต่างๆ และ การสร้างเมธอด

หลังจากที่ได้เรียนรู้ ภาษา Java เบื้องต้นกันไปแล้ว ต่อไปจะเป็นการเข้าส่วนเนื้อหาที่เป็น Java OOp
OOp คืออะไรคงสงสัยกันล่ะสิ มันมาได้ยังไง แล้วมันมาอยู่ข้างหลัง Java ทำไม งั้นเราไปทำความรูจักกับ OOp กันเลยนะคะ
Object oriented programming
(โดยใช้ syntax แบบ C++)
OOP คือการมองทุกอย่างให้เป็น object ซึ่งแบ่งได้เป็น
1. Object ที่เป็น รูปธรรม เช่น คน,ใบรายการสินค้า
2. Object ที่เป็น นามธรรม เช่น ความเป็นเจ้าของ,เที่ยวบิน เป็นต้น
ทุก object จะประกอบด้วย 2 ส่วนคือ
1. Attribute (object data) – เป็นส่วนที่ใช้ในการเก็บข้อมูลต่างๆของ object เช่น รถ มี attribute คือ ยี่ห้อรถ,ชื่อรุ่น,สี เป็นต้น
2. Method (object behavior) – เป็นสิ่งที่ object นั้นสามารถทำได้ เช่น รถ สามารถ เพิ่มความเร็ว,ชะลอความเร็ว,หยุด,เปลี่ยนเกียร์ เป็นต้น
หลักการสำคัญของ OOP
1. Data hiding คือ ปกปิด source code ส่วนหนึ่งไว้ไม่ให้ผู้ที่ไม่เกี่ยวข้องสามารถเข้าถึง หรือแก้ไขข้อมูลได้โดยตรง ซึ่งจะต้องบอกคำสงวนในการควมคุมการเข้าถึงข้อมูล
– Public สามารถเข้าถึงได้จากทุกๆที่ของโปรแกรม
– Private ไม่สามารถเข้าถึงได้จากภายนอก class ส่วนมากจะใช้กับ attribute ของ class
2. encapsulation นั่นคือ attribute ต่างๆภายใน class นั้นจะไม่สามารถถูกเปลี่ยนแปลงค่าได้จากภายนอก class การเปลี่ยนแปลงค่าของ attribute จะสามารถทำได้จากการเรียก method ภายใน class เท่านั้น ซึงคือการกำหนดด้วยคำสงวน private นั่นเอง
3. inheritance & reusable คือการ นำ source code ส่วนที่มีการใช้ซ้ำๆนำกลับมาใช้ใหม่
การนำกลับมาใช้ใหม่ แบ่งได้เป็น 2 กรณี
3.1 inheritance (การสืบทอดจากคลาสหลัก/ is-a relationship)
– superclass (base class/classหลัก)/subclass (derived class/classสืบทอด)
– superclass อาจเรียกได้ว่าเป็น classพ่อ
– subclass อาจเรียกได้ว่าเป็น class ลูก class ลูกจะมี attribute/method เพิ่มเติมจากclass พ่อ
สามารถเป็นได้ทั้ง single inheritance คลาสลูกมีคลาสพ่อเพียงคลาสเดียว และ multiple inheritance คลาสลูกมีคลาสพ่อหลายคลาส เช่น ในระบบของโรงพยาบาล
– คลาสพนักงาน จะประกอบด้วย attribute ชื่อ/รหัสประจำตัวพนักงาน
– คลาสหมอ จะประกอบด้วย ชื่อ/รหัสประจำตัวพนักงาน/สาขาที่เชียวชาญ
จะเห็นได้ว่ามีกานซ้ำซ้อนของการใช้ attribute ของ class ทั้ง 2 เนื่องจากคลาสพนักงานมีแต่ attribute ที่เหมือนกันกับ attribute ของ คลาสหมอ ดังนั้นเราสามารถทำให้ คลาสพนักงาน เป้น superclass ของ คลาสหมอได้
3.2 composition (has-a relationship) เป็นการนำ class ที่มีอยู่เดิมมาเป็น attribute ของ class ใหม่ เช่น คลาสรถยนต์ ประกอบด้วย คลาสเครื่องยนต์ คลาสตัวถัง คลาสล้อรถ
4. polymorphism ใช้ได้กับการสืบทอดแบบ is-a เท่านั้น คือการที่คลาสพ่อมี method ที่ภายในไม่มีการ implement ใดๆ เมื่อคลาสลูกสืบทอดคุณสมบัติไป คลาสลูกได้มีการเพิ่มส่วนของการ implement ใน method นั้น
*object ของคลาสที่มีคลา สพ่อคลาสเดียวกันทั้งๆที่เรียก method ชื่อเดียวกันกลับได้ผลลัพ์ที่แตกต่างกัน โดย obj ของคลาสก็จะดู method นี้ภายในคลาสของตนเท่านั้น
เช่น คลาสรูปภาพ มี method drawPicture ซึ่งเป็น functionที่ว่างเปล่าไว้ (เรียกว่าเป็น abstract function) เมื่อคลาสวงกลมมาสืบทอดต่อจากคลาสรูปภาพ method ที่ชื่อ drawPicture ได้เพิ่มส่วนของการ implement เป็นการวาดวงกลม และมีคลาสสี่เหลี่ยม สืบทอดต่อจากคลาสรูปภาพ แต่ method drawPicture ของคลาสสี่เหลี่ยม ได้เพิ่มส่วนของการ implement เป็นการวาดรูปสี่เหลี่ยมให้ เมื่อobj ของคลาสวงกลมมาเรียกใช้ method drawPicture จะได้รูปวงกลม ถ้าobj คลาสสี่เหลี่ยมมาเรียกใช้ method drawPicture จะได้รูปสี่เหลี่ยม
ความสัมพันธ์ระหว่างคลาส
1. association เป็นความสัมพันธ์แบบรู้จักกันเฉยๆ สามารถทำงานแยกกันได้อย่างอิสระ แต่ประกอบกันเพื่อให้ได้การทำงานที่สมบูรณ์ อาจรู้จักเพื่อให้เรียกใช้งาน method ที่มีในอีกคลาสได้ เช่น คลาสของพนักงานต้องรู้จักคลาสคำนวณยอดเงิน เพื่อที่จะสามารถใช้ method ที่เป็นการคำนวณเงินเดือนในคลาสคำนวณยอดเงินได้ เนื่องจากภายในคลาสพนักงานไม่มีส่วนของการคำนวณเงินเดือน และ คลาสคำนวณยอดเงินเป็นคลาสที่จะเก็บ method ที่ใช้ในการคำนวณเกี่ยวกับยอดเงินต่างๆภายในบริษัท
2. aggregation สัมพันธ์กันเชิงเป็นส่วนประกอบ
2.1 composition เป็นความสัมพันธ์ที่คลาส 1 หรือมากกว่า 1 เป็นส่วนประกอบย่อยของคลาสที่มีขนาดใหญ่กว่า และส่วนประกอบนี้ คลาสใหญ่ไม่สามารถขาดได้ เช่น คลาสรถ ต้องมี คลาสล้อ/คลาสเครื่องยนต์ เป็นต้นถ้าขาดสิ่งพวกนี้รถก็จะไม่สามารถเรียกได้ว่าเป็นรถ
2.2 contain เป็นความสัมพันธ์ที่คลาส 1 หรือมากกว่า 1 เป็นส่วนประกอบย่อยของคลาสที่มีขนาดใหญ่กว่า และส่วนประกอบนี้ คลาสใหญ่สามารถขาดได้ ขาดไปก็ไม่ส่งผลต่อคลาสนั้น เช่น คลาสรถ มีคลาสคนขับรถ อยู่เป็นส่วนประกอบด้วยแต่ถ้ารถขาดคนขับไป รถก็ยังสามารถเรียกได้ว่าเป็นรถอยู่
Interface และ implement
Interface คือส่วนที่ประกาศเป็น public สามารถเข้าถึงได้จากภายนอกคลาส เป็นส่วนที่เปิดให้รับรู้ว่าคลาสนี้ทำอะไรได้บ้าง ซึ่งไม่จำเป็นต้องรับรู้ว่าคลาสนี้ทำงานอย่าง 1 โดยใช้กระบวนการอะไร
Implement คือส่วนที่ประกาศเป็น private หรือ โค้ดต่างๆภายใน method ของคลาส เป็นส่วนที่ถูกซ่อนไว้ไม่สามารถเห็นได้จากภายนอกคลาส ถ้าเกิดมีการเปลี่ยนแปลง implement จะไม่มีผลกระทบต่อ user เพราะ user ติดต่อคลาสผ่าน interface เท่านั้น
เช่น เตาปิ้งขนมปัง เปิดให้ผู้คนรับรูว่าถ้าใส่ขนมปังลงในเตาปิ้งแล้วขนมปังจะถูกทำให้กรอบ ถือว่านี่เป็นส่วนของ interface คือทุกคนรับรู้ว่ามันทำอะไรได้ แต่การที่เตาปิ้งใช้วิธีการให้ความร้อนผ่านขดลวดแล้วส่งความร้อนไปยังขนาม ปังจนทำให้ขนมปังกรอบนั่นผู้ใช้เตาปิ้งขนมปังไม่จำเป็นต้องรับรู้ในส่วนนี้ ถือว่าวิธีกานที่ทำให้ขนมปังกรอบนี้เป็นส่วนของ implement
Class
เป็นแม่แบบของ object ก่อนที่จะสร้าง object ได้ก็ต้องมี class เสียก่อน object เป็น object ของ classใดก็จะมีคุณสมบัติ(attribute) และสามารถทำพฤติกรรม (method) ได้เหมือนที่ class มี
เช่น
Class number
{
Private value; Public number(){ };
Public void setValue(int v) { value = v};
Public void getValue() {return value};
}
Main program
{
number a;
ประกาศ object ชื่อ a เป็น type number a.setValue(10);
obj ‘a’ สามารถเรียกใช้ method ต่างๆที่มีใน class number ได้ a.getValue();
}
Constructor
เป็น method พิเศษในคลาสทีจะกำหนดค่าเริ่มต้นให้แก่ attribute ต่างๆภายในคลาส ข้อกำหนดของ constructor
1. เป็น method ที่ชื่อเดียวกับชื่อคลาส
2. ไม่มีการ return ค่าใดๆ
3. ประกาศการเข้าถึงเป็นแบบ public
แบ่งประเภทของ constructor เป็น
1. default constructor เป็น constructor ที่ไม่มีส่วนของ implement ภายใน
เช่น
Class number
{
Private value;
Public number(){ };
Public void setValue(int v) { value = v};
Public void getValue() {return value};
}
Main program
{
number a = new number(); สร้าง object แบบ dynamic โดยเรียกใช้ default constructor
}
*object แบบ dynamic เป็นการจองพื้นที่ในหน่วยความจำตอน runtime
2. multiple constructor เป็น constructor ที่มีส่วน implement ภายในซึ่งอาจมีการรับค่า parameter หรือไม่มีก็ได้
เช่น
Class number
{
Private value; Public number(){ value = 0};
Public number(int v){value = v;};
Public void setValue(int v) { value = v;};
Public void getValue() {return value};
}
Main program
{
number a = new number();
สร้าง object แบบ dynamic โดยเรียกใช้ constructor ที่ไม่มีการรับ parameter attribute ชื่อvalueมีค่าเป็น 0
number a = new number(9);
สร้าง object แบบ dynamic โดยเรียกใช้ constructor ที่มีการรับ parameter attribute ชื่อvalueมีค่าเป็น 9
}
Overloading method
คือ method ที่ใช้ชื่อซ้ำกันแต่ค่า parameter ที่รับมีความแตกต่างกัน ซึ่งโปรแกรมจะเลือกว่าเป็นการเรียก method ใดโดยดูจาก parameter ที่รับเข้ามา เช่น
Public getStudentName(string StudentLastName);
Public getStudentName(int StudentNO);
ดังนั้นเพื่อที่จะให้ผู้ใช้สามารถเข้าถึง method ได้ผู้ใช้จะต้องรู้
1. ชื่อของ method
2. Parameter ของ method
การเรียก method ของ object นั้นคล้ายกับการ call function แต่ oop จะเป็นการให้ object นั้นทำ method ของตนเอง  เช่น
Line 1 :Employee em01;
Line 2 :em01.setName(“David”);
Line 2 เป็นการส่ง message ให้ object ของ Employee ที่ชื่อว่า em01 เรียกใช้ method setName ของตัวมันเองซึ่งมี argument เป็น “David”
รูปแบบการเรียกใช้ method : ชื่อobject . ชื่อmethod
Accessor
คือ method ที่ให้ read หรือ write attribute ใน คลาสนั้นๆ ซึ่งมักจะตั้งชื่อเป็น
Set….() เป็นการ write ค่าให้ attribute
Get….(return….;) เป็นการ read ค่าใน attribute
การสื่อสารระหว่าง object

การที่ object 2 ประเภทจะติดต่อสื่อสารกันได้ จะต้องมี object ตัวหนึ่งเป็น sender ซึ่งเป็นผู้ส่ง message ไปยัง object อีกตัวหนึ่งซึ่งเป็น receiver โดยที่ sender จะต้องรู้จักกับ object ที่เป็น receiver เสียก่อน แล้ว object ที่เป็น receiver เมื่อได้รับ message จะ return value กลับมาให้ sender หรือไม่ก็ได้
เช่น
กรณีที่มีการ return value : object School ส่ง messageสอบถามรายชื่อนักเรียน ไปยัง object Student object Student ก็จะส่งข้อมูลรายชื่อนักเรียนทั้งหมดกลับไป
กรณีที่ไม่มีการ return value : object School ส่ง messageต้องการเปลี่ยนชื่อนักเรียน ที่มีรหัสประจำตัว คือ XX เป็นชื่อ YYY ไปยัง object Student object Student จะทำการเปลี่ยน attribute ชื่อของนักเรียนที่มีรหัส 1 เป็นชื่อที่กำหนด โดยที่ object School ไม่สนใจว่า object Student จะ return ค่าใดๆกลับมา
 

*โดยสรุป ภาษาจาวาเป็นภาษาที่นิยมใช้ในการเขียนโปรเเกรม เเละ เป็นอีกหนึ่งภาษาที่ได้รับความนิยมมากที่สุดในโลกขณะนี้

**ตัวอย่างการเขียนภาษา Java พื้นฐาน**

เครดิตเว็บ http://nongtha57.wordpress.com

Leave a comment