SlideShare a Scribd company logo
1 of 35
บทที่ 7 วิธ ก ารเชิง วัต ถุ
            ี
และการออกแบบคลาส


Srinagarindra The Princess Mother
School              Kanchanaburi
                                    1
 แนวคิด เชิง วัต ถุ(Object Oriented) หมาย
 ถึง การใช้ Object เป็นตัวหลักในการ
 พิจารณาความเป็นจริงต่างๆที่เกิดขึ้นในโลก
 โดยมองทุกสิ่งในโลกเป็นวัตถุทั้งหมด และมอง
 ว่ากิจกรรมที่เกิดขึ้นในโลกนี้เกิดจากความ
 สัมพันธ์และปฏิสัมพันธ์ระหว่างวัตถุ



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

    แตกการทำางานออกเป็นหน่วย        แบ่งกลุ่มของ Object ตาม
    ย่อยๆ                           คุณลักษณะ

    องค์ประกอบต่างๆของระบบ เช่น แต่ละ Object เป็นอิสระต่อกัน
    การประมวลผล การออกรายงาน การเปลี่ยนแปลงจะไม่กระทบกัน
    การคำานวณ จะเกี่ยวพันกัน การ
    เปลี่ยนแปลงจะกระทบซึ่งกันและ
    กัน


                                                                      3
เปรียบเทียบการวิเคราะห์และออกแบบระบบวิธีเดิมกับวิธีเช
                 วิธ ีเ ดิม                  วิธ เ ชิง วัต ถุ
                                                 ี
     การปรับเปลี่ยนระบบต้องแก้ไข   การปรับเปลียนระบบ ทำาได้โดย
                                              ่
     Source Code                   การเปลี่ยน Attributes,
                                   Functions ของ Object

     Tools ที่สนับสนุนมีน้อยลง     Tools ที่สนับสนุนมีมากขึ้น




                                                                 4
 วัตถุ(Object) คือหน่วยสนใจของระบบที่
  ทำาให้เกิดเหตุการณ์ วัตถุเป็นได้ทั้งสิงที่สามารถ
                                        ่
  จับต้องได้ (เช่น โต๊ะ รถยนต์ คอมพิวเตอร์ คน)
  และวัตถุที่ไม่สามารถจับต้องได้ (เช่น บริษัท
  ฝ่ายต่างๆ หลักสูตร)
 การสื่อสารระหว่าง Object เรียกว่า Message




                                                     5
 Class  คือกลุ่มของ Object ที่มีโครงสร้างพื้น
  ฐานพฤติกรรมเดียวกัน Object ที่มคุณสมบัติ
                                    ี
  เดียวกัน ก็จะรวมกลุ่มอยู่ใน Class เดียวกัน
 Class และ Object มีความคล้ายกันมากจน
  ทำาให้หลายคนสงสัยว่าเป็นสิงเดียวกันหรือไม่
                              ่
  ในความเป็นจริง Class ถือว่าเป็น นามธรรม
  (Abstract) ในขณะที่ Object นั้นเป็นสิ่งที่มีตัว
  ตน (Concrete) กล่าวคือ Class เป็นเหมือน
  พิมพ์เขียวของ Object โดยที่ Class จะไม่
  สามารถทำางานได้ แต่ Object สามารถทำางาน
  ได้
                                                   6
Student
 Class นอกจากจะมีชอ Class
                       ื่
 กำากับแล้ว ยังมี คุณสมบัติ    StudentID
                               FirstName
 (Attributes) และ หน้าที่การ   LastName
 ทำางาน (Operations หรือ       Address
 Methods)                      Telephone
            Name               Birthdate
                               Faculty
          Attributes           GPA
                               Register()
          Methods              Drop()
                               Withdraw()
                               ตัวอย่าง Class
                                                7
                                  Student
 การสืบทอดคุณสมบัติ   (Inheritance) คือ การ
 ที่ Subclass ได้รับการถ่ายทอดคุณสมบัติ
 (Attributes) มาจาก Superclass แล้วผนวก
 คุณสมบัติพิเศษเพิ่มเข้าไป



                                     Multiple
                                    Inheritance
 สัญญลักษณ์ที่ใช้
                คือ ลูกศรหัวรูปสามเหลี่ยมใส
 ชีจาก Subclass ไปยัง Superclass
   ้
                                                  8
