Object oriented programming design and analysis
Download
1 / 38

- PowerPoint PPT Presentation


  • 139 Views
  • Updated On :

การโปรแกรม การออกแบบ และการวิเคราะห์เชิงวัตถุ Object-Oriented Programming, Design and Analysis. สาขาวิชาวิทยาการคอมพิวเตอร์ ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร. แนวความคิดภาษาเชิงวัตถุ. การเน้นที่ปัญหาและองค์ประกอบของปัญหาเพื่อการแก้ปัญหานั้น เราเรียกว่า Problem space

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - Faraday


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Object oriented programming design and analysis l.jpg

การโปรแกรม การออกแบบและการวิเคราะห์เชิงวัตถุObject-Oriented Programming, Design and Analysis

สาขาวิชาวิทยาการคอมพิวเตอร์

ภาควิชาคณิตศาสตร์

คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร


Slide2 l.jpg
แนวความคิดภาษาเชิงวัตถุแนวความคิดภาษาเชิงวัตถุ

  • การเน้นที่ปัญหาและองค์ประกอบของปัญหาเพื่อการแก้ปัญหานั้น เราเรียกว่า Problem space

  • เหมือนการจำลองความเป็นจริงในชีวิตความเป็นอยู่ของมนุษย์ที่จะประกอบด้วย คน สัตว์ สิ่งของ และใช้สิ่งต่างๆ เพื่อแก้ปัญหา คือแต่ละสิ่ง มีหน้าที่ในการแก้ปัญหา

ต้องการหาความบันเทิงด้วยดนตรี

ก็ต้องมีสิ่งต่างๆ คือเครื่องดนตรีและ

คนเล่นดนตรี เป็นต้น


Alan kay l.jpg
แนวคิดของเอลัน เคย์ แนวความคิดภาษาเชิงวัตถุ(Alan Kay)

เป็นผู้หนึ่งที่พัฒนาตัวแปร small Talk ซึ่งเป็นต้นแบบของการเขียนโปรแกรมเชิงวัตถุ ได้ให้นิยามของภาษาเชิงวัตถุไว้ดังนี้

  • ทุกๆ สิ่งเป็นวัตถุ

  • โปรแกรม คือ กลุ่มของวัตถุที่ส่งสารบอกกันเพื่อทำงาน

  • วัตถุแต่ละวัตถุมีหน่วยความจำ

  • วัตถุต้องมีชนิด

  • วัตถุที่จัดอยู่ในประเภทเดียวกันย่อมได้รับข่าวสารเหมือนกัน


Slide5 l.jpg
ทุกๆ สิ่งเป็นวัตถุแนวความคิดภาษาเชิงวัตถุ

  • องค์ประกอบของโปรแกรมคอมพิวเตอร์ทุก ๆ ส่วนจะต้องเป็นวัตถุซึ่งกฎข้อนี้เองที่ทำให้ล่ามแปลภาษาส่วนมากรวมทั้ง JAVA ด้วย ไม่เป็นภาษาเชิงวัตถุแบบบริสุทธิ์เพราะในล่ามแปลภาษา JAVA ยังมีบางส่วนที่ไม่เป็นวัตถุ เช่น การกำหนดตัวแปร เป็นต้น


Slide6 l.jpg
หน่วยความจำคอมพิวเตอร์หน่วยความจำคอมพิวเตอร์


Slide7 l.jpg
โปรแกรมคือกลุ่มของวัตถุโปรแกรมคือกลุ่มของวัตถุ

  • โปรแกรมในความหมายของการเขียนโปรแกรมเชิงวัตถุ ก็คือ กลุ่มของวัตถุที่ส่งข้อความข่าวสาร(Message) ถึงกันและกันเพื่อบอกให้วัตถุทำงาน


Slide8 l.jpg
วัตถุมีหน่วยความจำโปรแกรมคือกลุ่มของวัตถุ

  • วัตถุในความหมายของการเขียนโปรแกรมเชิงวัตถุ จะต้องมีหน่วยความจำของตัวเอง หรือนั่นคือส่วนที่เก็บข้อมูลส่วนของวัตถุนั้นๆ เองซึ่งเราเรียกว่า attribute

  • ส่วนของข้อมูลนี้อาจจะประกอบขึ้นจากวัตถุอื่นๆ ได้

  • เป็นที่มาของการเกิดคุณสมบัติการถ่ายทอดและคุณสมบัติขององค์ประกอบคอมโพสิต


