งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Lecture 9 Class (คลาส). OBJECTIVE 1. ทราบถึงการทำงานของ Class 2. ทราบถึงการเขียนโปรแกรมเชิงวัตถุ(OOP) (Object Oriented Programming) 3. ทราบถึงการกำหนดตัวแปรแบบโครงสร้างโดยใช้Class.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Lecture 9 Class (คลาส). OBJECTIVE 1. ทราบถึงการทำงานของ Class 2. ทราบถึงการเขียนโปรแกรมเชิงวัตถุ(OOP) (Object Oriented Programming) 3. ทราบถึงการกำหนดตัวแปรแบบโครงสร้างโดยใช้Class."— ใบสำเนางานนำเสนอ:

1 Lecture 9 Class (คลาส)

2 OBJECTIVE 1. ทราบถึงการทำงานของ Class 2. ทราบถึงการเขียนโปรแกรมเชิงวัตถุ(OOP) (Object Oriented Programming) 3. ทราบถึงการกำหนดตัวแปรแบบโครงสร้างโดยใช้Class 4. สามารถนำเอา Class ไปประยุกต์ใช้งานในการเขียนโปแก รมได้

3 คลาส(Class)คืออะไร Class คล้ายๆ กับ Struct ในLecture 8 แต่ความสามารถของ class นั้นมีมากกว่า struct อยู่พอสมควร จะได้ศึกษาในส่วน ต่อไป

4 class Rational { public: double money; private: int age, den; }; public: เป็นการ ประกาศให้ตัวแปรนี้ สามารถที่จะถูก เรียกใช้งานนอก ฟังก์ชันของ class ได้ ตัวอย่างการใช้งาน Class private: เป็นการ ประกาศให้ตัวแปรนี้ สามารถที่จะถูก เรียกใช้งานได้เฉพาะ ฟังก์ชันที่อยู่ภายใน class เท่านั้น protected: เป็นการ ประกาศให้ตัวแปรนี้ สามารถที่จะให้ class ลูกสามารถเข้าถึง ฟังก์ชันสมาชิกของ class แม่ได้ เรียก Rational ว่าเป็น class แม่ เพราะ ไม่ได้สืบทอดคุณสมบัติมาจาก class ใด

5 9.1 แนวความคิดของ OOP Method (การกระทำเป็น) ความสามารถของวัตถุนั้น เช่น -ขับได้ -เร่งความเร็วได้ -เบรกได้ -ชนได้ Properties(คุณสมบัติ) เป็นคุณสมบัติของวัตถุนั้นๆ เช่น -รถมี 4 ล้อ -รถมี สี -รถมีเบรก -มีพวงมาลัย -ฯลฯ วัตถุ(Object)

6 การสืบทอด(Inheritance) การสืบทอดก็คล้ายๆ กับการที่เรา ก๊อป ปี้ เขามานั้นเอง แต่ เราสามารที่จะเพิ่ม ความสามารถใหม่ๆ ลงไปได้ ซึ่ง Class สามารถที่ จะสืบทอดกันได้ แนวความคิดของ OOP( ต่อ )

7 วัตถุ 2 สืบ ทอดทุกอย่างมาจากวัตถุ 1 วัตถุ 2 สามารถเพิ่มลูกเล่นเข้าไปได้อีก คือ เพิ่ม Method ให้สามารถยกได้ด้วย วัตถุ 2 สามารถเพิ่มลูกคุณสมบัติ เข้าไปได้อีกคือมี 6 ล้อ วัตถุ1 วัตถุ2 การสืบทอด(Inheritance)

8 class Human { public: double money; int add(int x,int y) { int result; result = x+y; return result; } }; Method บวกเลขได้ Properties มีเงิน ผมบวกเลขได้น่ะ ตัวอย่างการสร้าง class วัตถุ(Object) ในที่นี้คือ คนเราสร้างให้ เขามีเงินและ บวกเลขได้

9 #include "iostream.h" class Human{ public: int money; int add(int x,int y) { int result; result = x+y; return result; } }; void main(void){ int value; Human Ob1; Ob1.money=100; value=Ob1.add(5,6); cout<

10 #include "iostream.h" class Human{ public: int money; int add(int x,int y) { int result; result = x+y; return result; } }; void main(void){ int value; Human Ob1; Ob1.money=100; value=Ob1.add(5,6); cout<

11 ตัวอย่างการใช้ ClassWizard นักศึกษาจะได้รู้จัก การ เพิ่ม members function และ member variable

12 class Human { public: double money; int add(int x,int y) { int result; result = x+y; return result; } int sub(int x,int y) { int result; result = x-y; return result; } }; Method บวกเลขได้ เพิ่มให้ อีก ลบเลขได้ด้วย Properties มีเงิน ผมบวกเลขกับ ลบเลขได้น่ะ วัตถุ(Object)ในที่นี้คือ คนเราสร้างให้เขามีเงิน บวกเลขและลบเลขได้

13 class Human { public: double money; int add(int x,int y); int sub(int x,int y); }; int Human::add(int x,int y) { int result; result = x+y; return result; } int Human::sub(int x,int y) { int result; result = x-y; return result; } แต่จะต้องนำหน้าด้วย ชื่อ class และ เครื่องหมาย :: จะ ได้รู้ว่า class ใดเป็นเจ้าของ เขียนให้ดูเรียบร้อยขึ้น และใช้งานง่าย ขึ้นด้วย แยกออกไปไว้ต่างหาก ผมยังบวกเลขกับลบ เลขได้น่ะเหมือนเดิม น่ะครับ เพียงแต่เขียน อีกรูปแบบหนึ่ง

