SlideShare a Scribd company logo
1 of 19
คลาสและการเขียนโปรแกรม
เชิงวัตถุเบื้องต้น
ความหมายของoop
การเขียนโปรแกรมเชิงวัตถุ (อังกฤษ: Object-oriented
programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรม
คอมพิวเตอร์ ที่ให้ความสาคัญกับ วัตถุ ซึ่งสามารถนามาประกอบ
กันและนามาทางานรวมกันได้โดยการแลกเปลี่ยนข่าวสารเพื่อ
นามาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้อง
เพื่อให้ทางานต่อไป
คลาสและออบเจ็กต์
การเขียน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 แบบเดียวกันสามารถที่จะรับข้อมูลซึ่งกันและกันได้1
Object
– Object คือ สิ่งที่มีคุณสมบัติและพฤติกรรมตามที่กาหนดไว้ในคลาส
– ออบเจ็กต์(object) แบ่งได้เป็นสองประเภท คือ
1) สิ่งที่เป็นรูปธรรม (tangible) คือสิ่งที่เป็นวัตถุและจับต้องได้อาทิเช่น
นักศึกษา ปากกา และรถ เป็นต้น
2) สิ่งที่เป็นนามธรรม (intangible) คือสิ่งที่ไม่สามารถจับต้องได้อาทิเช่น
คะแนนรายชื่อวิชา การลงทะเบียน การฝาก-ถอนเงิน และตารางเที่ยวบิน
เป็นต้น
Objectประกอบไป
ด้วย
1) คุณลักษณะ (attribute) หรือข้อมูล (data)2) เมธอด (method)
หรือพฤติกรรม (behavior)3) คุณลักษณะ (attribute) หรือข้อมูล (data) ข้อมูล
ของ Object แต่ละ Object อาจมีข้อมูลที่แตกต่างกัน4) เมธอด (method) หรือ
พฤติกรรม (behavior) สิ่งที่ Object สามารถกระทาได้
ตัวอย่าง ออบเจ็กต์ คือ– นักศึกษา
ประกอบไปด้วยคุณลักษณะเช่น รหัส ชื่อ และเกรดเฉลี่ยมีเมธอดเช่น
ลงทะเบียน การสอบ และการเรียน
 รถยนต์ประกอบไปด้วยคุณลักษณะเช่น ยี่ห้อ รุ่น และสีมีเมธอดเช่น
เคลื่อนที่ หยุดและเลี้ยว
 สุนัขประกอบไปด้วยคุณลักษณะเช่น ชื่อ พันธุ์ และสีมีเมธอดเช่น เห่า
คลาน และกระดิกหาง
2. Class – Class หมายถึงโครงสร้างของ object โดย class เป็น
ตัวกาหนดว่า object นั้นจะมี data หรือคุณลักษณะอะไร บ้าง และมี method
อะไรบ้าง เปรียบเสมือนพิมพ์เขียว (template) ของออปเจ็ค – ออปเจ็คที่ถูก
สร้างมาจากคลาส (class) บางครั้งเรียกว่าเป็น instance ของคลาสคลาสหนึ่ง
คลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค – Object นั้นจะถูกสร้างขึ้นตาม
กระบวนการทางานของ JVM โดยที่นักพัฒนาจะต้องนิยาม Class ที่ต้องการ
ให้กับ JVM
ตัวอย่าง คลาส เช่น คลาส Student อาจสร้างออปเจ็คs1,s2 หรือ s3 ซึ่งเป็น
ออปเจ็คของคลาส Student
ตัวอย่างคลาสและ
ออบเจ็กต์
Static
 ตัวแปรและเมท็อดที่เป็น static
 คีย์เวิร์ด static เป็นคีย์เวิร์ดที่ใช้ประกาศหน้าตัวแปรและเมท็อด ความพิเศษ