Slide9 l.jpg
วัตถุจะต้องจัดอยู่ในกลุ่มหรือชนิดวัตถุจะต้องจัดอยู่ในกลุ่มหรือชนิด

  • ชนิดของวัตถุดังกล่าวก็คือคลาส

  • ในการเขียนโปรแกรมเชิงวัตถุจะต้องเขียนคลาสขึ้นมาก่อนเสมอ แล้วจึงจะสร้างวัตถุจากคลาส ดังนั้นวัตถุจึงจะต้องอยู่ในคลาสใดคลาสหนึ่ง

  • ดังนั้นคลาสเปรียบเหมือนแม่พิมพ์ ส่วนวัตถุก็คือสิ่งที่เกิดจากแม่พิมพ์ วัตถุที่เกิดจากคลาสเดียวกันจึงมีคุณสมบัติพื้นฐานเหมือนกัน


Slide10 l.jpg
ตัวอย่างชนิดของวัตถุและวัตถุตัวอย่างชนิดของวัตถุและวัตถุ

:siemens

MobilePhone

String bandname

Button button

Screen screen

Antenna antenna

Simm simNet

:ericsson

call()

receive()

hangup()

sendSMS()

:nokia


Slide11 l.jpg
วัตถุประเภทเดียวกันย่อมได้ข่าวสารเหมือนกันวัตถุประเภทเดียวกันย่อมได้ข่าวสารเหมือนกัน

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


Slide12 l.jpg
แนวคิดที่เป็นอัตประโยชน์จากการโปรแกรมเชิงวัตถุแนวคิดที่เป็นอัตประโยชน์จากการโปรแกรมเชิงวัตถุ

  • การซ่อนรายละเอียด

  • การเชื่อมต่อ

  • การนำวัตถุมาใช้ใหม่

  • การพ้องรูป: หนึ่งรูปหลายพฤติกรรม


Information hiding l.jpg
การซ่อนรายละเอียดแนวคิดที่เป็นอัตประโยชน์จากการโปรแกรมเชิงวัตถุ(Information Hiding)

  • มีผู้สังเกตเห็นว่าในชีวิตประจำวันของเรานั้น ไม่จำเป็นต้องทราบหรือรู้ทุกเรื่องก็สามารถใช้งานสิ่งของนั้นๆ ได้ เช่น

โทรทัศน์ที่มีอยู่ตามบ้าน เรา

ไม่ต้องทราบการทำงานของ

อุปกรณ์ภายในของมัน แต่

เราก็สามารถเปิดเครื่องและ

ดูรายการโปรดของเราได้

เพียงรู้วิธีการกดปุ่มต่างๆ


Interface l.jpg
การเชื่อมต่อแนวคิดที่เป็นอัตประโยชน์จากการโปรแกรมเชิงวัตถุ(Interface)

  • โดยปรกติจะเชื่อมต่อระหว่างผู้ใช้กับคอมพิวเตอร์ เรียกว่า user interface

แต่คำว่าอินเตอร์เฟสสำหรับวัตถุคือ ส่วนที่บอกว่าวัตถุนั้นให้บริการหรือสามารถทำอะไรได้บ้าง


Reusable l.jpg
การนำวัตถุมาใช้ใหม่แนวคิดที่เป็นอัตประโยชน์จากการโปรแกรมเชิงวัตถุ(Reusable)

  • จุดประสงค์ใหญ่ของการเขียนโปรแกรมเชิงวัตถุก็คือการนำส่วนต่างๆ ของวัตถุที่สร้างขึ้นกลับมาใช้ใหม่หรือที่เรียกในภาษาอังกฤษว่า “reuse” เมื่อมีวัตถุถูกสร้างขึ้นมา ก็สามารถนำวัตถุต่างๆ มาประกอบกันเป็นวัตถุอีกชนิดหนึ่งได้ เพื่อให้วัตถุใหม่มีความสามารถมากกว่าเดิม เช่นกรณีของรถยนต์สามารถประกอบขึ้นจาก เครื่องยนต์ ตัวถัง ประตู และล้อ เป็นต้น


Slide16 l.jpg
ตัวอย่างวัตถุที่เกิดจากวิธีคอมโพสิตตัวอย่างวัตถุที่เกิดจากวิธีคอมโพสิต


Polymorphism l.jpg
การพ้องรูป ตัวอย่างวัตถุที่เกิดจากวิธีคอมโพสิต(Polymorphism)

  • รากฐานของการพ้องรูปคือคุณสมบัติการถ่ายทอด

  • คุณสมบัติการถ่ายทอดยืนยันได้ว่าคลาสลูกที่เกิดจากคลาสแม่เดียวกันย่อมมีคุณสมบัติเหมือนกัน

  • เป็นที่มาของหนึ่งรูปหลายพฤติกรรม

