SlideShare a Scribd company logo
1 of 14
Download to read offline
การเขี ย น program เชิ ง วัต ถุ (Object-Oriented Programming: OOP)
การเขี ย น program แบบ OOP มี ล ัก ษณะ 5 ประการ
1) ทุ ก สิ่ ง ทุ ก อย่า งคื อ object
ในแง่ ห นึ่ งเราก็ อ าจตี ค วามว่า object เป็ นตัว แปรที่ มี ค วามพิ เ ศษอยู่ใ นตัว เอง คื อ
นอกจากเก็ บ ค่ า ต่ า ง ๆ ได้แ ล้ว เรายัง สามารถที่ จ ะสั่ ง (request) ให้ object ทางาน
(operation) ต่ า ง ๆ ที่ เ กี่ ย วกับ ตัว มัน เองด้ว ย
2) Program ประกอบไปด้ว ย object ที่ ต่ า งก็ ส่ ง ข้อ ความ (message) บอกให้กัน และ
กัน ว่า ต้อ งทาอะไร
การส่ ง message ก็ คื อ การส่ ง request หรื อ การเรี ย กใช้ function ของ object นั้น ๆ
3) Object แต่ ล ะตัว มี ห น่ ว ยความจาที่ เ ต็ม ไปด้ว ย object อื่ น ๆเราสร้ า ง object จาก
object ตัว อื่ น ที่ มี อ ยู่แ ล้ว
4) Object มี รู ป แบบ หรื อ ชนิ ด ของตัว เอง (type/class)
5) Object ที่ ต้น ตอมาจาก type แบบเดี ย วกัน สามารถที่ จ ะรั บ ข้อ มู ล ซึ่ งกัน และกัน ได้
Object คือ สิ่ งที่มีคุณสมบัติและพฤติกรรมตามทีกาหนดไว้ในคลาส
่
แบ่งได้เป็ น 2 ประเภท คือ
1) สิ่ งที่เป็ นรู ปธรรม (tangible) คือสิ่ งที่เป็ นวัตถุและจับต้องได้อาทิเช่น นักศึกษา
ปากกา และรถ เป็ นต้น
2) สิ่ งที่เป็ นนามธรรม (intangible) คือสิ่ งที่ไม่สามารถจับต้องได้อาทิเช่น คะแนน
รายชื่อวิชา การลงทะเบียน การฝาก-ถอนเงิน และตารางเที่ยวบิน เป็ นต้น
Object ประกอบไปด้ วย
1) คุณลักษณะ (attribute) หรื อข้อมูล (data)
2) เมธอด (method) หรื อพฤติกรรม (behavior)
3) คุณลักษณะ (attribute) หรื อข้อมูล (data) ข้อมูลของ Object แต่ละ Object อาจมี
ข้อมูลที่แตกต่างกัน
4) เมธอด (method) หรื อพฤติกรรม (behavior) สิ่ งที่ Object สามารถกระทาได้
Class
Class หมายถึงโครงสร้างของ object โดย class เป็ นตัวกาหนดว่า object นั้น
จะมี data หรื อคุณลักษณะอะไร บ้าง และมี method อะไรบ้าง เปรี ยบเสมือนพิมพ์
เขียว (template) ของออปเจ็ค ออปเจ็คที่ถกสร้างมาจากคลาส (class) บางครั้ง
ู
เรี ยกว่าเป็ น instance ของคลาส
คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค
Object นั้นจะถูกสร้างขึ้นตามกระบวนการทางานของ JVM โดยที่นกพัฒนาจะต้อง
ั
ั
นิยาม Class ที่ตองการให้กบ JVM
้
ตัวอย่ าง คลาส เช่ น
คลาส Student อาจสร้างออปเจ็ค s1,s2 หรื อ s3 ซึ่ งเป็ นออปเจ็คของคลาส Student
คุณลักษณะเด่ นของการเขียนโปรแกรมเชิงวัตถุ
1) การห่ อหุ้ม (Encapsulation)
หมายถึงการจะเรี ยกใช้คุณลักษณะของออปเจ็ค จะทาได้โดยการเรี ยกผ่านเมธอดเท่านั้น
หลักการของการห่อหุม คือการกาหนดให้คุณลักษณะของออปเจ็คมีคุณสมบัติเป็ น private และ
้
กาหนดให้เมธอดมีคุณสมบัติเป็ น public โดยมีเมธอด get / set ไว้เพื่อเข้าถึง data นั้นๆ จะเรี ยกว่า
class นั้นๆ เป็ น Full Encapsulation class
ข้ อดีของการห่ อหุ้ม (Encapsulation)
- Flexibility
่
่
มีความยืดหยุนสูง การใช้งาน method ใน OOP นั้นมีความยืดหยุนสูงกว่าการใช้งาน Data Fields
ใน Object โดยตรงๆ
- Maintainability
การดูแลรักษาง่าย เพราะหากมีการเปลี่ยนแปลงภายใน Object ใดๆ หากว่าส่ วนติดต่อกับ Object
่
อื่นยังคงเดิมแล้ว ก็ยอมไม่ส่งผลกระทบต่องานทั้งระบบ
- Information Hiding
การซ่อนเร้นข้อมูลทาให้ออปเจ็คสามารถติดต่อกับออปเจ็คภายนอกผ่านเมธอดที่เป็ นส่ วนของ
interface เท่านั้น
- Modularity
การพัฒนาโปรแกรมเชิงวัตถุ จะสามารถกาหนดให้ออปเจ็คแต่ละออปเจ็คมีความเป็ นอิสระต่อกัน
2) การสื บทอด (Inheritance)
่
หมายถึงการนิยามคลาสใหม่จากคลาสที่มีอยูแล้วโดยคลาสใหม่สามารถที่จะนาคุณลักษณะและ
เมธอดของคลาสเดิมมาใช้ได้
คือ Class หนึ่งๆสามารถสื บทอดคุณสมบัติบางประการจาก Class อื่น แล้วเพิ่มคุณสมบัติเฉพาะ
ของ Class นั้นเข้าไป
- Class ที่ได้รับการสื บทอดคุณสมบัติเรี ยกว่า Subclasses
- Class ที่เป็ นต้นแบบเรี ยกว่า Superclass
เป็ นการช่วยให้ไม่ตองพัฒนา ส่ วนที่ซ้ าหลายๆรอบ (Reusable)
้
Class หนึ่งๆจะมี Superclass ได้เพียง Class เดียวเท่านั้น (Single Inheritance)
ในภาษาจาวา จะใช้คียเ์ วิร์ด extends เพือระบุการสื บทอด
่
3) การมีได้หลายรู ปแบบ (Polymorphism)
หมายถึง การที่สามารถตอบสนองต่อข่าวสาร (เมธอด) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถ
กาหนดออปเจ็คได้หลายรู ปแบบ
- Overridden method
- Dynamic Binding
การประกาศคลาส
โปรแกรมภาษาจาวาแต่ละโปรแกรมจะประกอบไปด้วยคลาสอย่างน้อย หนึ่งคลาส โดยมีรูปแบบ
การประกาศ ดังนี้
[modifier] class Classname {
[class member]
}
Modifier คือคียเ์ วิร์ด ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (Access modifier)
่
class คือคียเ์ วิร์ด ของภาษาจาวา เพื่อระบุวาเป็ นการประกาศคลาส
Classname คือชื่อคลาส
Class member คือเมธอดหรื อคุณลักษณะ
การประกาศคุณลักษณะ
คุณลักษณะของออปเจ็ค คือตัวแปรหรื อค่าคงที่ซ่ ึ งประกาศภายในออปเจ็ค
โดยมีรูปแบบการประกาศดังนี้
[modifier] dataType attributeName;
Modifier คือคียเ์ วิร์ดของภาษาจาวาที่อธิบายคุณสมบัติต่างๆ ของตัวแปรหรื อค่าคงที่
dataType คือชนิดข้อมูลซึ่งอาจเป็ นชนิดข้อมูลพื้นฐานหรื อชนิดคลาส
attributeName คือชื่อของคุณลักษณะ
การประกาศเมธอด
่
ภาษาจาวากาหนดรู ปแบบของการประกาศเมธอดที่อยูในคลาสไว้ดงนี้
ั
[modifier] return_type methodName ([argument]) {
[method body]
}
Modifier คือคียเ์ วิร์ด ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (Access modifier)
Return_type คือชนิดข้อมูลของค่าที่จะมีการส่ งกลับ
methodName คือชื่อของเมธอด
Arguments คือตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่ งมาให้
Method body คือคาสังต่างๆ ของภาษาจาวาทีอยูในเมธอด
่ ่
่
การประกาศออปเจ็ค
่
ออปเจ็คทุกออปเจ็คในโปรแกรมภาษาจาวาจะต้องมีคาสังประกาศเพื่อระบุวาออปเจ็คนั้นเป็ น
่
ออปเจ็คของคลาสใด
โดยมีรูปแบบการประกาศ ดังนี้
[modifier] ClassName objectName;
modifier คือคียเ์ วิร์ดที่อธิบายคุณสมบัติต่างๆของออปเจ็ค
ClassName คือชื่อของคลาสสาหรับออปเจ็คนั้น
objectName คือชื่อของออปเจ็ค
การสร้างออปเจ็ค
คาสังที่ใช้ในการสร้างออปเจ็คจะมีรูปแบบ ดังนี้
่
objectName = new ClassName ([arguments]);