14 class Human { public: double money; void add(int x,int y); void sub(int x,int y); private: int x,y,result; }; void Human::add(int x,int y) { result = x+y; } void Human::sub(int x,int y) { result = x-y; } ตัวแปร x และ y และ result ใช้ร่วมกันได้นี่ ประกาศเป็น private แล้วกัน ลองดูว่า work ไหมน่ะ ไม่ work ก็ถาม อ.ผู้สอน แล้วกัน (ไม่ workหรอกครับ แต่ เพราะอะไร) main อยู่หน้าถัดไป ตัวอย่างการประกาศตัวแปรแบบ private

15 void main(void) { int value; Human Ob1; Ob1.money=100; Ob1.add(5,6); cout<

16 class Human { public: double money; int result; void add(int x,int y); void sub(int x,int y); private: int x,y; }; void Human::add(int x,int y) { result = x+y; } void Human::sub(int x,int y) { result = x-y; } (ไม่ workหรอกครับ แต่ เพราะอะไร) ทำไมแก้แบบนี้แล้ว work น่ะครับ หน้า 14 ไม่ work ลองแก้เป็น

17 เพิ่มความสามารถ ของ Object เข้าไปอีก

18 class Human { public: double money; int result; void add(int x,int y); void sub(int x,int y); void print(); private: int x,y; }; void Human::add(int x,int y){ result = x+y; } void Human::sub(int x,int y){ result = x-y; } void Human::print(){ cout<< “ \n ” <

19 void main(void) { int value; Human Ob1; Ob1.money=100; Ob1.add(5,6); Ob1.print(); } ส่วนการบวก ส่วนการแสดงผล

20 void main(void) { int value; Human Ob1; Ob1.money=100; Ob1.print(); } ถ้าไม่บวกแต่ให้ แสดงผลเลยจะ เกิดอะไรขึ้น

21 คอนสตรัทเตอร์ และ เดสตรัทเตอร์ (Constructor and Destructor) Constructor เป็นฟังก์ชันหนึ่งที่มีชื่อเดียวกับชื่อ class และจะทำงานทุกๆ ครั้งเมื่อมีการประกาศ Object ส่วนใหญ่จะใช้เป็นฟังก์ชันกำหนดค่าเริ่มต้น ให้กับวัตถุ Destructor เป็นฟังก์ชันหนึ่งที่มีชื่อเดียวกับชื่อ class และจะทำงานทุกๆ ครั้งเมื่อไม่มีการใช้ Object นั้นแล้ว ส่วนใหญ่จะใช้คืนค่าหน่วยความจะให้กับระบบ

22 void main(void) { Human Ob1; Ob1.money=100; Ob1.print(); Ob1.money=200; Ob1.print(); Ob1.money=300; Ob1.print(); } #include "iostream.h" class Human{ public: int result; int money; void add(int x,int y); void sub(int x,int y); void print(); Human(){ money =0;} ~Human(){cout<<"Object is Date"<<"\n"; } private: int x,y; }; void Human::sub(int x,int y){ result = x-y; } void Human::add(int x,int y){ result = x+y; } void Human::print(){ cout<<"\n"<

23 การสืบทอดคลาส (class derive ) การสืบทอดคลาส ก็กระทำได้โดยใช้คำสั่งดังต่อไปนี้ class myderivedclass:public myclass { private: int myweight; protected: int setmyweight(int newweight); public: int readmyweight(void); };

24 การสืบทอดคลาสใหม่ มาจากคลาสเดิม จะใช้ วิธีการประกาศคลาสใหม่ แล้วตามด้วย เครื่องหมายโคลอน (:) แล้วตามด้วย คำว่า public แล้วตามด้วยชื่อคลาสเดิม ที่เราจะ สืบทอดมา โดยที่คลาสใหม่ที่ได้นี้ จะคง ลักษณะ ของคลาสเดิมทุกประการ และยัง เพิ่ม ตัวแปร myweight และฟังก์ชั่นใหม่ ๆ คือ setmyweight() และ readmyweight() เข้าไปอีก

25 Inclass Lab1 ให้ทำใน โหมด Dos 1. ให้นักศึกษาเขียน Class ขึ้นมา 1 Class โดยเป็น class เกี่ยวกับสถาบัน และทดลองใช้งาน Class นั้นดูแล้วนำมาส่ง (ดู หน้า8) 2. จากข้อ 1 ให้กำหนดชนิดตัวแปรให้ต่างชนิดกัน private,public และให้แสดงการเข้าถึงตัวแปร แต่ละชนิดแล้ว นำมาส่ง 3. ให้นักศึกษาเขียน ฟังก์ชันชื่อ void ShowHello()ให้อยู่ ภายใน Class ข้อ1 และแสดงวิธีใช้งาน ฟังก์ชันที่อยู่ภายใน Class นั้น (โดยเมื่อเรียกใช้ฟังก์ชัน void ShowHello() ที่ อยู่ภายใน class นั้นให้แสดงข้อความ “ Hello KMITNB ” ออกที่หน้าจอภาพ) แล้วนำมาส่ง 4. ให้นักศึกษาเขียนสืบทอด Class จากข้อ3 และทดลองใช้ ฟังก์ชัน void ShowHello() ในข้อ3 ( รายละเอียดเรื่องการสืบทอด ดูในหน้า6,23,24) แล้วนำมาส่ง


ดาวน์โหลด ppt Lecture 9 Class (คลาส). OBJECTIVE 1. ทราบถึงการทำงานของ Class 2. ทราบถึงการเขียนโปรแกรมเชิงวัตถุ(OOP) (Object Oriented Programming) 3. ทราบถึงการกำหนดตัวแปรแบบโครงสร้างโดยใช้Class.

งานนำเสนอที่คล้ายกัน


Ads by Google