บทความ

กำลังแสดงโพสต์จาก สิงหาคม, 2016

Part1 -> Section2 -> Classes -> 008. Interface

รูปภาพ
     จากบทความที่แล้ว (Inheritance) ในตอนท้ายเรามีการกล่าวถึง class diagram คร่าวๆ ซึ่งพอเราสร้าง class diagram เสร็จแล้ว ขั้นต่อไปก็นำ diagram มาลงโค้ดจริง หากทั้งโปรแกรมมีแค่ class เดียว คงไม่มีปัญหาอันใด แต่ในชีวิตจริงมันมีมากกว่านั้นเยอะคับ เราจึงควรใช้ตัวนี้เข้ามาช่วยในการสร้างโครงของโปรแกรม สิ่งนี้คือ Interface นั่นเอง      อย่างที่ได้กล่าวไปแล้ว Interface คือ โครงของ class ซึ่งหาก class ใด implement interface จะต้อง implement method และ property ที่เราได้ประกาศใน Interface ให้ครบ ถ้าไม่ครบ build ไม่ผ่านนะจร๊ะ ดูตัวอย่างประกอบเลยจร้า

Part1 -> Section2 -> Classes -> 007. Inheritance

รูปภาพ
     หนึ่งในผู้เล่นคนสำคัญของ Object Oriented Programming (OOP) ก็คือ Inheritance หรือ การสืบทอด นั่นเอง มดูกันว่ามันจะมีประโยชน์อย่างไร ใช้งานกันอย่างไร ลองดูจากตัวอย่างแรก using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { Animal animal = new Animal(); animal.Greet(); Dog dog = new Dog(); dog.Greet(); Animal dogAnimal = new Dog(); dogAnimal.Greet(); } } public class Animal { public void Greet() { Console.WriteLine("Hello, I am Animal"); } } public class Dog : Animal { } public class Cat : Animal { } }

Part1 -> Section2 -> Classes -> 006. Static Members

รูปภาพ
     จากบทความก่อนๆ ในการที่เราจะเรียกใช้งาน class นั้น ปกติเราจะต้องเรียกผ่านใช้งานผ่าน object ของ class นั้นๆ แต่จะมีการเรียกใช้งาน class โดยไม่ต้องผ่าน object นั่นก็คือจะต้องใช้งานผ่าน static member การเรียกใช้งานถือว่าสะดวกมากๆ      แต่จะมีคำถามสำคัญตามมาคือ แล้วเคสไหนจะใช้ static method เคสไหนจะใช้แบบ regular method (object) คำตอบของผมเองนะคับ มันอยู่ที่เราคับ แต่ก็จะมีหลักการไว้พิจารณาอยู่บ้าง ดังนี้ครัช (ผมลองค้นดูคร่าวๆ ก็ไม่มีที่ไหนตอบเหมือนกันเลยคับ สุดท้ายก็คงอยู่ที่เราจะพิจารณานะคับ)      - เป็นการแชร์ข้อมูลที่ตายตัว เช่น การหาพื้นที่สี่เหลี่ยม, การแปลงหน่วยอุณหภูมิ, การหาพื้นที่วงกลม อารมณ์คือ ใช้เป็นครั้งๆ แล้วจบไปเลยอ่าครัช      - ไม่ได้ใช้ในการเก็บค่า อธิบายคือ โปรแกรมจะมอง static เป็นตัวเดียวกันไม่ว่าจะเรียกใช้กี่ครั้งคือตัวเดิม แต่ถ้าเราใช้ new objcet นั้นการ new แต่ละครั้ง object นั้นๆคือคนละตัวกันะเลย ถ้ามีการ set ค่าใส่ตัวแปรของ class ล่ะก็ พอเรียกใช้มันก็จะเก็บค่าต่างกันไป เพราะ object มันคนละตัวกันเลย