ของ static คือว่าโดยปกติเวลาจะสร้างอ็อปเจ็คต้องทาการ new อ็อปเจ็คขึ้นมา
ตัวแปรอ็อปเจ็คก็จะอ้างอิงไปที่อ็อปเจ็คที่สร้างขึ้น แล้วก็เอาตัวแปรนี้ไป
เรียกใช้ตัวแปร ใช้เมท็อด แต่ถ้าตัวแปรหรือเมท็อดนั้นเป็น static ก็จะทาให้
สามารถใช้ตัวแปรหรือเมท็อดนั้นได้เลยโดยไม่ต้องสร้างอ็อปเจ็คมาเรียกใช้
งาน
 สาหรับตัวแปรที่เป็น static นั้น จะทาให้ตัวแปรนั้นเป็นตัวแปรของคลาส
ไม่ได้เป็นของอ็อปเจ็คใดอ็อปเจ็คหนึ่ง ถ้ามีการเปลี่ยนแปลงขึ้นกับตัวแปร
static อ็อปเจ็คอื่นๆทั้งหมดจะมองเห็นการเปลี่ยนแปลง
วิธีประกาศ
• สาหรับตัวแปร modifier static ชนิดตัวแปร ชื่อตัวแปร ;
• สาหรับเมท็อด modifier static ประเภทผลลัพธ์ ชื่อเมท็อด( ) { }
• วิธีการเรียกใช้งานเมท็อดที่เป็น static ถ้าอยู่ในคลาสเดียวกันก็ ชื่อ เมท็
อด(); แบบนี้ได้เลย แต่ถ้าอยู่คนละคลาสก็ ใช่ ชื่อคลาส.ชื่อเมท็อด static
• เมท็อดที่เป็น static ที่ได้ใช้มาแล้วก็คือ เมท็อด main ใน public static void
main(String [] args) เพราะว่า main เป็นเมท็อดสาหรับเริ่มทางาน ดังนั้น
ต้องสามารถทางานได้เลยโดยไม่ต้องมีอ็อปเจ็คมาเรียกใช้งาน
 เมท็อดชื่อ f ในบรรทัดที่ 17 ประกาศเป็น เมท็อด static ดังนั้นในบรรทัดที่
12 สามารถเรียกใช้เมท็อด f ได้เลย แต่บรรทัดที่ 13 มีการเรียกใช้เมท็อด
printlnซึ่งอยู่ในคลาส System ก็ต้องใช้งานแบบ ชื่อคลาส.เมท็อด
สังเกตว่าเมื่อเอาคาว่า static ออกในบรรทัดที่ 17 จะเกิด error ขึ้น
ทันทีที่บรรทัดที่ 12 ที่เรียกเมท็อด
ตัวแปร เมท็อดและคลาสที่เป็น final
 คล้ายกับ static คีย์เวิร์ด final ใช้ประกาศหน้าตัวแปร เมท็อดและยัง
ประกาศหน้าคลาสได้ด้วย
 ถ้า final ไปประกาศหน้าตัวแปร ตัวแปรนั้นจะมีค่านั้นตลอดเปลี่ยนแปลง
ไม่ได้เรียกว่าเป็นค่าคงที่
 ถ้าอยู่หน้าเมท็อดแล้วคลาสนี้ถูกสืบคุณสมบัติไป เมท็อดนี้จะไม่สามารถ