Without
Inheritance




              With   9
 หลักของการสืบทอดคุณสมบัติจะทำาให้ความ
  สัมพันธ์ระหว่าง Object มีความชัดเจนยิ่งขึ้น
  กล่าวคือถ้ามีความสัมพันธ์ที่ชดเจนมากขึ้น
                                   ั
  เท่าใด จะส่งผลให้การออกแบบระบบงานง่าย
  ขึ้น
 ผู้ออกแบบระบบงานเชิงวัตถุสามารถออกแบบ
  ระบบงานขนาดใหญ่ได้โดยการอาศัย Object
  ที่มีการนิยามไว้ก่อนหรือที่มีผอื่นทำาการ
                                ู้
  ออกแบบไว้ก่อนแล้ว ซึ่งเป็นที่มาของการนำา
  กลับมาใช้ใหม่ (Reusability)                   10
   การสืบทอดคุณสมบัติมีข้อดี คือ
     1. ทำาให้มโครงสร้างที่เป็นระบบ สามารถปรับ
               ี
        เปลี่ยนได้ง่าย
     2. ลดเวลาในการพัฒนาระบบ
     3. ลดค่าใช้จ่ายในการพัฒนาระบบ




                                                 11
 Polymorphism       คือ การที่ Object ที่ต่างกัน
 มีปฏิกิริยาตอบสนองต่อ Function/ Message
 หนึ่งๆในวิธีที่ต่างกัน
 Class  รูปสีเหลี่ยม กับ Class รูปสามเหลี่ยม
              ่
 ได้รับการสืบทอดคุณสมบัติจาก Class รูป
 หลายเหลี่ยม โดยทั้งคูมี Function ที่ชื่อ
                         ่
 draw() เหมือนกัน แต่เมื่อมีการเรียกใช้
 function ดังกล่าว Object ที่สร้างจาก Class
 รูปสี่เหลี่ยมจะมีการวาดรูปสี่เหลี่ยม ขณะที่
 Object ที่สร้างจาก Class รูปสามเหลี่ยมจะมี
 การวาดรูปสามเหลี่ยม                                12
