เด็กไอทีคลับ คลับซ่าฅนไอที

iTeach | ไอทีเพื่อการเรียนรู้ => Programming & Web Development => ข้อความที่เริ่มโดย: CANNABIS ที่ 15, 06 2009, 10:26:52 PM



หัวข้อ: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 15, 06 2009, 10:26:52 PM
ใครรู้ช่วยบอกที


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: IRONKONG ที่ 15, 06 2009, 10:55:08 PM
ใครรู้ช่วยบอกที
  "PHP"


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 15, 06 2009, 10:58:00 PM
มันมีอะไรบ้าง ช่วยบอกที


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: IRONKONG ที่ 15, 06 2009, 11:51:01 PM
มันมีอะไรบ้าง ช่วยบอกที
บอกแล้วให้มาเรียน ห้ามป่วย ห้ามลา ห้ามขาด ห้ามสาย ห้ามตาย ถ้งเอ็งยังอยากจะรอด


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 15, 06 2009, 11:55:42 PM
โอเค ถ้าทำได้ ได้เลื่อนชั้น


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: @ Dek - IT Gen.7 ที่ 16, 06 2009, 12:20:26 AM
บอม เบิร์ดว่าเบิร์ดมีหนังสืออยู่นะ เอาป่ะ :aiwebs_026:


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 16, 06 2009, 12:38:27 AM
บอม เบิร์ดว่าเบิร์ดมีหนังสืออยู่นะ เอาป่ะ :aiwebs_026:

ก้อดีนะ เพราะ เทอมนี้บอมเจอเต็มๆ


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: เด็กไอทีคลับ ที่ 16, 06 2009, 10:24:51 AM
เอา Java OOP (Eng) ของพี่ม่ะ เล่มนึงหนุนหัวได้สบายเลย


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: เด็กไอทีคลับ ที่ 16, 06 2009, 10:27:05 AM
เรียนกับ อ.สันชัยปะ ถ้าใช่ เตรียมเขียนโปรแกรม เจียวไข่ได้เลย

- ขั้นตอนการเจียวไข่
- อะไรคือ วัตถุ (object)
- อะไรคือ การกระทำ (method)
- อะไรคือ คุณลักษณะ (attribute)

นึกๆ ไว้เลย กับ โปรแกรม โรงอาหาร กับ นศ 1 คน ที่จะกินข้าว ในโรงอาหาร (มองออกมาให้เป็น OOP)


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 16, 06 2009, 11:50:38 AM
อ้าวงั้นผมก้อรอดตัวไป เทอมนี้ผมเจอ อ.อิงอร (หรือว่าไม่รอด)


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: เด็กไอทีคลับ ที่ 16, 06 2009, 01:20:55 PM
อ้าวงั้นผมก้อรอดตัวไป เทอมนี้ผมเจอ อ.อิงอร (หรือว่าไม่รอด)