เขียนทับแก้ไขได้หรือก็คือไม่สามารถ Overriding ได้
แต่ถ้าอยู่คลาส คลาสนั้นๆจะไม่สามารถเป็นคลาสแม่ได้เลย คือบางทีไม่
ต้องการให้คนเอาอะไรเปลี่ยนทั้งนั้นก็ประกาศคลาสเป็น final เพราะบางที
ประกาศเมท็อดเป็น final คลาสลูกก็เขียนเมท็อดใหม่ขึ้นมาได้ เช่น เราไม่
ต้องการเขาเปลี่ยนชื่อ เขาก็เขียนเมท็อดสาหรับเปลี่ยนชื่อใหม่ได้
วิธีประกาศ
• สาหรับตัวแปร final ชนิดตัวแปร ชื่อตัวแปร = ค่าคงที่ ;
• สาหรับเมท็อด modifier final ประเภทผลลัพธ์ ชื่อเมท็อด( ) { }
• สาหรับคลาส modifier final class ชื่อคลาส{ }
Constructors
คือเมธอดพิเศษ ทาหน้าที่กาหนดการทางานต่างๆให้กับออบเจกต์ใหม่ที่
เกิดขึ้นจากคาสั่ง new ทันทีโดยอัตโนมัติ หากไม่กาหนดคอนสตรักเตอร์ ตัว
แปลภาษา C# จะสร้างคอนสตรักเตอร์พื้นฐาน (default constructor) ให้เอง
ตัวอย่างต่อไปนี้คือ คอนสตรักเตอร์พื้นฐาน ของคลาส Product public Product()
{ } ตัวอย่างการเรียกใช้default constructor
การส่งออบเจ็กต์ไปยังเมท็อด
ในการเขียนโปรแกรมที่มีการสร้างคลาสขึ้นมาหลายๆคลาสนั้น
ออบเจ็กต์ของคลาสหนึ่งสามารถใช้เป็นอาร์กิวเมนต์เพื่อส่งผ่านไปยังเมธอดของ
คลาสอีกคลาสหนึ่งได้
เช่นโปรแกรม Student.Javaเป็นโปรแกรมคลาสสาหรับเก็บข้อมูลนักเรียนได้แก่
ซื่อและอีเมลล์โดยมีเมท็อดสาหรับกาหนดและเรียกดูชื่อและอีเมลล์สาหรับใช้งาน
public class Student3 {
private String name;
private String email;
public Student3() {
name = “Unassigned”;
email = “Unassigned”;
}
public String getEmail(){
return email;
}
public String getName(){
return name;
}
public void setEmail(Stringaddress){
email = address;
}
public void setName(String studentName){
name = studentName;
}
}
ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ
เป็นการออกแบบคลาสแล้วนามาเขียนโปรแกรมประยุกต์สาหรับ
ใช้งานจริง โดยอธิบายขั้นตอนสาคัญในการทางานแต่ละขั้นตอน โดยมี
โปรแกรมตัวอย่างการเขียนโปรแกรมสาหรับเข้ารหัสข้อมูลโดยส่งข้อมูล
ผ่านเข้าไปในเครือข่ายคอมพิวเตอร์ เพื่อความปลอดภัยได้นาเทคโนโลยีการ
เข้ารหัสมาใช้ ทาโดยการเลื่อนข้อมูล แต่ถ้าเป็นตัวอักขระตัวสุดท้ายของ
ภาษาอังกฤษการเลื่อนข้อมูลจะกลับมาเริ่มต้นที่ตัวแรกใหม่
ถ้าหากเป็น 2-shift ข้อมูลจะแทนได้ดังนี้
A แทนด้วย C
B แทนด้วย D
Y แทนด้วย A
Z แทนด้วย B
ถ้าข้อมูลต้นฉบับเป็น “DIZZY” แล้วเข้ารหัสแบบ 2- shift ข้อมูลที่เข้ารหัส
แล้วจะเป็น “FKBBA”
ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ
อธิบายการทางานของโปรแกรม
1. หากพิมพ์คาว่า Teerawut ลงไป จะทาให้ตัวแปร message ชี้ไปยัง
ออบเจ็กต์สตริง “Teerawut”
2. ต่อมาถ้าหากกดคีย์ตัวเลข 5 ลงไป จะทาให้ตัวแปร shift มีค่าเป็น 5
3. เมื่อโปรแกรมเรียกใช้เมท็อด encrypt จะทาให้ msg ซึ่งเป็นพารามิเตอร์
ของเมท็อดชี้ไปยังออบเจ็กต์เดียวกับ message และพารามิเตอร์ shift มี
ค่าเป็น 5 เช่นกัน
4. เมื่อเมท็อด encrypt ทางาน ทาให้ตัวแปร encrypted Message ชี้ไปยัง
หน่อยความจาออบเจ็กต์สตริงที่สร้างขึ้นมาใหม่
5. จากนั้นจะทาให้ตัวแปร msg ชี้ไปยังสตริงชุดใหม่ที่ผ่านการเข้ารหัส
แล้ว
6. หลังจากนั้นจะให้ encryptedMessage มีค่าสตริงที่เข้ารหัสแล้ว
ตัวอย่างโปรแกรม จะแสดงการสร้างคลาสของการนาตัวอักขระ [] มาสร้าง
เป็นรูปสามเหลี่ยม โดยการสร้างคลาสสามารถทาได้ดังต่อไปนี้
1. สร้างโปรเจ็กต์ใหม่
2. สร้างคลาสใหม่ โดยเลือกเมนู New>Class
3. กาหนดชื่อคลาส แล้วกด Next
4. โปรแกรมจะแสดงคลาสใหม่ขึ้นมา
5. จากนั้นให้เติมโค้ด แล้วรันโปรแกรม
สมาชิก
นางสาวนายณัฐพงศ์ กือเย็น ชั้น ม.6/2 เลขที่ 3
นางสาวสิริวรรณ คาเตจ๊ะ ชั้น ม.6/2 เลขที่ 19
นางสาวเบญจรัตน์ ศรอารา ชั้น ม.6/2 เลขที่ 29
นาวสาวกนกวรรณ ลัดดากุล ชั้น ม.6/2 เลขที่ 31
นางสาวสโรชา บุญช่วย ชั้น ม.6/2 เลขที่ 33
นางสาวเพ็ญพิชชา เทียนชัย ชั้น ม.6/2 เลขที่ 35

