Method and Encapsulation chapter04
จากแนวคิดการเขียนโปรแกรมเชิงวัตถุ การเขียนโปรแกรมเชิงวัตถุ (ไม่ว่าจะใช้ภาษาใด) จะประกอบด้วย กลไกต่อไปนี้ การห่อหุ้ม (encapsulation) การแปลงตัวหลายร่าง(polymorphism) การสืบทอดคุณสมบัติ (Inheritance) method เปรียบเหมือนช่องทางการเรียกใช้งานคลาส หรือ class API เพื่อปกปิดรายละเอียดการทำงานและการเข้าถึงข้อมูลโดยตรง
ประเภทของ Java methods Standard Library Methods User-defined Methods println() print() User-defined method รูปแบบ modifier return-type method-name (parameter-list) { // method body }
User-defined method modifier return-type method-name (parameter-list) { // body of the method }
void ไม่ return ค่าใดๆเลย Return type in java Primitive type int ,…,double, boolean Non primitive type String Array Object void ไม่ return ค่าใดๆเลย
Primitive type Non primitive type int ,…,double, boolean Parameter type in java Primitive type int ,…,double, boolean Non primitive type String Array Object
ต.ย การเรียกใช้ method กันเองภายในคลาส
ต.ย การเรียกใช้ method ผ่าน object
Static method เป็น method ที่เป็นของคลาส ไม่ถูกแจกจ่ายไปยัง object เรียกใช้ผ่านคลาสได้เลย
Static variable static variablename;
Static Variable เรียกใช้โดยตรงใน static method
Constructor method เป็น method ที่ถูกเรียกใช้ตอนสร้าง object (new) เพื่อทำการ กำหนดค่า instance variable จะถูกเพิ่มโดยอัตโนมัติใน byte code ถ้าไม่เขียน ถ้าเขียนเองระบบจะไม่เติมให้ Constructor method เป็น method ที่ชื่อเดียวกับคลาส ห้ามมี return-type มี 3 รูปแบบคือ Default, No-arg constructor and Parameterized.
Default constructor
no-arg constructor
Parameterized constructor
Getter and setter method Method ที่ทำหน้าที่กำหนดค่า instance variable public class SimpleGetterAndSetter { private int number; public int getNumber() { return this.number; } public void setNumber(int num) { this.number = num; }
เราควรทำ getter , setter ให้กับ instance variable ทุกตัว เพื่อส่งเสริมการ encapsulation
Private and public method private method หมายถึง method ที่มีคำขยายหน้า method ว่า private private method จะสามารถเรียกได้จากคำสั่งภายใน คลาสเดียวกัน public method หมายถึง method ที่มีคำขยายหน้า method ว่า public public method จะสามารถเรียกได้จากคำสั่งภายใน คลาสเดียวหรือภายนอกคลาสก็ได้
ข้อคำนึงถึง encapsulation ควรประกาศ instance variable เป็น private ควรประกาศ method เป็น public ควรให้ method เป็นช่องทางการเรียกใช้งานคลาส หรือ class API
การทำ encapsulation ผ่าน setter and setter method Lab ฝึกการเรียก method การทำ encapsulation ผ่าน setter and setter method ใน netbeans ทำ setter and setter method ได้ง่ายมาก
Java Method Signature Method Signature ประกอบด้วย name และ parameter types Method ทั้งสองมี Signature เหมือนกัน Method ทั้งสองมี Signature ไม่เหมือนกัน