ไม่แตกต่างงงงงงงงง เหอๆๆ


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 16, 06 2009, 02:13:19 PM
พี่เหม่ง แล้วภาษาที่สนับสนุน OOP มีอะไรบ้างคับ


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: เด็กไอทีคลับ ที่ 16, 06 2009, 02:35:48 PM
Languages with object-oriented features

    * ABAP
    * Ada 95
    * AmigaE
          o PortablE
    * BETA
    * Blue
    * Boo
    * C++
    * C#
    * COBOL
    * Cobra
    * ColdFusion
    * Common Lisp
    * COOL
    * CorbaScript
    * Clarion
    * CLU
    * Curl
    * D
    * Delphi (Object Pascal)
    * Dylan
    * E
    * Eiffel
          o Sather
    * Falcon
    * F-Script
    * F#
    * Fortran 2003
    * Gambas
    * Graphtalk
    * IDLscript
    * incr Tcl
    * J
    * JADE
    * Java
          o Groovy
          o Join Java
          o X10
    * Lasso
    * Lava
    * Lexico
    * Lingo
    * MATLAB
    * MathScriptor
    * Modula-2
          o Modula-3
    * Moto
    * Nemerle
    * NetRexx
    * Oberon (Oberon-1)
          o Oberon-2
    * Object REXX
    * Objective-C
    * Objective Caml
    * Oz
          o Mozart Programming System
    * Perl 5
    * PHP
    * Pliant
    * PRM
    * Prototype-based languages
          o Actor-Based Concurrent Language, ABCL: ABCL/1, ABCL/R, ABCL/R2, ABCL/c+
          o Agora
          o Cecil
          o Cel
          o ECMAScript
                + ActionScript
                + JavaScript
                + JScript
          o Etoys in Squeak
          o Io
          o Lua
          o Lisaac
          o Monate - OOP Assembly
          o MOO
          o NewtonScript
          o Obliq
          o REBOL
          o Self
    * Python
    * REALbasic
    * Revolution
    * Ruby
    * Scala
    * SenseTalk
    * Simula
    * Smalltalk
          o Self
          o Bistro
          o Squeak
    * S (programming language)
          o R (programming language)
    * Squirrel
    * Superx++
    * TADS
    * Ubercode
    * Visual Basic
          o VB.NET
          o VBScript
          o VBA
    * Visual FoxPro
    * Visual Prolog
    * Tcl
          o Xotcl similar to CLOS
          o Snit uses delegation
          o itcl similar to C++
    * XBase plus plus Extends xBase Standard Language
    * ZZT-oop


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 16, 06 2009, 02:40:57 PM
ขอบคุณมากคับ


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: IRONKONG ที่ 17, 06 2009, 12:06:44 AM
เจียวไข่นี่รู้สึกจะเป็นพื้นฐานการเขียนโปรแกรม ของเด็กไอทีเลยนะครับ
ไม่ว่าจารย์คนไหนสอนอะไร ท่านให้เราเจียวไข่กันก่อนทุกทีเลย


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CANNABIS ที่ 17, 06 2009, 01:55:07 AM
การเขียนโปรแกรมเชิงวัตถุ (Object-oriented programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรมคอมพิวเตอร์ ที่ให้ความสำคัญกับ วัตถุ ซึ่งสามารถนำมาประกอบกันและนำมาทำงานรวมกันได้ โดยการแลกเปลี่ยนข่าวสารเพื่อนำมาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้องเพื่อให้ทำงานต่อไป

       แนวคิดการเขียนโปรแกรมแบบดังเดิมมักนิยมใช้ การเขียนโปรแกรมเชิงกระบวนการ (Procedural Programming) ซึ่งให้ความสำคัญกับขั้นตอนกระบวนการที่ทำ โดยแบ่งโปรแกรมออกเป็นส่วนๆตามลำดับขั้นตอนการทำงาน แต่แนวคิดการเขียนโปรแกรมเชิงวัตถุนั้นให้ความสำคัญกับ ข้อมูล(data) และ พฤติกรรม(behavior) ของวัตถุ และความสัมพันธ์กันระหว่างวัตถุกันมากกว่า

>>> เปรียบเทียบแนวคิดระหว่างการเขียนโปรแกรมเชิงกระบวนการ และเชิงวัตถุ

--------------------------------------------------------------------------------
ตัวอย่างตู้ขายเครื่องดื่มอัตโนมัติ

วิธีการคิดแบบการเขียนโปรแกรมเชิงกระบวนการ
เมื่อมีการหยอดเหรียญเข้าตู้:
1. ตรวจสอบจำนวนเหรียญและชนิดของเหรียญ
2. แสดงผลชนิดของน้ำที่สามารถเลือกซื้อได้
3. ตรวจสอบจำนวนน้ำกระป๋องที่มีอยู่ในตู้
4. รับผลการเลือกชนิดน้ำ
5. ส่งน้ำที่เลือกออกมาจากช่อง
6. จัดเก็บเงินเข้าระบบ
7. หากมีเงินทอน ให้ทอนเงินที่เหลือ ที่ช่องรับเงินทอน

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

แนวคิดที่สำคัญของการเขียนโปรแกรมเชิงวัตถุ
   - คลาส (Class) - ประเภทของวัตถุ เป็นการกำหนดว่า วัตถุ จะประกอบไปด้วย ข้อมูล(data) หรือคุณสมบัติ(property) และ พฤติกรรม(behavior)หรือการกระทำ(method) อะไรบ้าง ซึ่ง คลาส (เช่น มนุษย์) เป็นโครงสร้างพื้นฐานของการเขียนโปรแกรมเชิงวัตถุ
   - วัตถุ (Object) - โดยมากจะเรียกว่า อ็อบเจกต์ คือ ตัวตน(instance) ของ คลาส(เช่น นายทักษิณ, นายสนธิ) ซึ่งจะเกิดขึ้นระหว่าง run-time โดยแต่ละ อ็อบเจกต์ จะมีข้อมูลเฉพาะของตัวเอง ทำให้ อ็อบเจกต์ แต่ละ อ็อบเจกต์ ของ คลาส ซึ่งใช้ source code เดียวกันมีคุณลักษณะและคุณสมบัติที่แตกต่างกัน
   - Encapsulation - การปิดบังข้อมูล เป็นวิธีการกำหนดสิทธิในการเข้าถึงข้อมูล หรือการกระทำกับ อ็อบเจกต์ ของ คลาสนั้นๆ ทำให้แน่ใจได้ว่าข้อมูลของอ็อบเจกต์นั้นจะถูกเปลี่ยนแปลงแก้ไขผ่านทาง methods หรือ properties ที่อนุญาตเท่านั้น (เช่น การกำหนดตำแหน่งทางการเมือง เป็น public method ที่ผู้อื่นสามารกระทำได้ ส่วนการลาออกจากตำแหน่ง เป็น private method ที่มีแต่ อ็อบเจกต์ ของ คลาส เท่านั้นที่จะสามารถทำได้ แต่การกดดันและการขับไล่สามารถสร้าง data ที่อาจจะส่งผลเกิดการลาออกได้เช่นกัน)
   - Inheritance - การสืบทอดคุณสมบัติ เป็นวิธีการสร้าง คลาสย่อย ที่เรียกว่าซับคลาส (subclass) ซึ่งจะเป็นกำหนดประเภทของวัตถุให้จำเพาะเจาะจงขึ้น ซึ่ง ซับคลาส จะได้รับถ่ายทอดคุณสมบัติต่างๆมาจากคลาสหลักด้วย (เช่น คลาส มนุษย์ สืบทอดมาจาก คลาส สิ่งมีชีวิต)
   - Abstraction - นามธรรม เป็นการแสดงถึงคุณลักษณะและพฤติกรรมของ object เท่าที่จำเป็นต้องรับรู้และใช้งาน โดยซ่อนส่วนที่เหลือเอาไว้เพื่อไม่ให้เกิดความสับสน เช่น ตามปกติแล้ว นายทักษิณ จัดเป็นตัวตนของ คลาส มนุษย์ ซึ่งจะมีพฤติกรรม การกระทำทุกอย่างที่ตามที่กำหนดไว้ตามโครงสร้างของ คลาส มนุษย์ แต่ในบางกรณีที่นำไปใช้งาน เราไม่ต้องการให้เกิดการสับสนต่อการใช้งานหรือการจัดประเภทมากเราสามารถจัดการหรือใช้งาน อ็อบเจกต์ นายทักษิณ ให้อยู่ในรูปของสิ่งมีชิวิต ก็ได้
   - Polymorphism - ภาวะที่มีหลายรูปแบบ เป็นวิธีการกำหนดรูปแบบการกระทำที่เหมือนกันแต่ได้ผลที่แตกต่างกัน เช่น การเปล่งเสียง เป็น method หลักของ คลาส สิ่งมีชีวิต ซึ่งมีคลาส มนุษย์ และคลาสสุนัข เป็น ซับคลาส แต่ผลของการเปล่งเสียงของอ็อบเจกต์จากคลาสทั้งสองจะออกมาไม่เหมือนกัน


อ้างถึง
เป็นการแสดงถึงสัญญาลักษณ์ หนึ่งสิ่ง แทนได้หลายความหมาย เช่น 1 + 1 = 2, 1.0 + 1.0 = 2.0, '1' + '1' = 11 ล้วนแล้วทำกับ + ที่ได้ผลต่างกันนั่นเอง
และ อีกข้อคือ สัญญาลักษณ์การ operation หนึ่งสิ่ง แต่การ Process ใน operation นั้นต่างกัน

>>> แนวทางการออกแบบและแก้ปัญหา

--------------------------------------------------------------------------------
ความท้าทายในการออกแบบและพัฒนาโปรแกรมเชิงวัตถุมีหลายด้าน โดยแนวทางดังต่อไปนี้ เป็นแนวทางที่ได้รับการยอมรับอย่างกว้างขวางในการใช้เพื่อแก้ไขปัญหา

ดีไซน์แพตเทิร์น - แบบแผนและแนวทางการออกแบบ
      ในการออกแบบและการพัฒนาโปรแกรมเชิงวัตถุ ได้มีการรวบรวมบันทึกวิธีการแก้ปัญหาที่ใช้ได้ผลสำหรับปัญหาที่เกิดขึ้นซ้ำๆ เสมอๆ วิธีการแก้ไขเหล่านี้สามารถนำมาใช้ได้บ่อยๆ ในสถานการณ์ที่หลากหลาย บันทึกรวบรวมนี้มีชื่อเรียกเฉพาะว่า ดีไซน์แพตเทิร์น (Design Patterns)
      Design Patterns ซึ่งเป็นหนังสือที่ออกจัดจำหน่ายเมื่อปี 2538 โดยผู้แต่งร่วม 4 คนได้แก่ Erich Gamma, Richard Helm, Ralph Johnson และ John Vlissides หรือที่รู้จักในนามของ GoF (Gang of four) ถือว่าเป็น แบบแผนและแนวทางการออกแบบ ที่ได้รับความนิยมและเป็นที่รู้จักอย่างกว้างขวางในการนำมาประยุกต์ใช้งานจริง

การเขียนโปรแกรมเชิงวัตถุและฐานข้อมูล
      การเขียนโปรแกรมเชิงวัตถุและระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management Systems) ได้ถูกใช้งานร่วมกันอย่างแพร่หลายในปัจจุบัน แต่เนื่องจากฐานข้อมูลเชิงสัมพันธ์ไม่สามารถเก็บข้อมูลเชิงวัตถุได้โดยตรง จึงมีความจำเป็นที่จะต้องเชื่อมต่อเทคโนโลยีทั้งสองเข้าด้วยกัน การแก้ปัญหาสองแบบที่ได้รับความนิยมแพร่หลายคือการใช้ตัวส่งระหว่างโมเดลเชิงวัตถุและเชิงสัมพันธ์ (Object-Relational Mapping: ORM)
      อีกวิธีการคือการใช้งานระบบจัดการฐานข้อมูลเชิงวัตถุ (Object-Relational Database Management Systems) แทนที่ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ แต่วิธีการนี้ก็ยังไม่ได้รับความนิยมมากนัก