More Related Content

What's hot

การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีchoco336
 
ภาษา C
ภาษา Cภาษา C
ภาษา C0872671746
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา CWarawut
 
โครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีโครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีณัฐพล บัวพันธ์
 
บทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซีบทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซีNattawut Kathaisong
 
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลีบทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลีNattawut Kathaisong
 

What's hot (20)

Php beginner
Php beginnerPhp beginner
Php beginner
 
C lu
C luC lu
C lu
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล
 
ภาษา C
ภาษา Cภาษา C
ภาษา C
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา C
 
Lab Computer Programming 1
Lab Computer Programming 1Lab Computer Programming 1
Lab Computer Programming 1
 
ตัวแปรและคำสงวน
ตัวแปรและคำสงวนตัวแปรและคำสงวน
ตัวแปรและคำสงวน
 
โครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีโครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซี
 
3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล
 
3.6 ฟังก์ชัน
3.6 ฟังก์ชัน3.6 ฟังก์ชัน
3.6 ฟังก์ชัน
 
บทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซีบทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซี
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี
 
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลีบทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
 
การเขียนโปรแกรมภาษา
การเขียนโปรแกรมภาษาการเขียนโปรแกรมภาษา
การเขียนโปรแกรมภาษา
 
lesson5 JSP
lesson5 JSPlesson5 JSP
lesson5 JSP
 
โครงสร้างการเขียนโปรแกรมภาษาไพธอน
โครงสร้างการเขียนโปรแกรมภาษาไพธอนโครงสร้างการเขียนโปรแกรมภาษาไพธอน
โครงสร้างการเขียนโปรแกรมภาษาไพธอน
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 

Viewers also liked

5_Group General knowledge quiz
5_Group General knowledge quiz5_Group General knowledge quiz
5_Group General knowledge quizNguyen Pham
 
OPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 versionOPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 versionchelseymerdita
 
บทที่1 ขยะท่วมโลก
บทที่1 ขยะท่วมโลกบทที่1 ขยะท่วมโลก
บทที่1 ขยะท่วมโลกfee fern
 
Computadora Personal
Computadora PersonalComputadora Personal
Computadora PersonalAli Palacio
 
презентация "Жанри живопису"
презентация "Жанри живопису"презентация "Жанри живопису"
презентация "Жанри живопису"ekaterinapronoza
 
IS โครงการจิตอาสาพัฒนาวัดบ้านเรา
IS โครงการจิตอาสาพัฒนาวัดบ้านเราIS โครงการจิตอาสาพัฒนาวัดบ้านเรา
IS โครงการจิตอาสาพัฒนาวัดบ้านเราIam Champooh
 

