Index งานค้นคว้าครั้งที่ 1

งานค้นคว้าครั้งที่ 1

hi
Last updated on
2 min read

OOP ย่อมาจากคำว่าอะไร และมีลักษณะอย่างไร

OOP ย่อมาจากคำว่า Object-Oriented Programming โดยที่ทุกอย่างภายในโปรแกรม จะถือว่าเป็น Object หนึ่งๆ โดยที่ข้อมูลจะอยู่ในลักษณะของ fields, properties หรือ attributes และโค้ดจะอยู่ในลักษณะของ procedures หรือ method โดยที่เราสามารถที่จะสร้างหรือลบออบเจ็กต์ต่างๆภายในโปรแกรมได้ แต่จะมี modifier ทำหน้าที่ในการป้องกันออบเจ็กต์บางตัวเพื่อป้องกันการเข้าถึงหรือการแก้ไข โดยที่คลาสจะมีออบเจ็กต์ต่างๆอยู่ภายใน oop

ประโยชน์ของการเขียนโปรแกรมเชิงวัตถุคืออะไร

ประโยชน์ของการเขียนโปรแกรมเชิงวัตถุคือ เราสามารถนำโค้ดกลับมาใช้ใหม่ได้อย่างมีประสิทธิภาพ เพราะทุกอย่างถูกเก็บไว้เป็นคลาสๆหรือออบเจ็กต์อยู่แล้ว และเราสามารถที่จะเขียนโค้ดที่น้อยลงได้ และมีระเบียบมากขึ้น เนื่องด้วยหลักการของ Inheritance ที่จะมีคลาสหลัก หรือ Superclass ที่ทำหน้าที่กำหนด Template หรือหลักการในการเขียนไว้แล้ว และเราก็สามารถที่จะ extend หรือขยาย Superclass ออกมาเพื่อใช้งานได้ทันที inheritance

มีภาษาใดบ้างที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุพร้อมอธิบายลักษณะของภาษาในข้อที่ 3 โดยเลือกมา 1 ภาษา ว่ามีความเป็นโปรแกรมเชิงวัตถุอย่างไร

โดยที่ Typescript ใช้ Javascript เป็นฐานอีกที และถูกสร้างมาเพื่อเพิ่มหลักการ Typing, interfaces, และ classes ขึ้นมา ตัวอย่างเช่น

// src/components/card.tsx
import React, { ReactNode, Component } from 'react'

type Props = {
  children: {
    header: ReactNode
    media: ReactNode
    content: ReactNode
    actions: ReactNode
  }
}

export class Card extends Component<Props> { // Inheritance ที่ Inherit มาจากคลาส Component กลายเป็นคลาส Card
  render() { // เมธอด render
    const { header, content, media, actions } = this.props.children

    return (
      <div className="card bg-orange-200 dark:bg-zinc-700 hover:bg-orange-300 dark:hover:bg-zinc-800">{header}</div>
      <div className="card bg-orange-200 dark:bg-zinc-700 hover:bg-orange-300 dark:hover:bg-zinc-800">{content}</div>
      <div className="card bg-orange-200 dark:bg-zinc-700 hover:bg-orange-300 dark:hover:bg-zinc-800">{media}</div>
      <div className="card bg-orange-200 dark:bg-zinc-700 hover:bg-orange-300 dark:hover:bg-zinc-800">{actions}</div>
    )
  }
}

ยกตัวอย่างวัตถุที่นักเรียนเกี่ยวข้องในชีวิตประจำวัน เพื่ออธิบายถึง วัตถุ(Object) คุณสมบัติ (Attributes) และพฤติกรรม (Behavior) มา 2 วัตถุ

จงแยกองค์ประกอบของวัตถุนี้ออกเป็นส่วน ๆ ว่าประกอบด้วยส่วนประกอบอะไรบ้าง โดยใส่ภาพประกอบแต่ละชิ้นส่วนให้ดูด้วย

Mechanical Pencil - ดินสอกด

mech-pencil

RC Car - รถบังคับวิทยุ

rc

Life Vest - เสื้อชูชีพ

clipboard.png

Motorcycle - มอเตอร์ไซค์

motorcycle

Mini Lego - มินิเลโก้

legop