คลาสแม่คือ Shape

คลาสลูกคือ Circle, Triangle, Rectangle มีคุณสมบัติเหมือน

คลาสแม่ทุกประการ


Slide18 l.jpg

Shapeตัวอย่างวัตถุที่เกิดจากวิธีคอมโพสิต

Circle

Line

Rectangle

+draw()

+erase()

+draw()

+erase()

+draw()

+erase()

+draw()

+erase()

การถ่ายทอดให้เกิดลักษณะของพ้องรูป


Slide19 l.jpg
มารู้จักคลาสและวัตถุกันมารู้จักคลาสและวัตถุกัน

  • คลาสเป็นเหมือนส่วนของแม่พิมพ์ เพื่อบอกลักษณะว่าวัตถุในคลาสนี้มีลักษณะและพฤติกรรมเป็นอย่างไร

  • วัตถุเป็นสิ่งที่ถูกสร้างขึ้นมาจากคลาสเพื่อใช้งาน กำหนดค่าต่างๆ ส่งข้อความสั่งให้วัตถุทำงาน

คลาสสี่เหลี่ยมผืนผ้า

คุณสมบัติ:กว้าง, ยาว

เมธทอด:คำนวณพื้นที่

วัตถุA:สี่เหลี่ยมผืนผ้า

กว้าง 2 ยาว 3

เมธทอด:คำนวณพื้นที่


Slide20 l.jpg
เปรียบเทียบคลาสกับวัตถุเปรียบเทียบคลาสกับวัตถุ


Slide21 l.jpg
ภาษาโปรแกรมเชิงวัตถุเปรียบเทียบคลาสกับวัตถุ

  • ในปี 1967 ภาษา Simula67 ถูกพัฒนาที่นอร์เวย์ เพื่อช่วยในการเขียนโปรแกรมสำหรับจำลอง (simulation)

  • โดยทั่วไประบบที่ซับซ้อนจะประกอบด้วยวัตถุจำนวนมากที่ทำงานเกี่ยวข้องกัน โดยการสร้างโปรแกรมที่จำลองการทำงานของแต่ละวัตถุไปที่ละขั้นจนกว่าจะได้คำตอบ ซึ่งแนวคิดนี้เรียกว่า การโปรแกรมเชิงวัตถุ

  • 1990s มีภาษาเก่าถูกเพิ่มเติมในส่วนของการโปรแกรมเชิงวัตถุ แต่โดยพื้นฐานของภาษาจึงทำให้กลไกไม่เป็นเชิงวัตถุอย่างสมบูรณ์


Slide22 l.jpg
JAVAเปรียบเทียบคลาสกับวัตถุ

  • เป็นผลิตผลจากบริษัท ซัน ไมโครซิสเต็ม ซึ่งในขณะนั้นได้คิดพัฒนาระบบซอฟต์แวร์เพื่อใช้บนชิพของเครื่องใช้ไฟฟ้าขนาดเล็ก แต่ประสบปัญหากับการใช้ภาษาซีพลัสพลัส(C++) ซึ่งเป็นภาษาเชิงวัตถุที่นิยมในขณะนั้น จึงได้คิดพัฒนาภาษาใหม่ที่เหมาะสมกว่า

  • ปัญหาของภาษา C++ คือ

    • ชิพของเครื่องใช้ไฟฟ้ามีหลายเบอร์หลายยี่ห้อที่ชุดคำสั่งต่างกัน

    • หน่วยความจำของเครื่องใช้ไฟฟ้ามีขนาดเล็ก

    • ไม่มีความปลอดภัย


Slide23 l.jpg
การออกแบบของภาษาจาวาเปรียบเทียบคลาสกับวัตถุ

  • เป็นภาษาที่ง่าย ต่อการเรียนและเข้าใจ

  • เป็นภาษาเชิงวัตถุ

  • เป็นภาษาที่มีความคงทน เพราะมีการดักจับข้อผิดพลาด

  • เป็นภาษาที่มีความปลอดภัย

  • เป็นภาษาที่รันได้กับเครื่องทุกระบบ “จาวาเป็นแพลตฟอร์ม”


Slide24 l.jpg
จาวาเป็นแพลตฟอร์มเปรียบเทียบคลาสกับวัตถุ

  • เนื่องจากจาวาได้ถูกพัฒนาเพื่อให้สามารถรันบนระบบใดก็ได้ ดังนั้นจาวาจึงได้สร้างแพลตฟอร์มของมันเองขึ้นมาเพื่อให้การแปลความของภาษาจาวาเป็นหนึ่งเดียวเท่านั้น

  • จาวาได้นำแนวคิดการจำลองเครื่องจักรสมมุติขึ้นมาเรียกว่า java virtual machine (JVM) เพื่อมาติดต่องานกับระบบที่มีอยู่