Viewers also liked (11)

Childrens Eye Care
Childrens Eye CareChildrens Eye Care
Childrens Eye Care
 
Trailer analysis 2
Trailer analysis 2Trailer analysis 2
Trailer analysis 2
 
5_Group General knowledge quiz
5_Group General knowledge quiz5_Group General knowledge quiz
5_Group General knowledge quiz
 
WALI SOOMRO
WALI SOOMROWALI SOOMRO
WALI SOOMRO
 
OPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 versionOPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 version
 
Diploma_Digital 101
Diploma_Digital 101Diploma_Digital 101
Diploma_Digital 101
 
บทที่1 ขยะท่วมโลก
บทที่1 ขยะท่วมโลกบทที่1 ขยะท่วมโลก
บทที่1 ขยะท่วมโลก
 
บทคัดย่อ
บทคัดย่อบทคัดย่อ
บทคัดย่อ
 
Computadora Personal
Computadora PersonalComputadora Personal
Computadora Personal
 
презентация "Жанри живопису"
презентация "Жанри живопису"презентация "Жанри живопису"
презентация "Жанри живопису"
 
IS โครงการจิตอาสาพัฒนาวัดบ้านเรา
IS โครงการจิตอาสาพัฒนาวัดบ้านเราIS โครงการจิตอาสาพัฒนาวัดบ้านเรา
IS โครงการจิตอาสาพัฒนาวัดบ้านเรา
 

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

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2Iam Champooh
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นParn Nichakorn
 
คลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุคลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุBoOm mm
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาwinewic199
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2winewic199
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นDararat Worasut
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2winewic199
 
ความหมายของโปรแกรมคอมพิวเตอร์
ความหมายของโปรแกรมคอมพิวเตอร์ความหมายของโปรแกรมคอมพิวเตอร์
ความหมายของโปรแกรมคอมพิวเตอร์Onrutai Intanin
 
หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1SubLt Masu
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Thank Chiro
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0Theeravaj Tum
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีchoco336
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีchoco336
 

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

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น2
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
คลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุคลาสและการเขียนโปรแกรมเชิงวัตถุ
คลาสและการเขียนโปรแกรมเชิงวัตถุ
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
ภาษาซี
ภาษาซีภาษาซี
ภาษาซี
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
 
Pbl2
Pbl2Pbl2
Pbl2
 
ความหมายของโปรแกรมคอมพิวเตอร์
ความหมายของโปรแกรมคอมพิวเตอร์ความหมายของโปรแกรมคอมพิวเตอร์
ความหมายของโปรแกรมคอมพิวเตอร์
 
3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน
 
หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 

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

  • 2. ความหมายของoop การเขียนโปรแกรมเชิงวัตถุ (อังกฤษ: Object-oriented programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรม คอมพิวเตอร์ ที่ให้ความสาคัญกับ วัตถุ ซึ่งสามารถนามาประกอบ กันและนามาทางานรวมกันได้โดยการแลกเปลี่ยนข่าวสารเพื่อ นามาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้อง เพื่อให้ทางานต่อไป
  • 3.
  • 4. คลาสและออบเจ็กต์ การเขียน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 แบบเดียวกันสามารถที่จะรับข้อมูลซึ่งกันและกันได้1 Object
  • 5. – Object คือ สิ่งที่มีคุณสมบัติและพฤติกรรมตามที่กาหนดไว้ในคลาส – ออบเจ็กต์(object) แบ่งได้เป็นสองประเภท คือ 1) สิ่งที่เป็นรูปธรรม (tangible) คือสิ่งที่เป็นวัตถุและจับต้องได้อาทิเช่น นักศึกษา ปากกา และรถ เป็นต้น 2) สิ่งที่เป็นนามธรรม (intangible) คือสิ่งที่ไม่สามารถจับต้องได้อาทิเช่น คะแนนรายชื่อวิชา การลงทะเบียน การฝาก-ถอนเงิน และตารางเที่ยวบิน เป็นต้น
  • 6. Objectประกอบไป ด้วย 1) คุณลักษณะ (attribute) หรือข้อมูล (data)2) เมธอด (method) หรือพฤติกรรม (behavior)3) คุณลักษณะ (attribute) หรือข้อมูล (data) ข้อมูล ของ Object แต่ละ Object อาจมีข้อมูลที่แตกต่างกัน4) เมธอด (method) หรือ พฤติกรรม (behavior) สิ่งที่ Object สามารถกระทาได้ ตัวอย่าง ออบเจ็กต์ คือ– นักศึกษา ประกอบไปด้วยคุณลักษณะเช่น รหัส ชื่อ และเกรดเฉลี่ยมีเมธอดเช่น ลงทะเบียน การสอบ และการเรียน  รถยนต์ประกอบไปด้วยคุณลักษณะเช่น ยี่ห้อ รุ่น และสีมีเมธอดเช่น เคลื่อนที่ หยุดและเลี้ยว  สุนัขประกอบไปด้วยคุณลักษณะเช่น ชื่อ พันธุ์ และสีมีเมธอดเช่น เห่า คลาน และกระดิกหาง
  • 7. 2. Class – Class หมายถึงโครงสร้างของ object โดย class เป็น ตัวกาหนดว่า object นั้นจะมี data หรือคุณลักษณะอะไร บ้าง และมี method อะไรบ้าง เปรียบเสมือนพิมพ์เขียว (template) ของออปเจ็ค – ออปเจ็คที่ถูก สร้างมาจากคลาส (class) บางครั้งเรียกว่าเป็น instance ของคลาสคลาสหนึ่ง คลาสสามารถสร้างออปเจ็คได้หลายออปเจ็ค – Object นั้นจะถูกสร้างขึ้นตาม กระบวนการทางานของ JVM โดยที่นักพัฒนาจะต้องนิยาม Class ที่ต้องการ ให้กับ JVM ตัวอย่าง คลาส เช่น คลาส Student อาจสร้างออปเจ็คs1,s2 หรือ s3 ซึ่งเป็น ออปเจ็คของคลาส Student
  • 8.
  • 9. ตัวอย่างคลาสและ ออบเจ็กต์ Static  ตัวแปรและเมท็อดที่เป็น static  คีย์เวิร์ด static เป็นคีย์เวิร์ดที่ใช้ประกาศหน้าตัวแปรและเมท็อด ความพิเศษ ของ static คือว่าโดยปกติเวลาจะสร้างอ็อปเจ็คต้องทาการ new อ็อปเจ็คขึ้นมา ตัวแปรอ็อปเจ็คก็จะอ้างอิงไปที่อ็อปเจ็คที่สร้างขึ้น แล้วก็เอาตัวแปรนี้ไป เรียกใช้ตัวแปร ใช้เมท็อด แต่ถ้าตัวแปรหรือเมท็อดนั้นเป็น static ก็จะทาให้ สามารถใช้ตัวแปรหรือเมท็อดนั้นได้เลยโดยไม่ต้องสร้างอ็อปเจ็คมาเรียกใช้ งาน  สาหรับตัวแปรที่เป็น static นั้น จะทาให้ตัวแปรนั้นเป็นตัวแปรของคลาส ไม่ได้เป็นของอ็อปเจ็คใดอ็อปเจ็คหนึ่ง ถ้ามีการเปลี่ยนแปลงขึ้นกับตัวแปร static อ็อปเจ็คอื่นๆทั้งหมดจะมองเห็นการเปลี่ยนแปลง
  • 10. วิธีประกาศ • สาหรับตัวแปร modifier static ชนิดตัวแปร ชื่อตัวแปร ; • สาหรับเมท็อด modifier static ประเภทผลลัพธ์ ชื่อเมท็อด( ) { } • วิธีการเรียกใช้งานเมท็อดที่เป็น static ถ้าอยู่ในคลาสเดียวกันก็ ชื่อ เมท็ อด(); แบบนี้ได้เลย แต่ถ้าอยู่คนละคลาสก็ ใช่ ชื่อคลาส.ชื่อเมท็อด static • เมท็อดที่เป็น static ที่ได้ใช้มาแล้วก็คือ เมท็อด main ใน public static void main(String [] args) เพราะว่า main เป็นเมท็อดสาหรับเริ่มทางาน ดังนั้น ต้องสามารถทางานได้เลยโดยไม่ต้องมีอ็อปเจ็คมาเรียกใช้งาน
  • 11.  เมท็อดชื่อ f ในบรรทัดที่ 17 ประกาศเป็น เมท็อด static ดังนั้นในบรรทัดที่ 12 สามารถเรียกใช้เมท็อด f ได้เลย แต่บรรทัดที่ 13 มีการเรียกใช้เมท็อด printlnซึ่งอยู่ในคลาส System ก็ต้องใช้งานแบบ ชื่อคลาส.เมท็อด สังเกตว่าเมื่อเอาคาว่า static ออกในบรรทัดที่ 17 จะเกิด error ขึ้น ทันทีที่บรรทัดที่ 12 ที่เรียกเมท็อด
  • 12. ตัวแปร เมท็อดและคลาสที่เป็น final  คล้ายกับ static คีย์เวิร์ด final ใช้ประกาศหน้าตัวแปร เมท็อดและยัง ประกาศหน้าคลาสได้ด้วย  ถ้า final ไปประกาศหน้าตัวแปร ตัวแปรนั้นจะมีค่านั้นตลอดเปลี่ยนแปลง ไม่ได้เรียกว่าเป็นค่าคงที่  ถ้าอยู่หน้าเมท็อดแล้วคลาสนี้ถูกสืบคุณสมบัติไป เมท็อดนี้จะไม่สามารถ เขียนทับแก้ไขได้หรือก็คือไม่สามารถ Overriding ได้ แต่ถ้าอยู่คลาส คลาสนั้นๆจะไม่สามารถเป็นคลาสแม่ได้เลย คือบางทีไม่ ต้องการให้คนเอาอะไรเปลี่ยนทั้งนั้นก็ประกาศคลาสเป็น final เพราะบางที ประกาศเมท็อดเป็น final คลาสลูกก็เขียนเมท็อดใหม่ขึ้นมาได้ เช่น เราไม่ ต้องการเขาเปลี่ยนชื่อ เขาก็เขียนเมท็อดสาหรับเปลี่ยนชื่อใหม่ได้
  • 13. วิธีประกาศ • สาหรับตัวแปร final ชนิดตัวแปร ชื่อตัวแปร = ค่าคงที่ ; • สาหรับเมท็อด modifier final ประเภทผลลัพธ์ ชื่อเมท็อด( ) { } • สาหรับคลาส modifier final class ชื่อคลาส{ }
  • 14. Constructors คือเมธอดพิเศษ ทาหน้าที่กาหนดการทางานต่างๆให้กับออบเจกต์ใหม่ที่ เกิดขึ้นจากคาสั่ง new ทันทีโดยอัตโนมัติ หากไม่กาหนดคอนสตรักเตอร์ ตัว แปลภาษา C# จะสร้างคอนสตรักเตอร์พื้นฐาน (default constructor) ให้เอง ตัวอย่างต่อไปนี้คือ คอนสตรักเตอร์พื้นฐาน ของคลาส Product public Product() { } ตัวอย่างการเรียกใช้default constructor การส่งออบเจ็กต์ไปยังเมท็อด ในการเขียนโปรแกรมที่มีการสร้างคลาสขึ้นมาหลายๆคลาสนั้น ออบเจ็กต์ของคลาสหนึ่งสามารถใช้เป็นอาร์กิวเมนต์เพื่อส่งผ่านไปยังเมธอดของ คลาสอีกคลาสหนึ่งได้ เช่นโปรแกรม Student.Javaเป็นโปรแกรมคลาสสาหรับเก็บข้อมูลนักเรียนได้แก่ ซื่อและอีเมลล์โดยมีเมท็อดสาหรับกาหนดและเรียกดูชื่อและอีเมลล์สาหรับใช้งาน
  • 15. public class Student3 { private String name; private String email; public Student3() { name = “Unassigned”; email = “Unassigned”; } public String getEmail(){ return email; } public String getName(){ return name; } public void setEmail(Stringaddress){ email = address; } public void setName(String studentName){ name = studentName; } }
  • 16. ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ เป็นการออกแบบคลาสแล้วนามาเขียนโปรแกรมประยุกต์สาหรับ ใช้งานจริง โดยอธิบายขั้นตอนสาคัญในการทางานแต่ละขั้นตอน โดยมี โปรแกรมตัวอย่างการเขียนโปรแกรมสาหรับเข้ารหัสข้อมูลโดยส่งข้อมูล ผ่านเข้าไปในเครือข่ายคอมพิวเตอร์ เพื่อความปลอดภัยได้นาเทคโนโลยีการ เข้ารหัสมาใช้ ทาโดยการเลื่อนข้อมูล แต่ถ้าเป็นตัวอักขระตัวสุดท้ายของ ภาษาอังกฤษการเลื่อนข้อมูลจะกลับมาเริ่มต้นที่ตัวแรกใหม่ ถ้าหากเป็น 2-shift ข้อมูลจะแทนได้ดังนี้ A แทนด้วย C B แทนด้วย D Y แทนด้วย A Z แทนด้วย B ถ้าข้อมูลต้นฉบับเป็น “DIZZY” แล้วเข้ารหัสแบบ 2- shift ข้อมูลที่เข้ารหัส แล้วจะเป็น “FKBBA”
  • 17. ตัวอย่างการประยุกต์การเขียนโปรแกรมเชิงวัตถุ อธิบายการทางานของโปรแกรม 1. หากพิมพ์คาว่า Teerawut ลงไป จะทาให้ตัวแปร message ชี้ไปยัง ออบเจ็กต์สตริง “Teerawut” 2. ต่อมาถ้าหากกดคีย์ตัวเลข 5 ลงไป จะทาให้ตัวแปร shift มีค่าเป็น 5 3. เมื่อโปรแกรมเรียกใช้เมท็อด encrypt จะทาให้ msg ซึ่งเป็นพารามิเตอร์ ของเมท็อดชี้ไปยังออบเจ็กต์เดียวกับ message และพารามิเตอร์ shift มี ค่าเป็น 5 เช่นกัน 4. เมื่อเมท็อด encrypt ทางาน ทาให้ตัวแปร encrypted Message ชี้ไปยัง หน่อยความจาออบเจ็กต์สตริงที่สร้างขึ้นมาใหม่ 5. จากนั้นจะทาให้ตัวแปร msg ชี้ไปยังสตริงชุดใหม่ที่ผ่านการเข้ารหัส แล้ว 6. หลังจากนั้นจะให้ encryptedMessage มีค่าสตริงที่เข้ารหัสแล้ว
  • 18. ตัวอย่างโปรแกรม จะแสดงการสร้างคลาสของการนาตัวอักขระ [] มาสร้าง เป็นรูปสามเหลี่ยม โดยการสร้างคลาสสามารถทาได้ดังต่อไปนี้ 1. สร้างโปรเจ็กต์ใหม่ 2. สร้างคลาสใหม่ โดยเลือกเมนู New>Class 3. กาหนดชื่อคลาส แล้วกด Next 4. โปรแกรมจะแสดงคลาสใหม่ขึ้นมา 5. จากนั้นให้เติมโค้ด แล้วรันโปรแกรม
  • 19. สมาชิก นางสาวนายณัฐพงศ์ กือเย็น ชั้น ม.6/2 เลขที่ 3 นางสาวสิริวรรณ คาเตจ๊ะ ชั้น ม.6/2 เลขที่ 19 นางสาวเบญจรัตน์ ศรอารา ชั้น ม.6/2 เลขที่ 29 นาวสาวกนกวรรณ ลัดดากุล ชั้น ม.6/2 เลขที่ 31 นางสาวสโรชา บุญช่วย ชั้น ม.6/2 เลขที่ 33 นางสาวเพ็ญพิชชา เทียนชัย ชั้น ม.6/2 เลขที่ 35