objectName คือชื่อของออปเจ็ค
new คือคียเ์ วิร์ดของภาษาจาวาเพือใช้ในการสร้างออปเจ็ค
่
ClassName คือชื่อของคลาส
Arguments คือค่าที่ตองการส่ งผ่านในการเรี ยก Contructor
้
การประกาศและการสร้างออปเจ็ค

คาสังที่ใช้ในการประกาศและสร้างออปเจ็ค สามารถที่จะรวมเป็ นคาสังเดียวกัน
่
่
โดยมีรูปแบบคาสั่ง ดังนี้
[modifier] ClassName objectName = new ClassName ([arguments]);

การเรียกใช้สมาชิกของออปเจ็ค

การเรี ยกใช้คุณลักษณะของออปเจ็คมีรูปแบบ ดังนี้
objectName.attributeName;
การเรี ยกใช้เมธอดของออปเจ็คมีรูปแบบ ดังนี้
objectName.methodName([arguments]);
objectName คือชื่อของออปเจ็คที่สร้างขึ้น
methodName คือชื่อของเมธอดของออปเจ็คนั้น
ั
arguments คือค่าที่ตองการส่ งผ่านไปให้กบเมธอดของออปเจ็คนั้น
้
ในบางกรณี อาจมีเมธอดใดๆ ที่สามารถรับค่าที่เป็ นตัวแปรได้หลากหลายชนิดได้ ถ้า
กาหนดไว้เป็ นเมธอดเดียว อาจทาให้ผลลัพธ์ที่ได้เกิดความผิดพลาดได้ ดังนั้นถ้าชนิดตัวแปรเป็ น
คนละชนิดกัน ให้สร้างเมธอดขึ้นมาใหม่ โดยใช้ชื่อเมธอดเดียวกัน แต่สร้างให้เมธอด มีชนิดของ
ตัวแปรใน parameter list ต่างกัน โดยจะสร้างเมธอดใหม่ ขึ้นมาเป็ นจานวนเท่ากับชนิดของตัว
แปรที่เป็ นไปได้ เมื่อมีการใช้เมธอด ชื่อนี้โปรแกรมจะเรี ยกเมธอดที่มีชนิดของตัวแปร ตรงกับที่
่
่
ต้องการโดยอัตโนมัติ เรี ยกวิธีการนี้วา “Overloading” และเรี ยกเมธอดที่ใช้วธีการนี้วา
ิ
“Overloading Methods”
ตัวอย่างโปรแกรม
public class TestOverloading {
public static void main(String[] args) {
System.out.println("The maximum between is " + max(3,5));
System.out.println("The maximum between is " + max(4.5,6.8));
}
static double max(double num1,double num2) {
if(num1>num2)
return num1;
else
return num2;
}
static int max(int num1,int num2) {
if(num1>num2)
return num1;
else
return num2;
}
} //class TestOverloading