Slide25 l.jpg
จาวาและเครื่องจักรสมมุติจาวาและเครื่องจักรสมมุติ

  • แผนผังแสดงการติดต่อของจาวาและเครื่องจักรสมมุติ

Java program

Java program

Java program

Java virtual machine

Windows

Unix

Macintosh


Slide26 l.jpg
แผนผังแสดงการทำงานของภาษาจาวาแผนผังแสดงการทำงานของภาษาจาวา

java compiler

Java program

Java virtual

machine program

java interpreter


Slide27 l.jpg
แรกเริ่มกับจาวาแผนผังแสดงการทำงานของภาษาจาวา

  • ดาวน์โหลดชุดพัฒนาภาษาจาวาที่เวบต์

http://java.sun.com/j2se

Java virtual machine : JRE (Java Runtime Environment)

Java Developer Kit : JDK


Slide28 l.jpg
ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวาขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา

  • ดับเบิ้ลคลิกไอคอนนี้เพื่อทำการติดตั้ง


Slide29 l.jpg
ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวาขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา


Slide30 l.jpg
ขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวาขั้นตอนการติดตั้งชุดพัฒนาภาษาจาวา


Slide31 l.jpg
กำหนดเส้นทางของคำสั่งในชุดพัฒนาภาษาจาวากำหนดเส้นทางของคำสั่งในชุดพัฒนาภาษาจาวา

  • คลิกขวาที่ไอคอน My computer

  • เลือก properties จากเมนูบ๊อบอัพ

  • จะปรากฏหน้าต่างดังด้านขวา

  • คลิก Environment variable


Slide32 l.jpg
กำหนดเส้นทาง(ต่อ)กำหนดเส้นทางของคำสั่งในชุดพัฒนาภาษาจาวา

  • เลือก path จาก System variable

  • คลิก Edit

  • เพิ่มข้อความในส่วนแถบสีฟ้า

;C:\j2sdk1.4.1_02\bin;.


Slide33 l.jpg
ขั้นตอนการสร้างโปรแกรมจาวาขั้นตอนการสร้างโปรแกรมจาวา

A.java

javac A.java

A.class

java A

1. editor

2. compiler

javac filename.java

3. interpreter

java filename


Slide34 l.jpg
มารู้จักซอฟแวร์สำหรับสร้างโปรแกรมภาษามารู้จักซอฟแวร์สำหรับสร้างโปรแกรมภาษา

  • ซอฟต์แวร์ที่ใช้ชื่อว่า EditPlus

  • สามารถสร้างโปรแกรมได้หลายภาษาโดยจะมีสีแยกประเภทของคำในแต่ละภาษาให้ ทำให้สะดวกต่อการอ่านโปรแกรม

  • ให้ทำการสร้าง config เพื่อให้โปรแกรมเราสามารถคอมไพล์ไฟล์โปรแกรมจาวาและรันไฟล์โปรแกรมจาวาได้


Config editplus l.jpg
สร้าง มารู้จักซอฟแวร์สำหรับสร้างโปรแกรมภาษาconfig ใน EditPlus กันก่อนนะคะ

  • ทำการสร้าง configเพื่อให้โปรแกรม EditPlusสามารถคอมไพล์และรันโปรแกรมภาษาจาวาได้


Config editplus36 l.jpg
สร้าง มารู้จักซอฟแวร์สำหรับสร้างโปรแกรมภาษาconfig ใน EditPlus กันก่อนนะคะ

คลิก add tool/Program แล้วเติมข้อความดังในภาพด้านล่างทั้งสอง

ขวา set interpreter

ซ้าย set compiler


Editplus l.jpg
เริ่มใช้โปรแกรมมารู้จักซอฟแวร์สำหรับสร้างโปรแกรมภาษาEditPlus

  • เปิดโปรแกรม EditPlusขึ้นมา

  • คลิกเมนู File/New เลือก java

  • ลองพิมพ์ไฟล์ต่อไปนี้แล้วบันทึกในชื่อ Welcome1.java

/** A first program in Java.*/

public class Welcome1 {

/* main method

begins execution of Java application */

public static void main ( String args[] )

{

System.out.println(“Welcome to Java Programming!”);

} // end method main

} // end class Welcome1


Slide38 l.jpg
ลองสร้างโปรแกรมแรกกันเถอะลองสร้างโปรแกรมแรกกันเถอะ


ad