Class1

474 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
474
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Class1

  1. 1. บทที่ 6 คลาสและการเขียนโปรแกรมวัตถุเบื้องต้น
  2. 2. • โปรแกรมภาษาเชิงวัตถุ (Object-Oriented Programming Language : OOPL)ในการเขียนโปรแกรมแบบดั้งเดิมของเราจะเสมือนกับการ เขียนคำาสั่งที่จะสั่งให้เครืองคอมพิวเตอร์ทำางานตามที่เรา ่ ต้องการซึ่งโดยรูปแบบเหมือนกับผู้พัฒนาโปรแกรมจะพูด หรือออกคำาสั่งในเชิงของกริยาหรือการกระทำาให้กับเครื่อง คอมพิวเตอร์ให้ทำางานตามที่เราสั่ง เช่น พิมพ์ข้อความบน หน้าจอ รับข้อมูลจากคีย์บอร์ดเป็นต้น ในที่นี้ผู้เขียน โปรแกรมทำาการเขียนคำาสั่งเพื่อที่จะสั่งให้เครื่องทำางาน พิมพ์ข้อความออกบนหน้าจอหรือรับข้อมูลจากคีย์บอร์ด สำาหรับการเขียนหรือพัฒนาโปรแกรมในอีกรูปแบบหนึ่ง เป็นการมองโปรแกรมในลักษณะของกลุ่มก้อนของวัตถุที่ ประกอบด้วยตัวข้อมูลและคำาสั่งการจัดการหรือวิธีการที่จะ จัดการกับข้อมูลเหล่านั้น เราเรียกโปรแกรมในลักษณะนี้ว่า เป็นแกรมเชิงวัตถุ(Object Oriented Programming) หรือ OOP ซึ่งจะคล้ายคลึงหรือเป็นการ เลียนแบบโลกแห่งความเป็นจริงโดยมองทุกๆสิ่งเป็นวัตถุ 
  3. 3. • การเขียน program แบบ OOP มีลักษณะ 5 ประการ - ทุกสิ่งทุกอย่างคือ object ในแง่หนึ่งเราก็อาจตีความว่า object เป็นตัวแปรทีมีความพิเศษ ่ อยู่ในตัวเอง คือ นอกจากเก็บค่าต่าง ๆ ได้แล้ว เรายังสามารถที่ จะสั่ง (request) ให้ object ทำางาน (operation) ต่าง ๆ ที่เกี่ยว กับตัวมันเองด้วย - Program ประกอบไปด้วย object ที่ต่างก็ส่งข้อความ (message) บอกให้กันและกันว่าต้องทำาอะไร การส่ง message ก็คือการส่ง request หรือการเรียกใช้ function ของ object นั้น ๆ - Object แต่ละตัวมีหน่วยความจำาที่เต็มไปด้วย object อืน ๆ ่ เราสร้าง object จาก object ตัวอืนที่มีอยู่แล้ว ่ - Object มี รูปแบบ หรือ ชนิด ของตัวเอง (type/class) - Object ที่ต้นตอมาจาก type แบบเดียวกันสามารถที่จะรับ ข้อมูลซึ่งกันและกันได้
  4. 4. Object 2 data Object 1 data Object 4 data Object 3 dataแต่ละ Object สามารถติดต่อสื่อสารกันได้โดยการส่ง
  5. 5. Classหมายถึงโครงสร้างของ object โดย class เป็นตัวกำาหนดว่าobject นั้นจะมี data หรือคุณลักษณะอะไร บ้าง และมี methodอะไรบ้าง เปรียบเสมือนพิมพ์เขียว (template) ของอ๊อปเจ็ค วัตถุ (Object) คือ ตัวแทนของบุคคล สถานที่ หรือสิ่งของที่สนใจในเหตุการณ์หนึ่ง ซึ่งอาจจับต้องได้หรือจับต้องไม่ได้ Object เป็นองค์ประกอบสำาคัญของการเขียนโปรแกรมที่สามารถรับค่าและแสดงส่งค่าได้ และจากนิยาม Object คือตัวแทนของสิ่งของที่อยู่ในโลกของความเป็นจริง ซึ่งอาจเป็นสิ่งที่จับต้องได้หรือไม่ได้ จะต้องมีคุณลักษณะ (Attribute) ที่บ่งบอกว่าเป็น Object ของอะไร และมีพฤติกรรม (Behavior) ที่บ่งบอกให้ทราบว่า Object นั้นทำาอะไร ดังนั้น Object จะสามารถตอบสนองต่อสิ่งทีกระทำาในการร้องขอสิ่งต่างๆ ได้ ่
  6. 6. ลักษณะที่ Object1. identity คือ เอกลักษณ์เฉพาะตัวทีทำาให้ Object ่ของคลาสหนึงๆ แตกต่างจาก Object ของอีกหนึ่ง ่คลาสหนึ่ง ซึงในภาษาจาวา identity จะหมายถึง ่Attribute หรือตัวแปร (Variable)2. State คือสถานะของ Object ณ เวลาหนึงๆ ซึ่ง ่สามารถเปลี่ยนแปลงได้เมือมีการกระตุ้นจาก Object ่อื่นโดยการส่ง Message ในภาษาจาวา State จะหมายถึงค่าของ Attribute (Value of Attribute)3. Behavior คือ พฤติกรรมที่ Object กระทำาและตอบสนองทุกครั้ง โดยการกระตุ้น Object อื่นโดยการส่ง Message ต่อกันในภาษาจาวา Behavior ก็คือ Method
  7. 7. การ run-time โดยแต่ละ object จะมีขอมูลเฉพาะของตัวเอง ทำาให้ object ้ แต่ละ object ของ class ซึ่งใช้ source code เดียวกันมีคุณลักษณะและ คุณสมบัติที่แตกต่างกัน Encapsulation - การปิดบังข้อมูล เป็นวิธีการกำาหนดสิทธิในการเข้าถึงข้อมูล หรือการกระทำากับ อ็อบเจกต์ ของ คลาสนั้นๆ ทำาให้แน่ใจได้ว่าข้อมูล ของอ็อบเจกต์นั้นจะถูกเปลียนแปลงแก้ไขผ่านทาง methods หรือ ่ properties ที่อนุญาตเท่านั้น Inheritance - การสืบทอดคุณสมบัติ เป็นวิธีการสร้าง คลาสย่อย ที่เรียกว่า ซับคลาส (subclass) ซึ่งจะเป็นกำาหนดประเภทของวัตถุให้จำาเพาะเจาะจง ขึ้น ซึ่ง ซับคลาส จะได้รับถ่ายทอดคุณสมบัติต่างๆมาจากคลาสหลักด้วย Abstraction - นามธรรม เป็นการแสดงถึงคุณลักษณะและพฤติกรรมของobject เท่าที่จำาเป็นต้องรับรู้และใช้งาน โดยซ่อนส่วนที่เหลือเอาไว้เพื่อไม่ให้ เกิดความสับสนPolymorphism - ภาวะที่มีหลายรูปแบบ เป็นวิธีการกำาหนดรูปแบบการกระทำาที่เหมือนกันแต่ได้ผลที่แตกต่างกัน เช่น การเปล่งเสียง เป็น method หลักของ คลาส สิ่งมีชีวิต ซึ่งมีคลาส มนุษย์ และคลาสสุนัข เป็น ซับคลาส แต่ผล ของการเปล่งเสียงของอ็อบเจกต์จากคลาสทั้งสองจะออกมาไม่เหมือนกัน
  8. 8. คุณลักษณะของการเขียนโปรแกรมเชิงวัตถุ1) การห่อหุ้ม (Encapsulation) หมายถึงการจะเรียกใช้คุณลักษณะของอ๊อปเจ็ค จะทำาได้โดยการเรียกผ่านเมธอดเท่านั้น หลักการของการห่อหุ้ม คือการกำาหนดให้คุณลักษณะของอ๊อปเจ็คมีคุณสมบัติเป็น private และกำาหนดให้เมธอดมีคุณสมบัติเป็น public โดยมีเมธอด get/set ไว้เพื่อเข้าถึง dataนั้นๆ จะเรียกว่า class นั้นๆ เป็น Full Encapsulation class
  9. 9. 2) การสืบทอด (Inheritance) หมายถึงการนิยามคลาสใหม่จากคลาสที่มีอยู่แล้วโดยคลาสใหม่สามารถที่จะนำาคุณลักษณะและเมธอดของคลาสเดิมมาใช้ได้ คือ Class หนึ่งๆสามารถสืบทอดคุณสมบัติบางประการจาก Class อืน แล้วเพิ่มคุณสมบัติเฉพาะของ ่Class นันเข้าไป ้- Class ที่ได้รับการสืบทอดคุณสมบัติเรียกว่าSubclasses- Class ที่เป็นต้นแบบเรียกว่า Superclassเป็นการช่วยให้ไม่ต้องพัฒนา ส่วนที่ซำ้าหลายๆรอบ(Reusable)Class หนึ่งๆจะมี Superclass ได้เพียง Class เดียวเท่านั้น (Single Inheritance)ในภาษาจาวา จะใช้คีย์เวิร์ด extends เพื่อระบุการสืบทอด
  10. 10. 3) การมีได้หลายรูปแบบ (Polymorphism)หมายถึง การที่สามารถตอบสนองต่อข่าวสาร (เมธอด) เดียวกันด้วยวิธีการที่ต่างกัน และสามารถกำาหนดออปเจ็ค ได้หลายรูปแบบ- Overridden method และ Dynamic Bindingตัวอย่างที่เน้นโปรแกรมแบบ OOP1) Object แรกของ class มักชื่อ main โปรแกรมนี้สั้น และ ง่ายที่สุด>> สร้างกล่อง 1 กล่องในกล่องมี object ทำางาน พิมพ์ x เพียงอักษรเดียว>> มองว่า class ก็คือกล่อง แต่ละกล่องคือที่เก็บ object class x { public static void main(String args[]) { System.out.println("x"); } }
  11. 11. 2) เรียก object ใน class เดียวกัน โดยมองว่า class เสมือน กล่องเก็บ object มากมาย>> สร้างกล่อง 1 กล่องในกล่องมี 2 object และ object 1 เรียก object 2 มาทำางาน class x { public static void main(String args[]) { int i = 1; System.out.println(i); ok(); } static void ok() { System.out.println("xx"); } }// Result of this program// 1// xx
  12. 12. ผูจัดทำา ้นาย นราธิป โรจนสุว รพงค์ เลขที่ 1 นาย อนพัช บ่อ พลอย เลขที่ 2 นาย วุฒ ิภ ัท ร เถื่อ นคำา เลขที่ 3 นาย สุท ธิเ ดช ผิว อ่อ นดี เลขที่ 8 นาย ปัญ ญา จัน ทยา เลขที่ 11นาย วิช า มโนมัย เพิ่ม พูน เลขที่ 13นายศิร ิว ัฒ น์ พุท ธอิน ทร์ศ ร เลขที่ 14 มัธ ยมศึก ษาปีท ี่ 6/2

×