More Related Content

What's hot

Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Thanachart Numnonda
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPornsitaintharak
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาThanachart Numnonda
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นThanachart Numnonda
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : ThreadIMC Institute
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอchupong roddee
 
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHPความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHPKhon Kaen University
 
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]Khon Kaen University
 
คลาสและโปรแกรม
คลาสและโปรแกรมคลาสและโปรแกรม
คลาสและโปรแกรมN'Name Phuthiphong
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็มJitti Nut
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Thanachart Numnonda
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาKukkik Kanya
 
2.Java fundamentals
2.Java fundamentals2.Java fundamentals
2.Java fundamentalsUsableLabs
 
Java Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมJava Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมThanachart Numnonda
 
พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาThanachart Numnonda
 

What's hot (20)

METHODS
METHODSMETHODS
METHODS
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : Thread
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอ
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHPความรู้พื้นฐานเกี่ยวกับภาษา PHP
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
 
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
 
คลาสและโปรแกรม
คลาสและโปรแกรมคลาสและโปรแกรม
คลาสและโปรแกรม
 
Java AWT
Java AWTJava AWT
Java AWT
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็ม
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวา
 
2.Java fundamentals
2.Java fundamentals2.Java fundamentals
2.Java fundamentals
 
Java Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมJava Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุม
 
พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวา
 
5.Methods cs
5.Methods cs5.Methods cs
5.Methods cs
 
Vb6 5 ข้อมูลและตัวแปร
Vb6 5 ข้อมูลและตัวแปร Vb6 5 ข้อมูลและตัวแปร
Vb6 5 ข้อมูลและตัวแปร
 

Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น

งานกลุ่มคอมกลุ่ม5
งานกลุ่มคอมกลุ่ม5งานกลุ่มคอมกลุ่ม5
งานกลุ่มคอมกลุ่ม5Boss'Thanasit Tassana
 
Presentation 5
Presentation 5Presentation 5
Presentation 5kitkit1974
 
Presentation 5
Presentation 5Presentation 5
Presentation 5safdswqe
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นDararat Worasut
 
Cognitive tols for open ended learning environments
Cognitive tols for open ended learning environmentsCognitive tols for open ended learning environments
Cognitive tols for open ended learning environmentsJiraporn Talabpet
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลOrapan Chamnan
 
Pegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติ
Pegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติPegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติ
Pegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติTee Lek
 
Emerging technology 201704 (1)
Emerging technology 201704 (1)Emerging technology 201704 (1)
Emerging technology 201704 (1)Sukanya Dee
 
Dc282 interaction
Dc282 interactionDc282 interaction
Dc282 interactionajpeerawich
 

Similar to คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น (20)

งานกลุ่มคอมกลุ่ม5
งานกลุ่มคอมกลุ่ม5งานกลุ่มคอมกลุ่ม5
งานกลุ่มคอมกลุ่ม5
 
Class1
Class1Class1
Class1
 
Presentation 5
Presentation 5Presentation 5
Presentation 5
 
Presentation 5
Presentation 5Presentation 5
Presentation 5
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
Chapter1 uml3
Chapter1 uml3Chapter1 uml3
Chapter1 uml3
 
กิจกรรม 3
กิจกรรม 3กิจกรรม 3
กิจกรรม 3
 
oopnew
oopnewoopnew
oopnew
 
4
44
4
 
Six
SixSix
Six
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
Cognitive tols for open ended learning environments
Cognitive tols for open ended learning environmentsCognitive tols for open ended learning environments
Cognitive tols for open ended learning environments
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
การเขียนโปรแกรมภาษา
การเขียนโปรแกรมภาษาการเขียนโปรแกรมภาษา
การเขียนโปรแกรมภาษา
 
Pegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติ
Pegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติPegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติ
Pegagogy-based Hybrid Learning : จากแนวคิดสู่การปฏิบัติ
 
Emerging technology 201704 (1)
Emerging technology 201704 (1)Emerging technology 201704 (1)
Emerging technology 201704 (1)
 