• หลักการ
  Polymorphism
  ช่วยให้สามารถนำา
  code กลับมาใช้ใหม่
  ได้ เนื่องจากสามารถ
  กำาหนดชุดคำาสั่งทั่วไป
  และมอบหน้าที่ราย
  ละเอียดของการนำาไป
  ใช้แก่ Object ที่
  เกี่ยวข้องจัดการ
                           13
 การซ่อนรายละเอียดเป็นพื้นฐานของการปกปิด
  ข้อมูลภายในและวิธีการทำางานของ Object
 ตามแนวคิดเชิงวัตถุ การจะล่วงรู้รายละเอียดข้อมูล
  ของ Object จะต้องได้รับอนุญาตจากเจ้าของ
  Object นันก่อน กล่าวคือการเข้าถึงข้อมูลนั้น จะ
            ้
  ไม่สามารถเข้าถึงได้โดยตรง แต่จะต้องมีการตอบ
  รับจาก Method ใน Object ปลายทางนั้นว่าจะ
  ยอมให้ Object ทีส่ง Message เข้าถึงข้อมูลของ
                   ่
  ตนหรือไม่
 Encapsulation หมายถึง ลักษณะการเขียน
 โปรแกรมทีจะมีการซ่อนข้อมูลทีต้องการควบคุม
          ่                  ่                      14
 กลไกการปกป้องกันข้อมูลและวิธีการทำางาน
 ของ Object สามารถเป็น
  Public (+) ซึ่งสามารถเข้าถึงได้โดยตรงจาก
   ภายนอก
  Private (#) ซึ่งจะถูกใช้งานจากภายใน Class
   เท่านั้น
  Protected (-) ซึ่งจะสามารถเห็นหรือเข้าถึงได้
   จากภายใน Subclass เท่านั้น

                                                  15
 เป็นความสัมพันธ์ระหว่าง   Object หรือ Class
 แบบ 2 ทิศทาง




                                                16
 เป็นความสัมพันธ์ระหว่าง     Object หรือ Class
 แบบ “Whole-Part” หรือ “is part of” โดยจะ
 มี Class ที่ใหญ่ที่สุดที่เป็น Object หลัก และมี
 Class อื่นเป็นส่วนประกอบ




                                                   17
 เป็นความสัมพันธ์
  ระหว่าง Object หรือ
  Class แบบขึ้นต่อกัน
  และมีความเกี่ยวข้องกัน
  เสมอ โดยจะมี Class
  ซึ่งเป็นองค์ประกอบของ
  Class อื่นที่ใหญ่กว่า
 เมื่อ Class ที่ใหญ่กว่า
  ถูกทำาลาย Class ที่
  เป็นองค์ประกอบก็จะถูก
  ทำาลายไปด้วย              18
 เป็นความสัมพันธ์
 ระหว่าง Object หรือ
 Class ในลักษณะ
 ของการสืบทอด
 คุณสมบัติจาก Class
 หนึ่ง (Superclass)
 ไปยังอีก Class หนึ่ง
 (Subclass)


                        19
บทที่ 12 การเขีย นโปรแกรม
โดยใช้ NetBeans



Srinagarindra The Princess Mother
School              Kanchanaburi
                                    20
 NetBeans     IDE  เป็น Freeware Editor อีก
 ตัวหนึ่ง ซึ่งได้รับความนิยมในการใช้พัฒนา
 โปรแกรมโดย NetBeans นั้นสนับสนุนการ
 พัฒนาโปรแกรมในหลายภาษา เช่นJava,
 php, C/C++ นอกจากนี้เรายัง
 สามารถ download PlugIn ต่างๆมาใช้งาน
 ร่วมกับตัว NetBeans เองด้วย ยกตัวอย่าง
 เช่น iReport เป็น Plugin ที่ใช้ในการ
 สร้างreport หรือ Visual Web Page
 Layouts ใช้ในการแสดงตัวอย่างหน้า web          21
   ก่อนที่จะเริ่มใช้งาน NetBeans เราสามารถ download ตัว
    โปรแกรม NetBeans ได้ที่
    http://netbeans.org/downloads/index.html
     โดย NetBeans นั้นมีหลายversion หลาย Platform เรา
    สามารถเลือกภาษา Platform และ version ได้ตามความ
    เหมาะสมเลยครับ 
   เมื่อทำาการ download มาแล้วจะได้เป็น .exe file ซึ่งเรา
    สามารถทำาการติดตั้งโปรแกรมไปยัง directory ที่ต้องการจะ
    ทำาการติดตั้งได้เลย หลังจากติดตั้งโปรแกรมเสร็จสมบูรณ์แล้ว
    เราสามามารถเข้าโปรแกรม NetBeans ได้จาก
    หน้า desktop  


                                                                22
 เมื่อทำาการ download มาแล้วจะได้
 เป็น .exe file ซึ่งเราสามารถทำาการติดตั้ง
 โปรแกรมไปยัง directory ที่ต้องการจะทำาการ
 ติดตั้งได้เลย หลังจากติดตั้งโปรแกรมเสร็จ
 สมบูรณ์แล้ว เราสามามารถเข้า
 โปรแกรม NetBeans ได้จากหน้า desktop  



                                             23
   ในที่นี้เราจะทำาการพัฒนาโปรแกรมด้วยภาษา 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
หน้า จอหลัก
ของ NetBeans จะแบ่ง
ออกเป็น  4 ส่ว นใหญ่ๆ
ดัง นีค รับ
      ้




                        25
 เป็นส่วนของแถบเมนู และ Tool ต่างๆ
 เป็นส่วนที่แสดงและจัดการ Project ต่างๆ
  เหมือน
  เป็นการ Browse ดู Projectหรือ File ต่างๆ
 เป็นส่วนที่ใช้ในการเขียน Code
 เป็นส่วนที่ใช้ในการแสดงผลการทำางานต่าง
  เมื่อทำาการ Run โปรแกรม และยังมีสวนของ
                                   ่
  การ debug โปรแกรมด้วย

                                             26
 เมื่อรู้จักหน้าตาหรือ GUI แบบคร่าวๆ
 ของ NetBeans กันแล้วต่อไปก็มาลองเขียน
 โปรแกรมง่ายกันครับ โดยเริ่มจากการ New
 Project ใหม่ขึ้นมา โดยการเลือกที่ File >>
 New Project




                                             27
 จะมีหน้าต่างขึ้นมาให้เราเลือก
                            โดยให้เรา
 ทำาการเลือก Java และ Java Applicationแล้ว
 กด Next




                                             28
 จากนั้นจะมีหน้าต่างให้กำาหนดค่ารายละเอียดต่างๆ
  ของ Project  โดยจะบังคับให้ใส่Project Name ในที่นี้จะ
  ตั้งชือ Project ว่า NetBeansTutorial และชือ Main
         ่                                   ่
  Class ว่า MainClass เมื่อกำาหนดค่ารายละเอียดต่างๆแล้ว
  กด Finish
 เราจะได้ Project ที่ชื่อ
  ว่า NetBeansTutorial และ File ชื่อ MainClass.java ขึ้
  นมา 
  ต่อไปเราจะลองสร้าง class TestObj ขึ้นมา เพื่อลอง
  ใช้ Funtion บางอย่างของNetBeans ครับ
 โดยการสร้าง class ใหม่นั้น เราสามารถทำาได้โดย คลิกขวา
  ที่ชื่อ Project แล้วเลือกNew >> Java Class ดังภาพ
                                                          29
   หลังจากนั้นจะปรากฏหน้าต่างขึ้นมาให้กำาหนดรายละเอียด โดยให้ตั้ง
    ชื่อ 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
 จะเห็นได้ว่า 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
   เราจะได้ 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 =
   นอกจากการ 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
 ในการ code คำาสังต่างๆ เราสามารถกด CTRL
                     ่
  +SpaceBar เพื่อเรียกดูได้ว่าสามารถใช้ method หรือ
  เรียก Attribute ใดมาใช้ได้บ้าง หรือบางที NetBeans ก็
  จะขึ้นส่วนนี้มาให้เอง 
 เมื่อทำาการแก้ไข Code เสร็จเรียบร้อย เราจะลอง
  ทำาการ Run โปรแกรมนี้ดู โดยการกดปุมสีเขียวที่อยูดานล่าง
                                       ่          ่ ้
  แถบเมนู




                                                            34
โดย  NetBeans จะทำาการ Save ให้อัตโนมัติทุกครั้งที่จะ
  ทำาการ Run ถ้า NetBeansทำาการ compile แล้วไม่
  พบ error
  โปรแกรมจะแสดงผลที่สวนด้านล่างดังภาพ
                      ่




                                                        35

More Related Content

What's hot

1.Introduction to java
1.Introduction to java1.Introduction to java
1.Introduction to javaUsableLabs
 
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุแบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุAmIndy Thirawut
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPp'dan Phuengkun
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นTua Tor
 

What's hot (6)

1.Introduction to java
1.Introduction to java1.Introduction to java
1.Introduction to java
 
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุแบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
แบบรูป ลักษณะคุณสมบัติและข้อดีของฐานข้อมูลเชิงวัตถุ
 
METHODS
METHODSMETHODS
METHODS
 
บทที่ 8 Methods
บทที่ 8 Methodsบทที่ 8 Methods
บทที่ 8 Methods
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 

Similar to Chapter1 uml3

บทที่ 6 คลาสและการเขียนโปรแกรม
บทที่ 6 คลาสและการเขียนโปรแกรมบทที่ 6 คลาสและการเขียนโปรแกรม
บทที่ 6 คลาสและการเขียนโปรแกรมNookky Anapat
 
เทคโนโลยี 3 g 5 1
เทคโนโลยี 3 g 5 1เทคโนโลยี 3 g 5 1
เทคโนโลยี 3 g 5 1Saranya Butte
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์Saipanyarangsit School
 
ใบงานที่ 2-8
ใบงานที่ 2-8ใบงานที่ 2-8
ใบงานที่ 2-8Siripassorn
 
ใบงานที่2-8
ใบงานที่2-8ใบงานที่2-8
ใบงานที่2-8noeypornnutcha
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์miiztake
 
ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์
ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์
ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์Phkphoom
 
โครงงานคอมพิวเตอร์06 09(1)
โครงงานคอมพิวเตอร์06 09(1)โครงงานคอมพิวเตอร์06 09(1)
โครงงานคอมพิวเตอร์06 09(1)adthakron09
 
งานคอม
งานคอมงานคอม
งานคอมCharisma An
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์Fernimagine
 
ใบงานที่ 3
ใบงานที่ 3ใบงานที่ 3
ใบงานที่ 3rohanlathel
 

Similar to Chapter1 uml3 (20)

Class1
Class1Class1
Class1
 
บทที่ 6 คลาสและการเขียนโปรแกรม
บทที่ 6 คลาสและการเขียนโปรแกรมบทที่ 6 คลาสและการเขียนโปรแกรม
บทที่ 6 คลาสและการเขียนโปรแกรม
 
Java 7&12 6 2
Java 7&12 6 2Java 7&12 6 2
Java 7&12 6 2
 
เทคโนโลยี 3 g 5 1
เทคโนโลยี 3 g 5 1เทคโนโลยี 3 g 5 1
เทคโนโลยี 3 g 5 1
 
3
33
3
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
ใบงานที่ 2-8
ใบงานที่ 2-8ใบงานที่ 2-8
ใบงานที่ 2-8
 
ใบงานที่2-8
ใบงานที่2-8ใบงานที่2-8
ใบงานที่2-8
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
 
3 120719083921-phpapp01
3 120719083921-phpapp013 120719083921-phpapp01
3 120719083921-phpapp01
 
ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์
ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์
ใบงานที่ 3 ขอบข่ายและประเภทของโครงงานคอมพิวเตอร์
 
แบบร่างโครงงาน
แบบร่างโครงงานแบบร่างโครงงาน
แบบร่างโครงงาน
 
Presentation3
Presentation3Presentation3
Presentation3
 
228-8 /231-9
228-8 /231-9228-8 /231-9
228-8 /231-9
 
001
001001
001
 
โครงงานคอมพิวเตอร์06 09(1)
โครงงานคอมพิวเตอร์06 09(1)โครงงานคอมพิวเตอร์06 09(1)
โครงงานคอมพิวเตอร์06 09(1)
 
งานคอม
งานคอมงานคอม
งานคอม
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
ใบงานที่ 3
ใบงานที่ 3ใบงานที่ 3
ใบงานที่ 3
 
Sdlc
SdlcSdlc
Sdlc
 

More from Mittapan Chantanyakan

More from Mittapan Chantanyakan (13)

งานย่อย 6
งานย่อย 6งานย่อย 6
งานย่อย 6
 
งานย่อย 6
งานย่อย 6งานย่อย 6
งานย่อย 6
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
อ.ทรงศักดิ์
อ.ทรงศักดิ์อ.ทรงศักดิ์
อ.ทรงศักดิ์
 
กิจกรรม
กิจกรรมกิจกรรม
กิจกรรม
 
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
ก จกรรมงานศ ลปะห_ตกรรมน_กเร_ยน (1)
 
It news อ.ทรงศักดิ์
It news อ.ทรงศักดิ์It news อ.ทรงศักดิ์
It news อ.ทรงศักดิ์
 
ข าว It news
ข าว It newsข าว It news
ข าว It news
 
คำชมเชย
คำชมเชยคำชมเชย
คำชมเชย
 
รายงานตัวเต็ม(Full)
รายงานตัวเต็ม(Full)รายงานตัวเต็ม(Full)
รายงานตัวเต็ม(Full)
 
It news.
It news.It news.
It news.
 
IT NEWS.
IT NEWS.IT NEWS.
IT NEWS.
 

Chapter1 uml3

  • 1. บทที่ 7 วิธ ก ารเชิง วัต ถุ ี และการออกแบบคลาส Srinagarindra The Princess Mother School Kanchanaburi 1
  • 2.  แนวคิด เชิง วัต ถุ(Object Oriented) หมาย ถึง การใช้ Object เป็นตัวหลักในการ พิจารณาความเป็นจริงต่างๆที่เกิดขึ้นในโลก โดยมองทุกสิ่งในโลกเป็นวัตถุทั้งหมด และมอง ว่ากิจกรรมที่เกิดขึ้นในโลกนี้เกิดจากความ สัมพันธ์และปฏิสัมพันธ์ระหว่างวัตถุ 2
  • 3. เปรียบเทียบการวิเคราะห์และออกแบบระบบวิธีเดิมกับวิธีเช วิธ ีเ ดิม วิธ เ ชิง วัต ถุ ี เริ่มต้นจากการวิเคราะห์เอกสาร เริ่มต้นการวิเคราะห์จาก Objects ผลลัพธ์ และการทำางานของ ที่ สามารถเห็นได้ชัดเจน ระบบงานเดิม แตกการทำางานออกเป็นหน่วย แบ่งกลุ่มของ Object ตาม ย่อยๆ คุณลักษณะ องค์ประกอบต่างๆของระบบ เช่น แต่ละ Object เป็นอิสระต่อกัน การประมวลผล การออกรายงาน การเปลี่ยนแปลงจะไม่กระทบกัน การคำานวณ จะเกี่ยวพันกัน การ เปลี่ยนแปลงจะกระทบซึ่งกันและ กัน 3
  • 4. เปรียบเทียบการวิเคราะห์และออกแบบระบบวิธีเดิมกับวิธีเช วิธ ีเ ดิม วิธ เ ชิง วัต ถุ ี การปรับเปลี่ยนระบบต้องแก้ไข การปรับเปลียนระบบ ทำาได้โดย ่ Source Code การเปลี่ยน Attributes, Functions ของ Object Tools ที่สนับสนุนมีน้อยลง Tools ที่สนับสนุนมีมากขึ้น 4
  • 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
  • 16.  เป็นความสัมพันธ์ระหว่าง Object หรือ Class แบบ 2 ทิศทาง 16
  • 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
  • 23.  เมื่อทำาการ download มาแล้วจะได้ เป็น .exe file ซึ่งเราสามารถทำาการติดตั้ง โปรแกรมไปยัง directory ที่ต้องการจะทำาการ ติดตั้งได้เลย หลังจากติดตั้งโปรแกรมเสร็จ สมบูรณ์แล้ว เราสามามารถเข้า โปรแกรม NetBeans ได้จากหน้า desktop   23
  • 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
  • 27.  เมื่อรู้จักหน้าตาหรือ GUI แบบคร่าวๆ ของ NetBeans กันแล้วต่อไปก็มาลองเขียน โปรแกรมง่ายกันครับ โดยเริ่มจากการ New Project ใหม่ขึ้นมา โดยการเลือกที่ File >> New Project 27
  • 28.  จะมีหน้าต่างขึ้นมาให้เราเลือก โดยให้เรา ทำาการเลือก Java และ Java Applicationแล้ว กด Next 28
  • 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
  • 35. โดย  NetBeans จะทำาการ Save ให้อัตโนมัติทุกครั้งที่จะ ทำาการ Run ถ้า NetBeansทำาการ compile แล้วไม่ พบ error โปรแกรมจะแสดงผลที่สวนด้านล่างดังภาพ ่ 35