ASP.NET - OOP (Object Oriented Programming) |
|
Written by admin
Thursday, 09 September 2010 12:44
|
|
วันนี้เราจะมาพูดถึงเรื่อง OOP(Object Oriented Programming) ใน ASP.NET กันค่ะ
OOP (Object Oriented Programming) คืออะไร? เป็นการเขียนโปรแกรมโดยการมองสิ่งต่างๆ เป็นวัตถุ ซึ่งใน โลกความเป็นจริงสิ่งต่างๆ รอบๆ ตัวเราก็เป็นวัตถุ โดยมีแนวคิดที่ว่านี้ สิ่งที่ประกอบกันเป็นวัตถุนั้นจะประกอบไปด้วย
Class คืออะไร? คลาส (Class) คือ ประเภทของวัตถุ เป็นการกำหนดว่า วัตถุ จะประกอบไปด้วย
ซึ่ง คลาส (เช่น มนุษย์) เป็นโครงสร้างพื้นฐานของการเขียนโปรแกรมเชิงวัตถุ หรือจะเรียก ว่าตัวต้นแบบ หรือแบบแปลนที่นิยามถึง attributes และ operations ของ Object Object คืออะไร? วัตถุ (Object) โดยมากจะเรียกว่า อ็อบเจกต์ คือ ตัวตน(instance) ของ คลาส(เช่น นาย ก, นาย ข) ซึ่งจะเกิดขึ้นระหว่าง run-time โดยแต่ละ อ็อบเจกต์ จะมีข้อมูลเฉพาะของตัวเอง ทำให้ อ็อบเจกต์ แต่ละ อ็อบเจกต์ ของ คลาส ซึ่งใช้ source code เดียวกันมีคุณลักษณะและคุณสมบัติที่แตกต่างกัน ![]() คุณสมบัติที่สำคัญของ OOP มีดังนี้ Encapsulation - การปิดบังข้อมูล เป็นวิธีการกำหนดสิทธิในการเข้าถึงข้อมูล หรือการกระทำกับ อ็อบเจกต์ ของ คลาสนั้นๆ ทำให้แน่ใจได้ว่าข้อมูลของอ็อบเจกต์นั้นจะถูกเปลี่ยนแปลงแก้ไขผ่านทาง methods หรือ properties ที่อนุญาตเท่านั้น ![]() Inheritance - การสืบทอดคุณสมบัติ เป็นวิธีการสร้าง คลาสย่อย ที่เรียกว่าซับคลาส (subclass) ซึ่งจะเป็นกำหนดประเภทของวัตถุให้จำเพาะเจาะจงขึ้น ซึ่ง ซับคลาส จะได้รับถ่ายทอดคุณสมบัติต่างๆมาจากคลาสหลักด้วย (เช่น คลาส มนุษย์ สืบทอดมาจาก คลาส สิ่งมีชีวิต) Abstraction - นามธรรม เป็นการแสดงถึงคุณลักษณะและพฤติกรรมของ object เท่าที่จำเป็นต้องรับรู้และใช้งาน โดยซ่อนส่วนที่เหลือเอาไว้เพื่อไม่ให้เกิดความสับสน เช่น ตามปกติแล้ว นาย ก จัดเป็นตัวตนของ คลาส มนุษย์ ซึ่งจะมีพฤติกรรม การกระทำทุกอย่างที่ตามที่กำหนดไว้ตามโครงสร้างของ คลาส มนุษย์ แต่ในบางกรณีที่นำไปใช้งาน เราไม่ต้องการให้เกิดการสับสนต่อการใช้งานหรือการจัดประเภทมากเราสามารถจัดการหรือใช้งาน อ็อบเจกต์ นาย ก ให้อยู่ในรูปของสิ่งมีชิวิต ก็ได้ Polymorphism - ภาวะที่มีหลายรูปแบบ เป็นวิธีการกำหนดรูปแบบการกระทำที่เหมือนกันแต่ได้ผลที่แตกต่างกัน เช่น การเปล่งเสียง เป็น method หลักของ คลาส สิ่งมีชีวิต ซึ่งมีคลาส มนุษย์ และคลาสสุนัข เป็น ซับคลาส แต่ผลของการเปล่งเสียงของอ็อบเจกต์จากคลาสทั้งสองจะออกมาไม่เหมือนกัน |