Dc282 interaction
Dc282 interactionDc282 interaction
Dc282 interaction
 
แผนการจัดการเรียนรู้ที่ 7
แผนการจัดการเรียนรู้ที่ 7แผนการจัดการเรียนรู้ที่ 7
แผนการจัดการเรียนรู้ที่ 7
 

More from Pp'dan Phuengkun

งานย่อย1 ร่วมการแข่งขัน
งานย่อย1 ร่วมการแข่งขันงานย่อย1 ร่วมการแข่งขัน
งานย่อย1 ร่วมการแข่งขันPp'dan Phuengkun
 
งานสรุปกลุ่มที่ 5 งานเดี่ยว
งานสรุปกลุ่มที่ 5 งานเดี่ยวงานสรุปกลุ่มที่ 5 งานเดี่ยว
งานสรุปกลุ่มที่ 5 งานเดี่ยวPp'dan Phuengkun
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)
การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)
การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)Pp'dan Phuengkun
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก 1
การเขียนคำสั่งควบคุมแบบมีทางเลือก  1การเขียนคำสั่งควบคุมแบบมีทางเลือก  1
การเขียนคำสั่งควบคุมแบบมีทางเลือก 1Pp'dan Phuengkun
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกPp'dan Phuengkun
 
ยานไร้คนบังคับ
ยานไร้คนบังคับยานไร้คนบังคับ
ยานไร้คนบังคับPp'dan Phuengkun
 
ปกอินเทร์เน็ต
ปกอินเทร์เน็ตปกอินเทร์เน็ต
ปกอินเทร์เน็ตPp'dan Phuengkun
 
อินเทอร์เน็ต
อินเทอร์เน็ตอินเทอร์เน็ต
อินเทอร์เน็ตPp'dan Phuengkun
 
อินเทอร์เน็ต5.1
อินเทอร์เน็ต5.1อินเทอร์เน็ต5.1
อินเทอร์เน็ต5.1Pp'dan Phuengkun
 
อินเทอร์เน็ต
อินเทอร์เน็ตอินเทอร์เน็ต
อินเทอร์เน็ตPp'dan Phuengkun
 

More from Pp'dan Phuengkun (16)

งานย่อย1 ร่วมการแข่งขัน
งานย่อย1 ร่วมการแข่งขันงานย่อย1 ร่วมการแข่งขัน
งานย่อย1 ร่วมการแข่งขัน
 
งานสรุปกลุ่มที่ 5 งานเดี่ยว
งานสรุปกลุ่มที่ 5 งานเดี่ยวงานสรุปกลุ่มที่ 5 งานเดี่ยว
งานสรุปกลุ่มที่ 5 งานเดี่ยว
 
Mindmap2
Mindmap2Mindmap2
Mindmap2
 
Mindmap
MindmapMindmap
Mindmap
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)
การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)
การเขียนคำสั่งควบคุมแบบมีทางเลือก (1)
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก 1
การเขียนคำสั่งควบคุมแบบมีทางเลือก  1การเขียนคำสั่งควบคุมแบบมีทางเลือก  1
การเขียนคำสั่งควบคุมแบบมีทางเลือก 1
 
งานย่อย 1
งานย่อย 1งานย่อย 1
งานย่อย 1
 
Mapcom
MapcomMapcom
Mapcom
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือก
 
ยานไร้คนบังคับ
ยานไร้คนบังคับยานไร้คนบังคับ
ยานไร้คนบังคับ
 
พม่า
พม่าพม่า
พม่า
 
ข าวไอท
ข าวไอท ข าวไอท
ข าวไอท
 
ปกอินเทร์เน็ต
ปกอินเทร์เน็ตปกอินเทร์เน็ต
ปกอินเทร์เน็ต
 
อินเทอร์เน็ต
อินเทอร์เน็ตอินเทอร์เน็ต
อินเทอร์เน็ต
 
อินเทอร์เน็ต5.1
อินเทอร์เน็ต5.1อินเทอร์เน็ต5.1
อินเทอร์เน็ต5.1
 