โปรแกรมเชิงวัตถุและการเทียบเคียงกับโลกของความเป็นจริง
      การเขียนโปรแกรมเชิงวัตถุสามารถนำมาใช้จำลองการทำงานตามโลกของความเป็นจริงได้ แต่ไม่ได้เป็นที่นิยมนักเนื่องจากมีนักวิชาการจำนวนหนึ่งที่ไม่เห็นด้วยและมองว่าไม่ใช่วิธีการที่ถูกต้อง
      ปัจจุบันวิธีการมาตรฐานที่ใช้ในการเทียบเคียงกับโลกของความเป็นจริง ตามแนวทางของคณิตศาสตร์คือ Circle-ellipse problem ซึ่งก็ถูกต้องบางส่วน แต่แนวคิดวการสร้างยังคงต้องให้สอดคล้องกับความเป็นจริงของพื้นฐานธรรมชาติที่เป็นไปได้ผนวกกับคณิตศาสตร์ด้วย เพื่อให้เกิดสมดุล

ตัวอย่างภาษาที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ
- ABAP
- Ada 95
- C#
- C++
- Common Lisp Object System
- Delphi++
- Eiffel
- Fortran 2003
- JADE
- Java
- Modula-3
- Nice
- Oberon
- Objective-C
- Objective Modula-2
- OCaml
- Object Pascal
- Perl
- PHP
- Python
- REALbasic
- Ruby
- Simula
- Sleep
- Smalltalk
- Specman
- SystemVerilog
- UnrealScript
- Visual Basic
- Visual Basic.NET
- Visual C#.NET
- Visual FoxPro


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: ผู้ชายใจเดียว ที่ 3, 11 2009, 09:50:56 AM
เหอะๆอยากเขียนโปรแกรมบ้างจังครับ


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CoolPha ที่ 3, 11 2009, 01:07:52 PM

