ݺߣ

ݺߣShare a Scribd company logo
คลาสและการเขียนโปรแกรม
เชิงวัตถุเบื้องต้น
ความหมายของoop
การเขียนโปรแกรมเชิงวัตถุ (อังกฤษ: Object-oriented
programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรม
คอมพิวเตอร์ ที่ให้ความสาคัญกับ วัตถุ ซึ่งสามารถนามาประกอบ
กันและนามาทางานรวมกันได้โดยการแลกเปลี่ยนข่าวสารเพื่อ
นามาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้อง
เพื่อให้ทางานต่อไป
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น 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 แบบเดียวกันสามารถที่จะรับข้อมูลซึ่งกันและกันได้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
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น 1
ตัวอย่างคลาสและ
ออบเจ็กต์
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 (20)

การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
ภาษา C
ภาษา Cภาษา C
ภาษา C
0872671746
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา C
Warawut
Lab Computer Programming 1
Lab Computer Programming 1Lab Computer Programming 1
Lab Computer Programming 1
Saranyu Srisrontong
โครงสร้างྺองโปรแกรมภาษาซี
โครงสร้างྺองโปรแกรมภาษาซีโครงสร้างྺองโปรแกรมภาษาซี
โครงสร้างྺองโปรแกรมภาษาซี
ณัฐพล บัวพันธ์
3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล
รัสนา สิงหปรีชา
บทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซีบทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซี
Nattawut Kathaisong
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
ictyangtalad
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลีบทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
Nattawut Kathaisong
การเขียนโปรแกรมภาษา
การเขียนโปรแกรมภาษาการเขียนโปรแกรมภาษา
การเขียนโปรแกรมภาษา
ณัฐพล บัวพันธ์
โครงสร้างการ๶ขียนโปรแกรมภาษาไพธอน
โครงสร้างการ๶ขียนโปรแกรมภาษาไพธอนโครงสร้างการ๶ขียนโปรแกรมภาษาไพธอน
โครงสร้างการ๶ขียนโปรแกรมภาษาไพธอน
srinagarindra the princess mother school kanchanaburi
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา C
Warawut
บทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซีบทที่ 5 พื้นฐานภาษาซี
บทที่ 5 พื้นฐานภาษาซี
Nattawut Kathaisong
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลีบทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
บทที่ 4 การเขียนโปรแกรมภาษาแอสแซมบลี
Nattawut Kathaisong

Viewers also liked (17)

Año de la consolidacion del mar de grauAño de la consolidacion del mar de grau
Año de la consolidacion del mar de grau
marilyn cali
Resistance genes retain a vital role in the face of climate change
Resistance genes retain a vital role in the face of climate changeResistance genes retain a vital role in the face of climate change
Resistance genes retain a vital role in the face of climate change
ICRISAT
EstadisticaEstadistica
Estadistica
Richard Wilcamango Salas
Etude Match Crossmedia Amaury MindShareEtude Match Crossmedia Amaury MindShare
Etude Match Crossmedia Amaury MindShare
MindShare Paris
160519 front til linkedin
160519 front til linkedin160519 front til linkedin
160519 front til linkedin
Michael Roediger
DawnMartin_generalCV_2016
DawnMartin_generalCV_2016DawnMartin_generalCV_2016
DawnMartin_generalCV_2016
Dawn Martin
la web 2.0la web 2.0
la web 2.0
fitolatorre
Augustin 2016
Augustin 2016Augustin 2016
Augustin 2016
olekrisa
Digital Women Digital Women
Digital Women
Coopérative R2K
Lahore Gates
Lahore GatesLahore Gates
Lahore Gates
Irzam Kashmiri
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้นคลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น
Finian Nian
ประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิด
ประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิดประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิด
ประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิด
Chacrit Sitdhiwej
Chronic Depression
Chronic DepressionChronic Depression
Chronic Depression
guavapotter
Año de la consolidacion del mar de grauAño de la consolidacion del mar de grau
Año de la consolidacion del mar de grau
marilyn cali
Resistance genes retain a vital role in the face of climate change
Resistance genes retain a vital role in the face of climate changeResistance genes retain a vital role in the face of climate change
Resistance genes retain a vital role in the face of climate change
ICRISAT
Etude Match Crossmedia Amaury MindShareEtude Match Crossmedia Amaury MindShare
Etude Match Crossmedia Amaury MindShare
MindShare Paris
DawnMartin_generalCV_2016
DawnMartin_generalCV_2016DawnMartin_generalCV_2016
DawnMartin_generalCV_2016
Dawn Martin
la web 2.0la web 2.0
la web 2.0
fitolatorre
Digital Women Digital Women
Digital Women
Coopérative R2K
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้นคลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น
คลาสและการ๶ขียนโปรแกรมเชิงวัตถุ๶บื้องต้น
Finian Nian
ประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิด
ประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิดประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิด
ประมวลกฎหมายแพ่งและพาณิชย์ ลักษณะละเมิด
Chacrit Sitdhiwej

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

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

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

  • 2. ความหมายของoop การเขียนโปรแกรมเชิงวัตถุ (อังกฤษ: Object-oriented programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรม คอมพิวเตอร์ ที่ให้ความสาคัญกับ วัตถุ ซึ่งสามารถนามาประกอบ กันและนามาทางานรวมกันได้โดยการแลกเปลี่ยนข่าวสารเพื่อ นามาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้อง เพื่อให้ทางานต่อไป
  • 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
  • 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