อินเทอร์เน็ต
อินเทอร์เน็ตอินเทอร์เน็ต
อินเทอร์เน็ต
 

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น

  • 1. การเขี ย น program เชิ ง วัต ถุ (Object-Oriented Programming: OOP) การเขี ย น program แบบ OOP มี ล ัก ษณะ 5 ประการ 1) ทุ ก สิ่ ง ทุ ก อย่า งคื อ object ในแง่ ห นึ่ งเราก็ อ าจตี ค วามว่า object เป็ นตัว แปรที่ มี ค วามพิ เ ศษอยู่ใ นตัว เอง คื อ นอกจากเก็ บ ค่ า ต่ า ง ๆ ได้แ ล้ว เรายัง สามารถที่ จ ะสั่ ง (request) ให้ object ทางาน (operation) ต่ า ง ๆ ที่ เ กี่ ย วกับ ตัว มัน เองด้ว ย 2) Program ประกอบไปด้ว ย object ที่ ต่ า งก็ ส่ ง ข้อ ความ (message) บอกให้กัน และ กัน ว่า ต้อ งทาอะไร การส่ ง message ก็ คื อ การส่ ง request หรื อ การเรี ย กใช้ function ของ object นั้น ๆ 3) Object แต่ ล ะตัว มี ห น่ ว ยความจาที่ เ ต็ม ไปด้ว ย object อื่ น ๆเราสร้ า ง object จาก object ตัว อื่ น ที่ มี อ ยู่แ ล้ว 4) Object มี รู ป แบบ หรื อ ชนิ ด ของตัว เอง (type/class) 5) Object ที่ ต้น ตอมาจาก type แบบเดี ย วกัน สามารถที่ จ ะรั บ ข้อ มู ล ซึ่ งกัน และกัน ได้
  • 2. Object คือ สิ่ งที่มีคุณสมบัติและพฤติกรรมตามทีกาหนดไว้ในคลาส ่ แบ่งได้เป็ น 2 ประเภท คือ 1) สิ่ งที่เป็ นรู ปธรรม (tangible) คือสิ่ งที่เป็ นวัตถุและจับต้องได้อาทิเช่น นักศึกษา ปากกา และรถ เป็ นต้น 2) สิ่ งที่เป็ นนามธรรม (intangible) คือสิ่ งที่ไม่สามารถจับต้องได้อาทิเช่น คะแนน รายชื่อวิชา การลงทะเบียน การฝาก-ถอนเงิน และตารางเที่ยวบิน เป็ นต้น Object ประกอบไปด้ วย 1) คุณลักษณะ (attribute) หรื อข้อมูล (data) 2) เมธอด (method) หรื อพฤติกรรม (behavior) 3) คุณลักษณะ (attribute) หรื อข้อมูล (data) ข้อมูลของ Object แต่ละ Object อาจมี ข้อมูลที่แตกต่างกัน 4) เมธอด (method) หรื อพฤติกรรม (behavior) สิ่ งที่ Object สามารถกระทาได้
  • 3. Class Class หมายถึงโครงสร้างของ object โดย class เป็ นตัวกาหนดว่า object นั้น จะมี data หรื อคุณลักษณะอะไร บ้าง และมี method อะไรบ้าง เปรี ยบเสมือนพิมพ์ เขียว (template) ของออปเจ็ค ออปเจ็คที่ถกสร้างมาจากคลาส (class) บางครั้ง ู เรี ยกว่าเป็ น instance ของคลาส คลาสหนึ่งคลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค Object นั้นจะถูกสร้างขึ้นตามกระบวนการทางานของ JVM โดยที่นกพัฒนาจะต้อง ั ั นิยาม Class ที่ตองการให้กบ JVM ้
  • 4. ตัวอย่ าง คลาส เช่ น คลาส Student อาจสร้างออปเจ็ค s1,s2 หรื อ s3 ซึ่ งเป็ นออปเจ็คของคลาส Student
  • 5. คุณลักษณะเด่ นของการเขียนโปรแกรมเชิงวัตถุ 1) การห่ อหุ้ม (Encapsulation) หมายถึงการจะเรี ยกใช้คุณลักษณะของออปเจ็ค จะทาได้โดยการเรี ยกผ่านเมธอดเท่านั้น หลักการของการห่อหุม คือการกาหนดให้คุณลักษณะของออปเจ็คมีคุณสมบัติเป็ น private และ ้ กาหนดให้เมธอดมีคุณสมบัติเป็ น public โดยมีเมธอด get / set ไว้เพื่อเข้าถึง data นั้นๆ จะเรี ยกว่า class นั้นๆ เป็ น Full Encapsulation class ข้ อดีของการห่ อหุ้ม (Encapsulation) - Flexibility ่ ่ มีความยืดหยุนสูง การใช้งาน method ใน OOP นั้นมีความยืดหยุนสูงกว่าการใช้งาน Data Fields ใน Object โดยตรงๆ - Maintainability การดูแลรักษาง่าย เพราะหากมีการเปลี่ยนแปลงภายใน Object ใดๆ หากว่าส่ วนติดต่อกับ Object ่ อื่นยังคงเดิมแล้ว ก็ยอมไม่ส่งผลกระทบต่องานทั้งระบบ - Information Hiding การซ่อนเร้นข้อมูลทาให้ออปเจ็คสามารถติดต่อกับออปเจ็คภายนอกผ่านเมธอดที่เป็ นส่ วนของ interface เท่านั้น - Modularity การพัฒนาโปรแกรมเชิงวัตถุ จะสามารถกาหนดให้ออปเจ็คแต่ละออปเจ็คมีความเป็ นอิสระต่อกัน
  • 6. 2) การสื บทอด (Inheritance) ่ หมายถึงการนิยามคลาสใหม่จากคลาสที่มีอยูแล้วโดยคลาสใหม่สามารถที่จะนาคุณลักษณะและ เมธอดของคลาสเดิมมาใช้ได้ คือ Class หนึ่งๆสามารถสื บทอดคุณสมบัติบางประการจาก Class อื่น แล้วเพิ่มคุณสมบัติเฉพาะ ของ Class นั้นเข้าไป - Class ที่ได้รับการสื บทอดคุณสมบัติเรี ยกว่า Subclasses - Class ที่เป็ นต้นแบบเรี ยกว่า Superclass เป็ นการช่วยให้ไม่ตองพัฒนา ส่ วนที่ซ้ าหลายๆรอบ (Reusable) ้ Class หนึ่งๆจะมี Superclass ได้เพียง Class เดียวเท่านั้น (Single Inheritance) ในภาษาจาวา จะใช้คียเ์ วิร์ด extends เพือระบุการสื บทอด ่ 3) การมีได้หลายรู ปแบบ (Polymorphism) หมายถึง การที่สามารถตอบสนองต่อข่าวสาร (เมธอด) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถ กาหนดออปเจ็คได้หลายรู ปแบบ - Overridden method - Dynamic Binding
  • 7. การประกาศคลาส โปรแกรมภาษาจาวาแต่ละโปรแกรมจะประกอบไปด้วยคลาสอย่างน้อย หนึ่งคลาส โดยมีรูปแบบ การประกาศ ดังนี้ [modifier] class Classname { [class member] } Modifier คือคียเ์ วิร์ด ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (Access modifier) ่ class คือคียเ์ วิร์ด ของภาษาจาวา เพื่อระบุวาเป็ นการประกาศคลาส Classname คือชื่อคลาส Class member คือเมธอดหรื อคุณลักษณะ
  • 8. การประกาศคุณลักษณะ คุณลักษณะของออปเจ็ค คือตัวแปรหรื อค่าคงที่ซ่ ึ งประกาศภายในออปเจ็ค โดยมีรูปแบบการประกาศดังนี้ [modifier] dataType attributeName; Modifier คือคียเ์ วิร์ดของภาษาจาวาที่อธิบายคุณสมบัติต่างๆ ของตัวแปรหรื อค่าคงที่ dataType คือชนิดข้อมูลซึ่งอาจเป็ นชนิดข้อมูลพื้นฐานหรื อชนิดคลาส attributeName คือชื่อของคุณลักษณะ
  • 9. การประกาศเมธอด ่ ภาษาจาวากาหนดรู ปแบบของการประกาศเมธอดที่อยูในคลาสไว้ดงนี้ ั [modifier] return_type methodName ([argument]) { [method body] } Modifier คือคียเ์ วิร์ด ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (Access modifier) Return_type คือชนิดข้อมูลของค่าที่จะมีการส่ งกลับ methodName คือชื่อของเมธอด Arguments คือตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่ งมาให้ Method body คือคาสังต่างๆ ของภาษาจาวาทีอยูในเมธอด ่ ่ ่
  • 10. การประกาศออปเจ็ค ่ ออปเจ็คทุกออปเจ็คในโปรแกรมภาษาจาวาจะต้องมีคาสังประกาศเพื่อระบุวาออปเจ็คนั้นเป็ น ่ ออปเจ็คของคลาสใด โดยมีรูปแบบการประกาศ ดังนี้ [modifier] ClassName objectName; modifier คือคียเ์ วิร์ดที่อธิบายคุณสมบัติต่างๆของออปเจ็ค ClassName คือชื่อของคลาสสาหรับออปเจ็คนั้น objectName คือชื่อของออปเจ็ค
  • 11. การสร้างออปเจ็ค คาสังที่ใช้ในการสร้างออปเจ็คจะมีรูปแบบ ดังนี้ ่ objectName = new ClassName ([arguments]); objectName คือชื่อของออปเจ็ค new คือคียเ์ วิร์ดของภาษาจาวาเพือใช้ในการสร้างออปเจ็ค ่ ClassName คือชื่อของคลาส Arguments คือค่าที่ตองการส่ งผ่านในการเรี ยก Contructor ้
  • 12. การประกาศและการสร้างออปเจ็ค คาสังที่ใช้ในการประกาศและสร้างออปเจ็ค สามารถที่จะรวมเป็ นคาสังเดียวกัน ่ ่ โดยมีรูปแบบคาสั่ง ดังนี้ [modifier] ClassName objectName = new ClassName ([arguments]); การเรียกใช้สมาชิกของออปเจ็ค การเรี ยกใช้คุณลักษณะของออปเจ็คมีรูปแบบ ดังนี้ objectName.attributeName; การเรี ยกใช้เมธอดของออปเจ็คมีรูปแบบ ดังนี้ objectName.methodName([arguments]); objectName คือชื่อของออปเจ็คที่สร้างขึ้น methodName คือชื่อของเมธอดของออปเจ็คนั้น ั arguments คือค่าที่ตองการส่ งผ่านไปให้กบเมธอดของออปเจ็คนั้น ้
  • 13. ในบางกรณี อาจมีเมธอดใดๆ ที่สามารถรับค่าที่เป็ นตัวแปรได้หลากหลายชนิดได้ ถ้า กาหนดไว้เป็ นเมธอดเดียว อาจทาให้ผลลัพธ์ที่ได้เกิดความผิดพลาดได้ ดังนั้นถ้าชนิดตัวแปรเป็ น คนละชนิดกัน ให้สร้างเมธอดขึ้นมาใหม่ โดยใช้ชื่อเมธอดเดียวกัน แต่สร้างให้เมธอด มีชนิดของ ตัวแปรใน parameter list ต่างกัน โดยจะสร้างเมธอดใหม่ ขึ้นมาเป็ นจานวนเท่ากับชนิดของตัว แปรที่เป็ นไปได้ เมื่อมีการใช้เมธอด ชื่อนี้โปรแกรมจะเรี ยกเมธอดที่มีชนิดของตัวแปร ตรงกับที่ ่ ่ ต้องการโดยอัตโนมัติ เรี ยกวิธีการนี้วา “Overloading” และเรี ยกเมธอดที่ใช้วธีการนี้วา ิ “Overloading Methods”
  • 14. ตัวอย่างโปรแกรม public class TestOverloading { public static void main(String[] args) { System.out.println("The maximum between is " + max(3,5)); System.out.println("The maximum between is " + max(4.5,6.8)); } static double max(double num1,double num2) { if(num1>num2) return num1; else return num2; } static int max(int num1,int num2) { if(num1>num2) return num1; else return num2; } } //class TestOverloading