มันจะง่ายกว่านี้ค่ะ ถ้าเข้ามาตอบกระทู้ หรือ

ตั้งกระทู้ กับเราบ่อย ๆ เพื่อให้

พลังความคิดของคุณ ถึง 5 นะค่ะ แล้วจะ

มองเห็นทุกอย่างค่ะ จะง่ายขึ้น

* พวกเราจะเป็นคนให้พลังความคิดพวกคุณเองค่ะ

เพราะฉนั้นมาร่วมสนุกกับเราบ่อย ๆ นะค่ะ


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: maisonloke ที่ 27, 03 2010, 04:11:30 PM
ก่อนเริ่มต้นการเขียนโปรแกรมเชิงวัตถุ ควรศึกษาแนวคิดเชิงวัตถุ (Object Orientation) การวิเคราะห์และออกแบบเชิงวัตถุ (Object-oriented Analysis and Design) ก่อนหรือศึกษาควบคู่ไปด้วย แล้วจะทำให้เข้าใจการเขียนโปรแกรมเชิงวัตถุง่ายขึ้น


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: CyberNoi ที่ 1, 04 2010, 07:55:49 AM
พี่บอม เอาหนังสือ PHP ไหม ผมมีอยู่ อิอิ สนใจ PM มาเลย Free!!!!


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: KMUTNB ที่ 13, 04 2010, 02:49:00 AM
ได้ความรู้คับ


หัวข้อ: Re: การเขียนโปรแกรมเชิงวัตถุ
เริ่มหัวข้อโดย: promote ที่ 10, 02 2011, 11:44:58 AM
ASP JAVA