5.1 การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) คือการมองเป็นวัตถุแทนกระบวนงาน จัดการข้อมูลที่ควบคุมการเข้าถึงเฉพาะที่ได้รับอนุญาต มีหลักการ 4 ข้อ ได้แก่
- Encapsulation
- Inheritance
- Polymorphism
5.2.1 การสร้าง class และสมาชิก
Class คือ แบบจำลอง/ต้นแบบกำหนดคุณสมบัติ ประกอบด้วย สมาชิกข้อมูล และสมาชิกฟังก์ชัน
Ex 5.1 Circle
Circle.java
CircleApp.java
5.2.2 คุณลักษณะและการเข้าถึง
ตัวอย่างก่อนหน้า ไม่ได้มีการกำหนดคุณลักษณะการเข้าถึง (modifier) ให้คลาสวงกลม โดยดีฟอลต์แล้ว จะเป็น public เข้าถึงได้จากทุกคลาสในแพ็คเกจเดียวกัน
โดยปกติแล้ว เค้ามักจะกำหนดให้ class และ method เป็น public ส่วน attribute เป็น private เพื่อให้มีการปกป้องข้อมูลตามหลัก information hiding
การจะเข้าถึง จึงมักให้เข้าถึงผ่านเมธอด get/set ที่สร้างขึ้นแทน ซึ่งสร้างอัตโนมัติได้โดยไปที่เมนู Source > Insert code > Getter and Setter ติ๊กถูกหน้า attribute ที่ต้องการ แล้ว OK
Ex 5.2 Rectangle
Rectangle.java
RectangleApp.java
5.2.3 Constructor และ Finalize
Constructor คือ เมธอดพิเศษที่กำหนดค่าเริ่มต้นให้สมาชิก มีชื่อเดียวกับคลาส
Finalize คือ เมธอดพิเศษที่จะถูกเรียกเสมอ เมื่อมีการทำลายออบเจ็คเพื่อคืนพื้นที่หน่วยความจำด้วย Garbage Collection
ปล.เมธอด finalize เป็น modifier แบบ protected จึงมีได้แค่เมธอดเดียว จึง overload ไม่ได้
Ex 5.3 Box
Box.java
BoxApp.java
5.2.4 การ Overload Constructor
Overload คือการที่เมธอดชื่อเดียวกัน แต่พารามิเตอร์ต่างกัน
ในคลาสเดียวกันนั้น สามารถเรียกใช้งาน constructor ที่ overload ได้ แต่นำชื่อ constructor มาเรียกไม่ได้ จึงใช้คีย์เวิร์ด this เป็นตัวแทน
Ex 5.4 Clock
Clock.java
ClockApp.java
5.3 Inheritance
คือ การที่คลาสหนึ่งสามารถขอคุณสมบัติอีกคลาสหนึ่งมาใช้เป็นของตัวเองได้ โดยไม่ต้องพิมพ์สร้างใหม่ แบ่งเป็น Super class และ Subclass ใช้คีย์เวิร์ด extends
attribute โดยปกติก็ยังควรจะมีคุณสมบัติซ่อนการมองเห็นแบบเดิม คือเป็น private แต่ถ้าเป็น private ตัว subclass จะมองไม่เห็น เลยมักกำหนดให้เป็น protected แทน ตัว attribute ที่สืบทอดมาจากของคลาสแม่ จะใช้คีย์เวิร์ด super() ตาม constructor ที่เลือกสืบทอดมา
Ex 5.5 Person and Student
Person.java
Student.java
5.4 Polymorphism
คือ ชุดการทำงานเดียว สามารถทำงานได้หลายรูปแบบ (override และเลือกมาใช้ตามเหมาะสม (overload)
5.4.1 การ Override Method
Override คือ การที่เมธอดชื่อเดียวกัน แต่รายละเอียดข้างในต่างกัน
ไม่สามารถใช้กับเมธอด static
ใช้ คีย์เวิร์ด @Override
ชื่อ ซิกเนเจอร์ และประเภทค่าส่งคืนกลับต้องเหมือนกัน
เมธอดของคลาสแม่ ที่ถูก override ด้วยเมธอดของคลาสลูก จะไม่สามารถเรียกมาใช้งานได้โดยตรง แต่ต้องเรียกผ่านคีย์เวิร์ด super()
Ex 5.6 Person and Employee
Person.java
Employee.java
EmployeeApp.java
Sign up here with your email
ConversionConversion EmoticonEmoticon