More Related Content Similar to Chapter1 uml3 (20) More from Man YourJust'one More from Man YourJust'one (9) Chapter1 uml31. บทที่ 7 วิธ ก ารเชิง วัต ถุ
ี
และการออกแบบคลาส
Srinagarindra The Princess Mother
School Kanchanaburi
1
2. แนวคิด เชิง วัต ถุ(Object Oriented) หมาย
ถึง การใช้ Object เป็นตัวหลักในการ
พิจารณาความเป็นจริงต่างๆที่เกิดขึ้นในโลก
โดยมองทุกสิ่งในโลกเป็นวัตถุทั้งหมด และมอง
ว่ากิจกรรมที่เกิดขึ้นในโลกนี้เกิดจากความ
สัมพันธ์และปฏิสัมพันธ์ระหว่างวัตถุ
2
3. เปรียบเทียบการวิเคราะห์และออกแบบระบบวิธีเดิมกับวิธีเช
วิธ ีเ ดิม วิธ เ ชิง วัต ถุ
ี
เริ่มต้นจากการวิเคราะห์เอกสาร เริ่มต้นการวิเคราะห์จาก Objects
ผลลัพธ์ และการทำางานของ ที่ สามารถเห็นได้ชัดเจน
ระบบงานเดิม
แตกการทำางานออกเป็นหน่วย แบ่งกลุ่มของ Object ตาม
ย่อยๆ คุณลักษณะ
องค์ประกอบต่างๆของระบบ เช่น แต่ละ Object เป็นอิสระต่อกัน
การประมวลผล การออกรายงาน การเปลี่ยนแปลงจะไม่กระทบกัน
การคำานวณ จะเกี่ยวพันกัน การ
เปลี่ยนแปลงจะกระทบซึ่งกันและ
กัน
3
5. วัตถุ(Object) คือหน่วยสนใจของระบบที่
ทำาให้เกิดเหตุการณ์ วัตถุเป็นได้ทั้งสิงที่สามารถ
่
จับต้องได้ (เช่น โต๊ะ รถยนต์ คอมพิวเตอร์ คน)
และวัตถุที่ไม่สามารถจับต้องได้ (เช่น บริษัท
ฝ่ายต่างๆ หลักสูตร)
การสื่อสารระหว่าง Object เรียกว่า Message
5
6. Class คือกลุ่มของ Object ที่มีโครงสร้างพื้น
ฐานพฤติกรรมเดียวกัน Object ที่มคุณสมบัติ
ี
เดียวกัน ก็จะรวมกลุ่มอยู่ใน Class เดียวกัน
Class และ Object มีความคล้ายกันมากจน
ทำาให้หลายคนสงสัยว่าเป็นสิงเดียวกันหรือไม่
่
ในความเป็นจริง Class ถือว่าเป็น นามธรรม
(Abstract) ในขณะที่ Object นั้นเป็นสิ่งที่มีตัว
ตน (Concrete) กล่าวคือ Class เป็นเหมือน
พิมพ์เขียวของ Object โดยที่ Class จะไม่
สามารถทำางานได้ แต่ Object สามารถทำางาน
ได้
6
7. Student
Class นอกจากจะมีชอ Class
ื่
กำากับแล้ว ยังมี คุณสมบัติ StudentID
FirstName
(Attributes) และ หน้าที่การ LastName
ทำางาน (Operations หรือ Address
Methods) Telephone
Name Birthdate
Faculty
Attributes GPA
Register()
Methods Drop()
Withdraw()
ตัวอย่าง Class
7
Student
8. การสืบทอดคุณสมบัติ (Inheritance) คือ การ
ที่ Subclass ได้รับการถ่ายทอดคุณสมบัติ
(Attributes) มาจาก Superclass แล้วผนวก
คุณสมบัติพิเศษเพิ่มเข้าไป
Multiple
Inheritance
สัญญลักษณ์ที่ใช้
คือ ลูกศรหัวรูปสามเหลี่ยมใส
ชีจาก Subclass ไปยัง Superclass
้
8
10. หลักของการสืบทอดคุณสมบัติจะทำาให้ความ
สัมพันธ์ระหว่าง Object มีความชัดเจนยิ่งขึ้น
กล่าวคือถ้ามีความสัมพันธ์ที่ชดเจนมากขึ้น
ั
เท่าใด จะส่งผลให้การออกแบบระบบงานง่าย
ขึ้น
ผู้ออกแบบระบบงานเชิงวัตถุสามารถออกแบบ
ระบบงานขนาดใหญ่ได้โดยการอาศัย Object
ที่มีการนิยามไว้ก่อนหรือที่มีผอื่นทำาการ
ู้
ออกแบบไว้ก่อนแล้ว ซึ่งเป็นที่มาของการนำา
กลับมาใช้ใหม่ (Reusability) 10
11. การสืบทอดคุณสมบัติมีข้อดี คือ
1. ทำาให้มโครงสร้างที่เป็นระบบ สามารถปรับ
ี
เปลี่ยนได้ง่าย
2. ลดเวลาในการพัฒนาระบบ
3. ลดค่าใช้จ่ายในการพัฒนาระบบ
11
12. Polymorphism คือ การที่ Object ที่ต่างกัน
มีปฏิกิริยาตอบสนองต่อ Function/ Message
หนึ่งๆในวิธีที่ต่างกัน
Class รูปสีเหลี่ยม กับ Class รูปสามเหลี่ยม
่
ได้รับการสืบทอดคุณสมบัติจาก Class รูป
หลายเหลี่ยม โดยทั้งคูมี Function ที่ชื่อ
่
draw() เหมือนกัน แต่เมื่อมีการเรียกใช้
function ดังกล่าว Object ที่สร้างจาก Class
รูปสี่เหลี่ยมจะมีการวาดรูปสี่เหลี่ยม ขณะที่
Object ที่สร้างจาก Class รูปสามเหลี่ยมจะมี
การวาดรูปสามเหลี่ยม 12
13. • หลักการ
Polymorphism
ช่วยให้สามารถนำา
code กลับมาใช้ใหม่
ได้ เนื่องจากสามารถ
กำาหนดชุดคำาสั่งทั่วไป
และมอบหน้าที่ราย
ละเอียดของการนำาไป
ใช้แก่ Object ที่
เกี่ยวข้องจัดการ
13
14. การซ่อนรายละเอียดเป็นพื้นฐานของการปกปิด
ข้อมูลภายในและวิธีการทำางานของ Object
ตามแนวคิดเชิงวัตถุ การจะล่วงรู้รายละเอียดข้อมูล
ของ Object จะต้องได้รับอนุญาตจากเจ้าของ
Object นันก่อน กล่าวคือการเข้าถึงข้อมูลนั้น จะ
้
ไม่สามารถเข้าถึงได้โดยตรง แต่จะต้องมีการตอบ
รับจาก Method ใน Object ปลายทางนั้นว่าจะ
ยอมให้ Object ทีส่ง Message เข้าถึงข้อมูลของ
่
ตนหรือไม่
Encapsulation หมายถึง ลักษณะการเขียน
โปรแกรมทีจะมีการซ่อนข้อมูลทีต้องการควบคุม
่ ่ 14
15. กลไกการปกป้องกันข้อมูลและวิธีการทำางาน
ของ Object สามารถเป็น
Public (+) ซึ่งสามารถเข้าถึงได้โดยตรงจาก
ภายนอก
Private (#) ซึ่งจะถูกใช้งานจากภายใน Class
เท่านั้น
Protected (-) ซึ่งจะสามารถเห็นหรือเข้าถึงได้
จากภายใน Subclass เท่านั้น
15
17. เป็นความสัมพันธ์ระหว่าง Object หรือ Class
แบบ “Whole-Part” หรือ “is part of” โดยจะ
มี Class ที่ใหญ่ที่สุดที่เป็น Object หลัก และมี
Class อื่นเป็นส่วนประกอบ
17
18. เป็นความสัมพันธ์
ระหว่าง Object หรือ
Class แบบขึ้นต่อกัน
และมีความเกี่ยวข้องกัน
เสมอ โดยจะมี Class
ซึ่งเป็นองค์ประกอบของ
Class อื่นที่ใหญ่กว่า
เมื่อ Class ที่ใหญ่กว่า
ถูกทำาลาย Class ที่
เป็นองค์ประกอบก็จะถูก
ทำาลายไปด้วย 18
19. เป็นความสัมพันธ์
ระหว่าง Object หรือ
Class ในลักษณะ
ของการสืบทอด
คุณสมบัติจาก Class
หนึ่ง (Superclass)
ไปยังอีก Class หนึ่ง
(Subclass)
19
20. บทที่ 12 การเขีย นโปรแกรม
โดยใช้ NetBeans
Srinagarindra The Princess Mother
School Kanchanaburi
20
21. NetBeans IDE เป็น Freeware Editor อีก
ตัวหนึ่ง ซึ่งได้รับความนิยมในการใช้พัฒนา
โปรแกรมโดย NetBeans นั้นสนับสนุนการ
พัฒนาโปรแกรมในหลายภาษา เช่นJava,
php, C/C++ นอกจากนี้เรายัง
สามารถ download PlugIn ต่างๆมาใช้งาน
ร่วมกับตัว NetBeans เองด้วย ยกตัวอย่าง
เช่น iReport เป็น Plugin ที่ใช้ในการ
สร้างreport หรือ Visual Web Page
Layouts ใช้ในการแสดงตัวอย่างหน้า web 21
22. ก่อนที่จะเริ่มใช้งาน NetBeans เราสามารถ download ตัว
โปรแกรม NetBeans ได้ที่
http://netbeans.org/downloads/index.html
โดย NetBeans นั้นมีหลายversion หลาย Platform เรา
สามารถเลือกภาษา Platform และ version ได้ตามความ
เหมาะสมเลยครับ
เมื่อทำาการ download มาแล้วจะได้เป็น .exe file ซึ่งเรา
สามารถทำาการติดตั้งโปรแกรมไปยัง directory ที่ต้องการจะ
ทำาการติดตั้งได้เลย หลังจากติดตั้งโปรแกรมเสร็จสมบูรณ์แล้ว
เราสามามารถเข้าโปรแกรม NetBeans ได้จาก
หน้า desktop
22
24. ในที่นี้เราจะทำาการพัฒนาโปรแกรมด้วยภาษา JAVA เพราะ
ฉะนั้นจะต้องทำาการdownload ตัว JDK หรือ Java Development
Kit เสียก่อน สามารถ downloadได้ที่
http://www.oracle.com/technetwork/java/javase/downloads/index
เมื่อ download JDK แล้วก็ต้องทำาการ Set class path เพื่อให้
สามารถ Compileและ Run Java ได้ โดยวิธทำาสามารถติดตาม
ี
ได้จาก Link ด้านล่างเลยครับ
http://archive.oracle.in.th/2008/02/set-path-class-path-j2
se-dos.htmlหรือ
http://www.dominixz.com/blog/software-tips/set-java-to-compile
24
26. เป็นส่วนของแถบเมนู และ Tool ต่างๆ
เป็นส่วนที่แสดงและจัดการ Project ต่างๆ
เหมือน
เป็นการ Browse ดู Projectหรือ File ต่างๆ
เป็นส่วนที่ใช้ในการเขียน Code
เป็นส่วนที่ใช้ในการแสดงผลการทำางานต่าง
เมื่อทำาการ Run โปรแกรม และยังมีสวนของ
่
การ debug โปรแกรมด้วย
26
29. จากนั้นจะมีหน้าต่างให้กำาหนดค่ารายละเอียดต่างๆ
ของ Project โดยจะบังคับให้ใส่Project Name ในที่นี้จะ
ตั้งชือ Project ว่า NetBeansTutorial และชือ Main
่ ่
Class ว่า MainClass เมื่อกำาหนดค่ารายละเอียดต่างๆแล้ว
กด Finish
เราจะได้ Project ที่ชื่อ
ว่า NetBeansTutorial และ File ชื่อ MainClass.java ขึ้
นมา
ต่อไปเราจะลองสร้าง class TestObj ขึ้นมา เพื่อลอง
ใช้ Funtion บางอย่างของNetBeans ครับ
โดยการสร้าง class ใหม่นั้น เราสามารถทำาได้โดย คลิกขวา
ที่ชื่อ Project แล้วเลือกNew >> Java Class ดังภาพ
29
30. หลังจากนั้นจะปรากฏหน้าต่างขึ้นมาให้กำาหนดรายละเอียด โดยให้ตั้ง
ชื่อ Class ว่าTestObj แล้วกด Finish ภายใน class TestObj จะ
มี code ดังนี้ครับ
public class TestObj {
private String firstName;
private String lastName;
public void showName() {
System.out.println("THIS IS METHOD showName()");
System.out.println("My name is "+firstName+" "+lastName);
}
}
30
31. จะเห็นได้ว่า Attribute ใน Class
TestObj เป็น private ฉะนันก็จะต้องมี Getter
้
and Setter เราสามารถที่จะสั่ง
ให้ NetBeans สร้าง Getter and
Setter จากAttribute ทีมีอยู่ได้โดยการคลิกขวา
่
ที่หน้าจอที่ใช้เขียน code แล้วเลือก Insert
Codeจะปรากฏหน้าต่างขึ้นมาให้เลือกที่ Getter
and Setter
หน้าต่างสำาหรับการ Generate Getters and
Setters จะขึ้นมา ให้เราทำาการเลือกว่าจะ
สร้าง Getters and Setters ให้ 31
32. เราจะได้ code ของ class TestObj ดังนี้ public void setFirst
public class TestObj { Name(String firstName)
private String firstName; {
private String lastName; this.firstName
= firstName;
public void showName() { }
System.out.println("THIS IS METHOD showName()");
public String
System.out.println("My name is "+firstName+"
"+lastName); getLastName() {
} return lastNam
e;
public String getFirstName() { }
return firstName;
} public void setLast
Name(String lastName)
{
32
this.lastName =
33. นอกจากการ Generate Getters and Setters แล้ว เราสามารถคลิกขวา
เพื่อดูFunction อื่นๆที่ NetBeans สามารถช่วยจัดการให้การทำางานของ
เราง่ายขึ้นครับ
เมื่อได้ class TestObj แล้ว ต่อไปเราก็ทำาการ
แก้ไข code ของ MainClass ให้เป็นดังนี้
public class MainClass {
public static void main(String[] args) {
TestObj temp = new TestObj();
temp.setFirstName("Itthi");
temp.setLastName("Kruenarongkul");
temp.showName();
temp.setFirstName("Monthinee");
temp.setLastName("Buntawee");
temp.showName(); 33
34. ในการ code คำาสังต่างๆ เราสามารถกด CTRL
่
+SpaceBar เพื่อเรียกดูได้ว่าสามารถใช้ method หรือ
เรียก Attribute ใดมาใช้ได้บ้าง หรือบางที NetBeans ก็
จะขึ้นส่วนนี้มาให้เอง
เมื่อทำาการแก้ไข Code เสร็จเรียบร้อย เราจะลอง
ทำาการ Run โปรแกรมนี้ดู โดยการกดปุมสีเขียวที่อยูดานล่าง
่ ่ ้
แถบเมนู
34