SlideShare une entreprise Scribd logo
1  sur  45
บทที่ 4
    หลัก การเชิง ออปเจ็ค
(Object Oriented Concept)

    อ.ธนิศ า เครือ ไวศยวรรณ
   คณะเทคโนโลยีส ารสนเทศ
สถาบัน เทคโนโลยีพ ระจอมเกล้า เจ้า
       คุณ ทหารลาดกระบัง
วัต ถุป ระสงค์
 แนะนำา ออปเจ็ค และคลาส

 อธิบ ายคุณ ลัก ษณะและเมธอด

 อธิบ ายการเขีย นโปรแกรมเชิง ออปเจ็ค โดยใช้
 ภาษาจาวา
 แนะนำา การเขีย นโปรแกรมโดยใช้ค ุณ ลัก ษณะเด่น
 ของโปรแกรมเชิง ออปเจ็ค
 แนะนำา   Unified Modelling Language
 อธิบ ายขัน ตอนการพัฒ นาโปรแกรม
           ้
หลัก การเชิง ออปเจ็ค
 ภาษาจาวาเป็น ภาษาคอมพิว เตอร์ท ใ ช้ห ลัก การ
                                 ี่
  เชิง ออปเจ็ค
 OOP   (Object Oriented Programming)
 OOP   เป็น ขบวนการการพัฒ นาโปรแกรมโดยการ
  จำา ลองปัญ หาว่า ประกอบไปด้ว ยออปเจ็ค ใดบ้า ง
 นิย ามทีส ำา คัญ คือ
          ่
   • ออปเจ็ค (object)
   • คลาส (class)
ออปเจ็ค
 ออปเจ็ค คือ สิง ต่า งๆทีม อ ยู่ใ นชีว ิต ประจำา วัน
                ่         ่ ี
   • ออปเจ็ค ที่เ ป็น รูป ธรรมเช่น   นัก ศึก ษา ใบลงทะเบีย น
     ปากกา และรถ
   • ออปเจ็ค ที่เ ป็น นามธรรมเช่น คะแนน รายชื่อ วิช า บัญ ชี
     เงิน ฝาก และตารางเที่ย วบิน
 ออปเจ็ค ประกอบด้ว ย
   • คุณ ลัก ษณะ (attribute) หรือ ข้อ มูล (data)
   • พฤติก รรม (behavior) หรือ เมธอด (method)
ออปเจ็ค
 คุณ ลัก ษณะ
  • ข้อ มูล ของออปเจ็ค
  • แต่ล ะออปเจ็ค อาจมีค ่า ของคุณ ลัก ษณะที่ต ่า งกัน

 เมธอด
  • สิ่ง ที่อ อปเจ็ค สามารถกระทำา ได้
  • คำา สั่ง ในการทำา งานของโปรแกรมเชิง ออปเจ็ค
  • โปรแกรมจะจัด การกับ ข้อ มูล โดยเรีย กใช้เ มธอด
ตัว อย่า งของออปเจ็ค
 นัก ศึก ษา
   • อาจจะมีค ุณ ลัก ษณะ เช่น รหัส ชื่อ และเกรดเฉลี่ย
   • อาจจะมีเ มธอด เช่น ลงทะเบีย น สอบ และเดิน

 รถยนต์
   • อาจจะมีค ุณ ลัก ษณะเช่น ยี่ห ้อ รุ่น และสี
   • อาจจะมีเ มธอด เช่น เคลื่อ นที่ หยุด และเลี้ย ว

 สุน ข
      ั
   • อาจจะมีค ุณ ลัก ษณะ เช่น   ชื่อ พัน ธ์ และสี
   • อาจจะมีเ มธอด เช่น เห่า    คลาน และกระดิก หาง
ตัว อย่า งของโปรแกรมเชิง ออปเจ็ค
 โปรแกรมระบบจัด การบัญ ชีเ งิน ฝากของธนาคาร

 ตัว อย่า งของออปเจ็ค
     •   Account
     •   Customer
     •   Transaction
     •   ATM
   Account
     • อาจมีค ุณ ลัก ษณะเช่น   เลขที่บ ัญ ชี ชื่อ เจ้า ของบัญ ชี วัน
       ที่เ ปิด บัญ ชี และยอดเงิน คงเหลือ
     • อาจมีเ มธอดเช่น ฝาก ถอน และโอนเงิน
คลาส
 เปรีย บเสมือ นพิม พ์เ ขีย วของออปเจ็ค

 ออปเจ็ค จะถูก สร้า งมาจากคลาส     บางครั้ง เรีย กว่า
  เป็น instance ของคลาส
 คลาสหนึง คลาสสามารถสร้า งออปเจ็ค ได้ห ลา
           ่
  ยออปเจ็ค อาทิเ ช่น คลาสชื่อ Student อาจสร้า ง
  ออปเจ็ค ชื่อ s1,s2 หรือ s3 ซึ่ง เป็น ออปเจ็ค ชนิด
 Student
รูป แสดงการสร้า งออปเจ็ค จาก
        คลาส Student
คุณ ลัก ษณะของออปเจ็ค
 ข้อ มูล ทีเ ก็บ อยูใ นออปเจ็ค
            ่        ่
 แบ่ง เป็น ตัว แปร   (variable) และค่า คงที่
  (constant)
   • ตัว แปรคือ คุณ ลัก ษณะที่ส ามารถเปลี่ย นค่า ได้
   • ค่า คงที่ค ือ คุณ ลัก ษณะที่ไ ม่ส ามารถเปลี่ย นค่า ได้
ตัว อย่า งคุณ ลัก ษณะของออปเจ็ค
คุณ ลัก ษณะของคลาส
 เป็น คุณ ลัก ษณะทีใ ช้ร ่ว มกัน ของทุก ออปเจ็ค
                    ่
 ทุก ออปเจ็ค จะใช้ค ุณ ลัก ษณะร่ว มกัน ทำา ให้
  ประหยัด พืน ทีใ นหน่ว ยความจำา
              ้ ่
 ตัว อย่า งเช่น คุณ ลัก ษณะทีก ำา หนดให้เ ป็น ค่า คงที่
                              ่
  ชื่อ MIN_GPA
ตัว อย่า งคุณ ลัก ษณะของคลาส
เมธอด
 วิธ ีก ารหรือ การกระทำา ทีน ย ามอยูใ นคลาสหรือ
                            ่ ิ      ่
  ออปเจ็ค เพือ ใช้ใ นการจัด การกับ คุณ ลัก ษณะขอ
             ่
  งออปเจ็ค
 เปรีย บเทีย บได้ก ับ
                 function, procedure หรือ
  subroutine ของโปรแกรมเชิง กระบวนการ
 ตัว อย่า งเช่นเมธอด    deposit()เพือ เป็น เมธอด
                                     ่
  สำา หรับ ฝากเงิน
การสื่อ สารระหว่า งออปเจ็ค
 การสือ สารระหว่า งกัน ของออปเจ็ค ทำา ได้โ ดยการ
       ่
 ผ่า นข่า วสาร (message)


                                 objB   คือ ชื่อ ออป
 เจ็ค
                                 method4    คือ ชื่อ
 เมธอด
                                 (1,2)
 คือ argument
การสื่อ สารระหว่า งออปเจ็ค
 ข่า วสารจะส่ง ผ่า นจากออปเจ็ค objA      ทีเ ป็น ผู้ส ่ง
                                            ่
  (sender) เพือ เรีย ก การทำา งานของเมธอดทีช ื่อ
               ่                                   ่
  method4 จากออปเจ็ค objB ทีเ ป็น ผู้ร ับ (receiver)
                               ่
 objB อาจส่ง ค่า (return value) บางค่า กลับ มายัง
  objA
การเขีย นโปรแกรมเชิง ออปเจ็ค
       โดยใช้ภ าษาจาวา
 การประกาศคลาส

 การประกาศคุณ ลัก ษณะ

 การประกาศเมธอด

 การประกาศและสร้า งออปเจ็ค

 การเรีย กใช้ส มาชิก ของออปเจ็ค
การประกาศคลาส
 โปรแกรมภาษาจาวาแต่ล ะโปรแกรมจะประกอบ
  ไปด้ว ยคลาสอย่า งน้อ ยหนึง คลาส โดยมีร ูป แบบ
                           ่
  การประกาศดัง นี้
             [modifier] class Classname {
                   [class member]
             }
   •   modifier คือ คีย ์เ วิร ์ด (keyword) ของภาษาจาวาที่ใ ช้
       ในการอธิบ ายระดับ การเข้า ถึง (access modifier)
   •   class คือ คีย ์เ วิร ์ด ของภาษาจาวาเพื่อ ระบุว ่า เป็น การ
       ประกาศคลาส
   •   Classname คือ ชื่อ คลาส
   •   class member คือ เมธอดหรือ คุณ ลัก ษณะ

 ตัว อย่า ง
             public class Student {
การประกาศคุณ ลัก ษณะ
 คุณ ลัก ษณะของออปเจ็ค คือ ตัว แปรหรือ ค่า คงทีซ ึ่ง
                                                ่
  ประกาศภายในออปเจ็ค โดยมีร ูป แบบการประกาศ
  ดัง นี้
             [modifier] dataType attributeName;
   •   modifier คือ คีย ์เ วิร ์ด ของภาษาจาวาที่อ ธิบ ายคุณ สมบัต ิ
       ต่า งๆของตัว แปรหรือ ค่า คงที่
   •   dataType คือ ชนิด ข้อ มูล ซึ่ง อาจเป็น ชนิด ข้อ มูล พื้น ฐาน
       หรือ ชนิด คลาส
   •   attributeName คือ ชื่อ ของคุณ ลัก ษณะ

 ตัว อย่า ง
              public class   Student {
                    public   String id;
                    public   String name;
                    public   double gpa;
              }
การประกาศเมธอด
 ภาษาจาวากำา หนดรูป แบบของการประกาศเมธอด
 ทีอ ยูใ นคลาสไว้ด ัง นี้
   ่ ่
         [modifier] return_type methodName([arguments]) {
               [method_body]
         }
  •   modifier คือ คีย ์เ วิร ์ด ของภาษาจาวาที่ใ ช้อ ธิบ ายระดับ
      การเข้า ถึง
  •   return_type คือ ชนิด ข้อ มูล ของค่า ที่จ ะมีก ารส่ง กลับ
  •   methodName คือ ชื่อ ของเมธอด
  •   arguments คือ ตัว แปรที่ใ ช้ใ นการรับ ข้อ มูล ที่อ อปเจ็ค ส่ง
      มาให้
  •   method_body   คือ คำา สั่ง ต่า งๆของภาษาจาวาที่อ ยู่ใ นเมธอด
ตัว อย่า งโปรแกรม
public class Student {
 public class Student {
        public String id;
         public String id;
        public String name;
         public String name;
        public double gpa;
         public double gpa;
        public void setID(String ID) {
         public void setID(String ID) {
                id = ID;
                 id = ID;
        }}
        public void setName(String n) {
         public void setName(String n) {
                name = n;
                 name = n;
        }}
        public void setGPA(double GPA) {
         public void setGPA(double GPA) {
                gpa = GPA;
                 gpa = GPA;
        }}
        public void showDetails() {
         public void showDetails() {
                System.out.println("ID: "+id);
                 System.out.println("ID: "+id);
                System.out.println("Name: "+name);
                 System.out.println("Name: "+name);
                System.out.println("GPA: "+gpa);
                 System.out.println("GPA: "+gpa);
        }}
}}
เมธอดที่ช อ
                      ื่         main()

 โปรแกรมจาวาประยุก ต์   (Java Application) จะ
 เริ่ม ต้น การทำา งานในคลาสทีม เ มธอดทีช ื่อ main
                             ่ ี       ่
 โดยมีร ูป แบบของเมธอดดัง นี้
      public static void main(String args[]) {
         [method_body]
     }
การประกาศออปเจ็ค
 ออปเจ็ค ทุก ออปเจ็ค ในโปรแกรมภาษาจาวาจะ
  ต้อ งมีค ำา สัง ประกาศเพื่อ ระบุว ่า ออปเจ็ค นัน เป็น
                ่                                ้
  ออปเจ็ค ของคลาสใด โดยมีร ูป แบบการประกาศ
  ดัง นี้
             [modifier] ClassName objectName;
   •   modifier คือ คีย ์เ วิร ์ด ที่อ ธิบ ายคุณ สมบัต ิต ่า งๆของออป
       เจ็ค
   •   ClassName คือ ชื่อ ของคลาสสำา หรับ ออปเจ็ค นั้น
   •   objectName คือ ชื่อ ของออปเจ็ค

 ตัว อย่า ง
              Student    s1;
การสร้า งออปเจ็ค
 คำา สั่ง ทีใ ช้ใ นการสร้า งออปเจ็ค จะมีร ูป แบบดัง นี้
             ่
             objectName = new ClassName([arguments]);
   •   objectName คือ ชื่อ ของออปเจ็ค
   •   new คือ คีย ์เ วิร ์ด ของภาษาจาวาเพื่อ ใช้ใ นการสร้า งออป
       เจ็ค
   •           คือ ชื่อ ของคลาส
       ClassName
   •           คือ ค่า ที่ต ้อ งการส่ง ผ่า นในการเรีย ก
       arguments
       Constructor
 ตัว อย่า ง
              s1 = new Student();
การประกาศและสร้า งออปเจ็ค
 คำา สั่ง ในการประกาศและสร้า งออปเจ็ค สามารถที่
  จะรวมเป็น คำา สัง เดีย วกัน โดยมีร ูป แบบคำา สั่ง ดัง นี้
                  ่
           [modifier] ClassName objectName =
                               new ClassName([arguments]);

 ตัว อย่า ง
           Student s1 = new Student();
การเรีย กใช้ส มาชิก ของออปเจ็ค
 การเรีย กใช้ค ุณ ลัก ษณะของออปเจ็ค มีร ูป แบบดัง นี้
             objectName.attributeName;
 การเรีย กใช้เ มธอดของออปเจ็ค มีร ูป แบบดัง นี้
             objectName.methodName([arguments]);
   •   objectName คือ ชื่อ ของออปเจ็ค ที่ส ร้า งขึ้น
   •   methodName คือ ชื่อ ของเมธอดของออปเจ็ค นั้น
   •   arguments คือ ค่า ที่ต ้อ งการส่ง ผ่า นไปให้ก ับ เมธอดขอ
       งออปเจ็ค นั้น
 ตัว อย่า ง
             s1.setName("Thana");
ตัว อย่า งโปรแกรม
public class Sample {
 public class Sample {
        public static void main(String args[]) {
         public static void main(String args[]) {
                Student s1 = new Student();
                 Student s1 = new Student();
                Student s2 = new Student();
                 Student s2 = new Student();
                Student s3 = new Student();
                 Student s3 = new Student();
                s1.setID("1234");
                 s1.setID("1234");
                s1.setName("Thana");
                 s1.setName("Thana");
                s1.setGPA(3.25);
                 s1.setGPA(3.25);
                s1.showDetails();
                 s1.showDetails();
                s2.setID("1122");
                 s2.setID("1122");
                s2.setName("Somchai");
                 s2.setName("Somchai");
                s2.setGPA(2.90);
                 s2.setGPA(2.90);
                s2.showDetails();
                 s2.showDetails();
                s3.setID("2211");
                 s3.setID("2211");
                s3.setName("Somsri");
                 s3.setName("Somsri");
                s3.setGPA(3.00);
                 s3.setGPA(3.00);
                s3.showDetails();
                 s3.showDetails();
        }}
}}
คุณ ลัก ษณะเด่น ของโปรแกรมเชิง
             ออปเจ็ค
 การห่อ หุม
           ้   (Encapsulation)
 การสืบ ทอด    (Inheritance)
 การมีไ ด้ห ลายรูป แบบ   (Polymorphism)
การห่อ หุ้ม
 หมายถึง การจะเรีย กใช้ค ุณ ลัก ษณะของออปเจ็ค
 จะทำา ได้โ ดยการเรีย กผ่า นเมธอดเท่า นัน
                                        ้
 หลัก การของการห่อ หุม คือ การกำา หนดให้
                      ้
 คุณ ลัก ษณะของออปเจ็ค มีค ุณ สมบัต ิเ ป็น private
 และกำา หนดให้เ มธอดมีค ุณ สมบัต ิเ ป็น public
ข้อ ดีข องการห่อ หุ้ม
 การซ่อ นเร้น ข้อ มูล   (Information Hiding)
   • ทำา ให้อ อปเจ็ค สามารถติด ต่อ กับ ออปเจ็ค ภายนอกผ่า น
    เมธอดที่เ ป็น ส่ว นของ interface เท่า นั้น
 ความเป็น โมดูล    (Modularity)
   • การพัฒ นาโปรแกรมเชิง ออปเจ็ค จะสามารถกำา หนดให้
    ออปเจ็ค แต่ล ะออปเจ็ค มีค วามเป็น อิส ระต่อ กัน
ตัว อย่า งโปรแกรม
public class Student {
 public class Student {
        private String id;
         private String id;
        private String name;
         private String name;
        private double gpa;
         private double gpa;
        public void setID(String ID) {
         public void setID(String ID) {
                id = ID;
                 id = ID;
        }}
        public void setName(String n) {
         public void setName(String n) {
                name = n;
                 name = n;
        }}
        public void setGPA(double GPA) {
         public void setGPA(double GPA) {
                gpa = GPA;
                 gpa = GPA;
        }}
        public void showDetails() {
         public void showDetails() {
                System.out.println("ID: "+id);
                 System.out.println("ID: "+id);
                System.out.println("Name: "+name);
                 System.out.println("Name: "+name);
                System.out.println("GPA: "+gpa);
                 System.out.println("GPA: "+gpa);
        }}
}}
การสืบ ทอด
 หมายถึง การนิย ามคลาสใหม่จ ากรูป แบบของ
  คลาสทีม อ ยูแ ล้ว โดยคลาสใหม่ส ามารถที่จ ะนำา
          ่ ี ่
  คุณ ลัก ษณะและเมธอดของคลาสเดิม มาใช้ไ ด้
 โดยในภาษาจาวาจะใช้ค ีย เ วิร ์ด extends
                         ์                  เพือ ระบุ
                                               ่
  การสืบ ทอด
 ตัว อย่า ง
ตัว อย่า งโปรแกรม
public class PartTimeStudent extends Student { }
 public class PartTimeStudent extends Student { }
public class FullTimeStudent extends Student { }
 public class FullTimeStudent extends Student { }
public class GradStudent extends Student {
 public class GradStudent extends Student {
        private String thesisTitle;
         private String thesisTitle;
        private String supervisor;
         private String supervisor;
        public void setThesisTitle(String t) {
         public void setThesisTitle(String t) {
                thesisTitle = t;
                 thesisTitle = t;
        }}
        public void setSupervisor(String s) {
         public void setSupervisor(String s) {
                supervisor = s;
                 supervisor = s;
        }}
}}
public class PhDStudent extends GradStudent {
 public class PhDStudent extends GradStudent {
        public boolean passQualify;
         public boolean passQualify;
        public boolean isPassQualify() {
         public boolean isPassQualify() {
                return passQualify;
                 return passQualify;
        }}
}}
การมีไ ด้ห ลายรูป แบบ
 หมายถึง การทีส ามารถตอบสนองต่อ ข่า วสาร
               ่
 (เมธอด) เดีย วกัน ด้ว ยวิธ ีก ารทีต ่า งกัน และ
                                   ่
 สามารถกำา หนดออปเจ็ค ได้ห ลายรูป แบบ
 Overridden    method
 Dynamic   Binding
ตัว อย่า ง
ตัว อย่า งโปรแกรม
class Ball {
 class Ball {
        public void throwBall() { }
         public void throwBall() { }
}}
class SoccerBall extends Ball {
 class SoccerBall extends Ball {
    public void throwBall() {
     public void throwBall() {
        System.out.println("Throwing soccerball");
         System.out.println("Throwing soccerball");
    }}
}}
class TennisBall extends Ball {
 class TennisBall extends Ball {
    public void throwBall() {
     public void throwBall() {
        System.out.println("Throwing tennisball");
         System.out.println("Throwing tennisball");
    }}
}}
public class TestBall {
 public class TestBall {
    public static void main(String args[]) {
     public static void main(String args[]) {
        Ball b1 = new Ball();
         Ball b1 = new Ball();
        SoccerBall b2 = new SoccerBall();
         SoccerBall b2 = new SoccerBall();
        Ball b3 = new SoccerBall();
         Ball b3 = new SoccerBall();
    }}
}}
Unified Modeling Language
            (UML)
 เป็น ภาษาทีส ามารถนำา รูป กราฟฟิก มาจำา ลอง
             ่
 โปรแกรมเชิง ออปเจ็ค ได้
 ประกอบด้ว ยสองส่ว นคือ
  • ไดอะแกรมของคลาส (Class Diagram)
  • ไดอะแกรมของออปเจ็ค (Object Diagram)
ไดอะแกรมของคลาส
 เป็น สัญ ลัก ษณ์ท ใ ช้แ สดงคลาส
                    ี่
 ประกอบด้ว ยส่ว นต่า งๆสามส่ว นคือ
   • ชื่อ ของคลาส
   • คุณ ลัก ษณะภายในคลาส
   • เมธอดภายในคลาส
ไดอะแกรมของออปเจ็ค
 ประกอบไปด้ว ยส่ว นต่า งๆสองส่ว นคือ
  • ส่ว นที่ร ะบุช ื่อ ของออปเจ็ค
  • ส่ว นที่ร ะบุค ่า ของคุณ ลัก ษณะภายในออปเจ็ค
ขั้น ตอนการพัฒ นาโปรแกรม
 ขั้น ตอนการวิเ คราะห์   (Analysis)
 ขั้น ตอนการออกแบบ       (Design)
 ขั้น ตอนการเขีย นโปรแกรม     (Programming)
 ขั้น ตอนการทดสอบ     (Testing)
 ขั้น ตอนการทำา งาน   (Operation)
รูป แสดงขั้น ตอนการพัฒ นา
        โปรแกรม
สรุป เนื้อ หาของบท
 โปรแกรมเชิง ออปเจ็ค จะมีค ำา นิย ามทีส ำา คัญ สองคำา
                                       ่
  คือ ออปเจ็ค และคลาส
 ออปเจ็ค คือ สิง ต่า งๆทีม อ ยู่ใ นชีว ิต ประจำา วัน จะ
                ่         ่ ี
  ประกอบไปด้ว ยคุณ ลัก ษณะและเมธอด
 คลาสเปรีย บเสมือ นพิม พ์เ ขีย วของออปเจ็คออป
  เจ็ค ทีถ ก สร้า งมาจากคลาส ออปเจ็ค หลายออปเจ็ค
         ่ ู
  สามารถถูก สร้า งจากคลาสหนึง คลาสได้
                               ่
 คุณ ลัก ษณะของออปเจ็ค คือ ข้อ มูล ทีเ ก็บ อยูใ นออป
                                      ่        ่
  เจ็ค ซึ่ง จะแบ่ง ออกเป็น ตัว แปรและค่า คงที่
 คุณ ลัก ษณะของคลาสเป็น คุณ ลัก ษณะทีใ ช้ร ่ว มกัน
                                      ่
  ของทุก ออปเจ็ค
สรุป เนื้อ หาของบท
 ภาษาจาวามีน ย ามในการเขีย นโปรแกรมเชิง ออป
              ิ
 เจ็ค เพือ ประกาศคลาส คุณ ลัก ษณะ เมธอด และ
         ่
 ออปเจ็ค
 โปรแกรมเชิง ออปเจ็ค จะมีค ุณ ลัก ษณะเด่น อยู่ส าม
  ประการคือ การห่อ หุ้ม การสืบ ทอด และการมีไ ด้
  หลายรูป แบบ
 การห่อ หุม คือ การทีใ ห้ค ุณ ลัก ษณะถูก ห่อ หุม อยู่
           ้          ่                         ้
  ภายในเมธอด โดยกำา หนดให้ค ุณ ลัก ษณะมี
  access modifier เป็น private และกำา หนดให้
  เมธอดมี access modifier เป็น public
 ข้อ ดีข องการห่อ หุม คือ การซ่อ นเร้น ข้อ มูล และ
                     ้
 ความเป็น โมดูล
สรุป เนื้อ หาของบท
 การมีไ ด้ห ลายรูป แบบคือ การทีก ำา หนดให้ม ก าร
                                ่            ี
 ตอบสนองต่อ เมธอดเดีย วกัน ด้ว ยวิธ ีก ารทีต ่า งกัน
                                           ่
 และสามารถกำา หนดออปเจ็ค ได้ห ลายรูป แบบ
 Unified    Modeling Language (UML) เป็น ภาษา
 ทีใ ช้ร ูป กราฟฟิก เพื่อ จำา ลองระบบซอฟต์แ วร์ ในที่
   ่
 นีไ ด้แ นะนำา สัญ ลัก ษณ์ข อง UML ทีส ำา คัญ สอง
     ้                                ่
 อย่า งคือ ไดอะแกรมของคลาสและไดอะแกรมขอ
 งออปเจ็ค
 วัฎ จัก รการพัฒ นาโปรแกรมจะประกอบไปด้ว ยขั้น
 ตอนต่า งๆ 5 ขั้น ตอนคือ ขั้น ตอนการวิเ คราะห์ ขั้น
 ตอนการออกแบบ ขั้น ตอนการเขีย นโปรแกรม ขัน        ้
 ตอนการทดสอบ และ ขั้น ตอนการทำา งาน
แบบฝึก หัด
 แบบฝึก หัด ที่   1 การออกแบบคลาส
   • เขีย นข้อ กำา หนดอธิบ ายระบบโปรแกรมสำา หรับ การตัด
     เกรดของรายวิช าหนึ่ง รายวิช า
   • เขีย นไดอะแกรมของคลาสเพื่อ อธิบ ายคุณ ลัก ษณะและ
     เมธอดทั้ง หมดที่ม ีอ ยู่ใ นคลาส

Contenu connexe

Tendances

แรงดึงดูดระหว่างมวล2560
แรงดึงดูดระหว่างมวล2560แรงดึงดูดระหว่างมวล2560
แรงดึงดูดระหว่างมวล2560krulef1805
 
Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionIMC Institute
 
แรงในชีวิตประจำวัน
แรงในชีวิตประจำวันแรงในชีวิตประจำวัน
แรงในชีวิตประจำวันwebsite22556
 
ข้อสอบคณิตศาสตร์ (PISA)
ข้อสอบคณิตศาสตร์ (PISA)ข้อสอบคณิตศาสตร์ (PISA)
ข้อสอบคณิตศาสตร์ (PISA)Napadon Yingyongsakul
 
วงกลมหนึ่งหน่วย
วงกลมหนึ่งหน่วยวงกลมหนึ่งหน่วย
วงกลมหนึ่งหน่วยJiraprapa Suwannajak
 
ชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยม
ชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยมชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยม
ชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยมวิเชียร กีรติศักดิ์กุล
 
บทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตัน
บทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตันบทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตัน
บทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตันThepsatri Rajabhat University
 
ระบบสมการเชิงเส้น
ระบบสมการเชิงเส้นระบบสมการเชิงเส้น
ระบบสมการเชิงเส้นRitthinarongron School
 
หน่วยย่อยที่ 4 แรงเสียดทาน
หน่วยย่อยที่ 4  แรงเสียดทานหน่วยย่อยที่ 4  แรงเสียดทาน
หน่วยย่อยที่ 4 แรงเสียดทานkrupornpana55
 
เล่ม 1 การเกิดปฏิกิริยาเคมี
เล่ม 1 การเกิดปฏิกิริยาเคมีเล่ม 1 การเกิดปฏิกิริยาเคมี
เล่ม 1 การเกิดปฏิกิริยาเคมีPreeyapat Lengrabam
 
เพาเวอร์เซต
เพาเวอร์เซตเพาเวอร์เซต
เพาเวอร์เซตAon Narinchoti
 
แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ
แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ
แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ sawed kodnara
 
โมเมนต์ของแรง
โมเมนต์ของแรงโมเมนต์ของแรง
โมเมนต์ของแรงrutchaneechoomking
 
การคายน้ำและการแลกเปลี่ยนแก๊ส
การคายน้ำและการแลกเปลี่ยนแก๊สการคายน้ำและการแลกเปลี่ยนแก๊ส
การคายน้ำและการแลกเปลี่ยนแก๊สThanyamon Chat.
 
แรงและการเคลื่อนที่
แรงและการเคลื่อนที่แรงและการเคลื่อนที่
แรงและการเคลื่อนที่Supaluk Juntap
 
ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1
ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1 ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1
ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1 StemCenter Yupparaj
 

Tendances (20)

แรงดึงดูดระหว่างมวล2560
แรงดึงดูดระหว่างมวล2560แรงดึงดูดระหว่างมวล2560
แรงดึงดูดระหว่างมวล2560
 
Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : Introduction
 
กฎการเคลื่อนที่ของนิวตัน ม4
กฎการเคลื่อนที่ของนิวตัน ม4กฎการเคลื่อนที่ของนิวตัน ม4
กฎการเคลื่อนที่ของนิวตัน ม4
 
แรงในชีวิตประจำวัน
แรงในชีวิตประจำวันแรงในชีวิตประจำวัน
แรงในชีวิตประจำวัน
 
บทที่ 3 พลังงานทดแทน
บทที่  3 พลังงานทดแทนบทที่  3 พลังงานทดแทน
บทที่ 3 พลังงานทดแทน
 
ข้อสอบคณิตศาสตร์ (PISA)
ข้อสอบคณิตศาสตร์ (PISA)ข้อสอบคณิตศาสตร์ (PISA)
ข้อสอบคณิตศาสตร์ (PISA)
 
วงกลมหนึ่งหน่วย
วงกลมหนึ่งหน่วยวงกลมหนึ่งหน่วย
วงกลมหนึ่งหน่วย
 
ชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยม
ชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยมชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยม
ชุดการสอนที่ 4 เรื่อง เส้นขนานและรูปสามเหลี่ยม
 
บทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตัน
บทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตันบทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตัน
บทที่ 3 แรง และ กฎการเคลื่อนที่ของนิวตัน
 
ระบบสมการเชิงเส้น
ระบบสมการเชิงเส้นระบบสมการเชิงเส้น
ระบบสมการเชิงเส้น
 
หน่วยย่อยที่ 4 แรงเสียดทาน
หน่วยย่อยที่ 4  แรงเสียดทานหน่วยย่อยที่ 4  แรงเสียดทาน
หน่วยย่อยที่ 4 แรงเสียดทาน
 
เล่ม 1 การเกิดปฏิกิริยาเคมี
เล่ม 1 การเกิดปฏิกิริยาเคมีเล่ม 1 การเกิดปฏิกิริยาเคมี
เล่ม 1 การเกิดปฏิกิริยาเคมี
 
เพาเวอร์เซต
เพาเวอร์เซตเพาเวอร์เซต
เพาเวอร์เซต
 
แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ
แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ
แนวข้อสอบเข้า ม.4 วิชาคณิตศาสตร์โรงเรียนมหิดลฯและโรงเรียนจุฬาภรณ์ฯ
 
โมเมนต์ของแรง
โมเมนต์ของแรงโมเมนต์ของแรง
โมเมนต์ของแรง
 
92 โครงงานคณิตศาสตร์ ตอนที่5_กระเบื้องที่ยืดหดได้
92 โครงงานคณิตศาสตร์ ตอนที่5_กระเบื้องที่ยืดหดได้92 โครงงานคณิตศาสตร์ ตอนที่5_กระเบื้องที่ยืดหดได้
92 โครงงานคณิตศาสตร์ ตอนที่5_กระเบื้องที่ยืดหดได้
 
88 โครงงานคณิตศาสตร์ ตอนที่1_การลงทุนset50
88 โครงงานคณิตศาสตร์ ตอนที่1_การลงทุนset5088 โครงงานคณิตศาสตร์ ตอนที่1_การลงทุนset50
88 โครงงานคณิตศาสตร์ ตอนที่1_การลงทุนset50
 
การคายน้ำและการแลกเปลี่ยนแก๊ส
การคายน้ำและการแลกเปลี่ยนแก๊สการคายน้ำและการแลกเปลี่ยนแก๊ส
การคายน้ำและการแลกเปลี่ยนแก๊ส
 
แรงและการเคลื่อนที่
แรงและการเคลื่อนที่แรงและการเคลื่อนที่
แรงและการเคลื่อนที่
 
ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1
ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1 ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1
ข้อสอบ PISA วิชาวิทยาศาสตร์และคณิตศาสตร์ ชุดที่1
 

En vedette

Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Thanachart Numnonda
 
พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาThanachart Numnonda
 
Java Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมJava Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมThanachart Numnonda
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาThanachart Numnonda
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Thanachart Numnonda
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Thanachart Numnonda
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นThanachart Numnonda
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา JavaItslvle Parin
 
การพัฒนาซอฟต์แวร์ทางการศึกษา
การพัฒนาซอฟต์แวร์ทางการศึกษาการพัฒนาซอฟต์แวร์ทางการศึกษา
การพัฒนาซอฟต์แวร์ทางการศึกษาprakaiporm13
 
ซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาjintana_pai
 
เมธอด กลุ่ม3
เมธอด กลุ่ม3 เมธอด กลุ่ม3
เมธอด กลุ่ม3 Piyada Petchalee
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตThanachart Numnonda
 
Java Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกJava Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกThanachart Numnonda
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดThanachart Numnonda
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPp'dan Phuengkun
 
แบบทดสอบ รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัย
แบบทดสอบ  รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัยแบบทดสอบ  รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัย
แบบทดสอบ รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัยศุภเชษฐ์ สีหาราช
 
ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)
ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)
ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)ปกรณ์กฤช ออนไลน์
 
การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...
การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...
การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...ศรัณยวัฒน์ พลเรียงโพน
 

En vedette (20)

Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
 
พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวา
 
Java Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมJava Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุม
 
ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
Planning on Mobile Strategy
Planning on Mobile StrategyPlanning on Mobile Strategy
Planning on Mobile Strategy
 
การพัฒนาซอฟต์แวร์ทางการศึกษา
การพัฒนาซอฟต์แวร์ทางการศึกษาการพัฒนาซอฟต์แวร์ทางการศึกษา
การพัฒนาซอฟต์แวร์ทางการศึกษา
 
ข้อสอบ 50
ข้อสอบ 50ข้อสอบ 50
ข้อสอบ 50
 
ซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษา
 
เมธอด กลุ่ม3
เมธอด กลุ่ม3 เมธอด กลุ่ม3
เมธอด กลุ่ม3
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุต
 
Java Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกJava Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิก
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาด
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
แบบทดสอบ รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัย
แบบทดสอบ  รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัยแบบทดสอบ  รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัย
แบบทดสอบ รายวิชา 0503101 เทคโนโลยีและสื่อสารการศึกษากับการศึกษาร่วมสมัย
 
ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)
ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)
ข้อสอบวิชาการศึกษา ชุดที่ 1-5 (150 ข้อ)
 
การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...
การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...
การพัฒนาซอฟต์แวร์ทางการศึกษาตามรูปแบบ ADDIE บทที่ 5 การพัฒนา(Development)มหาว...
 

Similaire à Java Programming [4/12] : Object Oriented Concept

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นTua Tor
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionIMC Institute
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาT'tle Tanwarat
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาKukkik Kanya
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นDararat Worasut
 
บทที่ 5 คลาส
บทที่ 5 คลาสบทที่ 5 คลาส
บทที่ 5 คลาสTheeravaj Tum
 
Java Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageJava Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageIMC Institute
 

Similaire à Java Programming [4/12] : Object Oriented Concept (20)

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
งาน
งานงาน
งาน
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวา
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
Java intro
Java introJava intro
Java intro
 
Chapter3
Chapter3Chapter3
Chapter3
 
66
6666
66
 
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
Work
WorkWork
Work
 
Java 7&12 6 2
Java 7&12 6 2Java 7&12 6 2
Java 7&12 6 2
 
บทที่ 5 คลาส
บทที่ 5 คลาสบทที่ 5 คลาส
บทที่ 5 คลาส
 
5.Methods cs
5.Methods cs5.Methods cs
5.Methods cs
 
Know 1 1
Know 1 1Know 1 1
Know 1 1
 
Java Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageJava Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming Language
 
Ass1 1
Ass1 1Ass1 1
Ass1 1
 

Plus de IMC Institute

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14IMC Institute
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019IMC Institute
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AIIMC Institute
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12IMC Institute
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital TransformationIMC Institute
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIMC Institute
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมIMC Institute
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon ValleyIMC Institute
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)IMC Institute
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง IMC Institute
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9 IMC Institute
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016IMC Institute
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger IMC Institute
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.orgIMC Institute
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgIMC Institute
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital TransformationIMC Institute
 

Plus de IMC Institute (20)

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AI
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to Work
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon Valley
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.org
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.org
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
 

Java Programming [4/12] : Object Oriented Concept

  • 1. บทที่ 4 หลัก การเชิง ออปเจ็ค (Object Oriented Concept) อ.ธนิศ า เครือ ไวศยวรรณ คณะเทคโนโลยีส ารสนเทศ สถาบัน เทคโนโลยีพ ระจอมเกล้า เจ้า คุณ ทหารลาดกระบัง
  • 2. วัต ถุป ระสงค์  แนะนำา ออปเจ็ค และคลาส  อธิบ ายคุณ ลัก ษณะและเมธอด  อธิบ ายการเขีย นโปรแกรมเชิง ออปเจ็ค โดยใช้ ภาษาจาวา  แนะนำา การเขีย นโปรแกรมโดยใช้ค ุณ ลัก ษณะเด่น ของโปรแกรมเชิง ออปเจ็ค  แนะนำา Unified Modelling Language  อธิบ ายขัน ตอนการพัฒ นาโปรแกรม ้
  • 3. หลัก การเชิง ออปเจ็ค  ภาษาจาวาเป็น ภาษาคอมพิว เตอร์ท ใ ช้ห ลัก การ ี่ เชิง ออปเจ็ค  OOP (Object Oriented Programming)  OOP เป็น ขบวนการการพัฒ นาโปรแกรมโดยการ จำา ลองปัญ หาว่า ประกอบไปด้ว ยออปเจ็ค ใดบ้า ง  นิย ามทีส ำา คัญ คือ ่ • ออปเจ็ค (object) • คลาส (class)
  • 4. ออปเจ็ค  ออปเจ็ค คือ สิง ต่า งๆทีม อ ยู่ใ นชีว ิต ประจำา วัน ่ ่ ี • ออปเจ็ค ที่เ ป็น รูป ธรรมเช่น นัก ศึก ษา ใบลงทะเบีย น ปากกา และรถ • ออปเจ็ค ที่เ ป็น นามธรรมเช่น คะแนน รายชื่อ วิช า บัญ ชี เงิน ฝาก และตารางเที่ย วบิน  ออปเจ็ค ประกอบด้ว ย • คุณ ลัก ษณะ (attribute) หรือ ข้อ มูล (data) • พฤติก รรม (behavior) หรือ เมธอด (method)
  • 5. ออปเจ็ค  คุณ ลัก ษณะ • ข้อ มูล ของออปเจ็ค • แต่ล ะออปเจ็ค อาจมีค ่า ของคุณ ลัก ษณะที่ต ่า งกัน  เมธอด • สิ่ง ที่อ อปเจ็ค สามารถกระทำา ได้ • คำา สั่ง ในการทำา งานของโปรแกรมเชิง ออปเจ็ค • โปรแกรมจะจัด การกับ ข้อ มูล โดยเรีย กใช้เ มธอด
  • 6. ตัว อย่า งของออปเจ็ค  นัก ศึก ษา • อาจจะมีค ุณ ลัก ษณะ เช่น รหัส ชื่อ และเกรดเฉลี่ย • อาจจะมีเ มธอด เช่น ลงทะเบีย น สอบ และเดิน  รถยนต์ • อาจจะมีค ุณ ลัก ษณะเช่น ยี่ห ้อ รุ่น และสี • อาจจะมีเ มธอด เช่น เคลื่อ นที่ หยุด และเลี้ย ว  สุน ข ั • อาจจะมีค ุณ ลัก ษณะ เช่น ชื่อ พัน ธ์ และสี • อาจจะมีเ มธอด เช่น เห่า คลาน และกระดิก หาง
  • 7. ตัว อย่า งของโปรแกรมเชิง ออปเจ็ค  โปรแกรมระบบจัด การบัญ ชีเ งิน ฝากของธนาคาร  ตัว อย่า งของออปเจ็ค • Account • Customer • Transaction • ATM  Account • อาจมีค ุณ ลัก ษณะเช่น เลขที่บ ัญ ชี ชื่อ เจ้า ของบัญ ชี วัน ที่เ ปิด บัญ ชี และยอดเงิน คงเหลือ • อาจมีเ มธอดเช่น ฝาก ถอน และโอนเงิน
  • 8. คลาส  เปรีย บเสมือ นพิม พ์เ ขีย วของออปเจ็ค  ออปเจ็ค จะถูก สร้า งมาจากคลาส บางครั้ง เรีย กว่า เป็น instance ของคลาส  คลาสหนึง คลาสสามารถสร้า งออปเจ็ค ได้ห ลา ่ ยออปเจ็ค อาทิเ ช่น คลาสชื่อ Student อาจสร้า ง ออปเจ็ค ชื่อ s1,s2 หรือ s3 ซึ่ง เป็น ออปเจ็ค ชนิด Student
  • 10. คุณ ลัก ษณะของออปเจ็ค  ข้อ มูล ทีเ ก็บ อยูใ นออปเจ็ค ่ ่  แบ่ง เป็น ตัว แปร (variable) และค่า คงที่ (constant) • ตัว แปรคือ คุณ ลัก ษณะที่ส ามารถเปลี่ย นค่า ได้ • ค่า คงที่ค ือ คุณ ลัก ษณะที่ไ ม่ส ามารถเปลี่ย นค่า ได้
  • 11. ตัว อย่า งคุณ ลัก ษณะของออปเจ็ค
  • 12. คุณ ลัก ษณะของคลาส  เป็น คุณ ลัก ษณะทีใ ช้ร ่ว มกัน ของทุก ออปเจ็ค ่  ทุก ออปเจ็ค จะใช้ค ุณ ลัก ษณะร่ว มกัน ทำา ให้ ประหยัด พืน ทีใ นหน่ว ยความจำา ้ ่  ตัว อย่า งเช่น คุณ ลัก ษณะทีก ำา หนดให้เ ป็น ค่า คงที่ ่ ชื่อ MIN_GPA
  • 13. ตัว อย่า งคุณ ลัก ษณะของคลาส
  • 14. เมธอด  วิธ ีก ารหรือ การกระทำา ทีน ย ามอยูใ นคลาสหรือ ่ ิ ่ ออปเจ็ค เพือ ใช้ใ นการจัด การกับ คุณ ลัก ษณะขอ ่ งออปเจ็ค  เปรีย บเทีย บได้ก ับ function, procedure หรือ subroutine ของโปรแกรมเชิง กระบวนการ  ตัว อย่า งเช่นเมธอด deposit()เพือ เป็น เมธอด ่ สำา หรับ ฝากเงิน
  • 15. การสื่อ สารระหว่า งออปเจ็ค  การสือ สารระหว่า งกัน ของออปเจ็ค ทำา ได้โ ดยการ ่ ผ่า นข่า วสาร (message) objB คือ ชื่อ ออป เจ็ค method4 คือ ชื่อ เมธอด (1,2) คือ argument
  • 16. การสื่อ สารระหว่า งออปเจ็ค  ข่า วสารจะส่ง ผ่า นจากออปเจ็ค objA ทีเ ป็น ผู้ส ่ง ่ (sender) เพือ เรีย ก การทำา งานของเมธอดทีช ื่อ ่ ่ method4 จากออปเจ็ค objB ทีเ ป็น ผู้ร ับ (receiver) ่  objB อาจส่ง ค่า (return value) บางค่า กลับ มายัง objA
  • 17. การเขีย นโปรแกรมเชิง ออปเจ็ค โดยใช้ภ าษาจาวา  การประกาศคลาส  การประกาศคุณ ลัก ษณะ  การประกาศเมธอด  การประกาศและสร้า งออปเจ็ค  การเรีย กใช้ส มาชิก ของออปเจ็ค
  • 18. การประกาศคลาส  โปรแกรมภาษาจาวาแต่ล ะโปรแกรมจะประกอบ ไปด้ว ยคลาสอย่า งน้อ ยหนึง คลาส โดยมีร ูป แบบ ่ การประกาศดัง นี้ [modifier] class Classname { [class member] } • modifier คือ คีย ์เ วิร ์ด (keyword) ของภาษาจาวาที่ใ ช้ ในการอธิบ ายระดับ การเข้า ถึง (access modifier) • class คือ คีย ์เ วิร ์ด ของภาษาจาวาเพื่อ ระบุว ่า เป็น การ ประกาศคลาส • Classname คือ ชื่อ คลาส • class member คือ เมธอดหรือ คุณ ลัก ษณะ  ตัว อย่า ง public class Student {
  • 19. การประกาศคุณ ลัก ษณะ  คุณ ลัก ษณะของออปเจ็ค คือ ตัว แปรหรือ ค่า คงทีซ ึ่ง ่ ประกาศภายในออปเจ็ค โดยมีร ูป แบบการประกาศ ดัง นี้ [modifier] dataType attributeName; • modifier คือ คีย ์เ วิร ์ด ของภาษาจาวาที่อ ธิบ ายคุณ สมบัต ิ ต่า งๆของตัว แปรหรือ ค่า คงที่ • dataType คือ ชนิด ข้อ มูล ซึ่ง อาจเป็น ชนิด ข้อ มูล พื้น ฐาน หรือ ชนิด คลาส • attributeName คือ ชื่อ ของคุณ ลัก ษณะ  ตัว อย่า ง public class Student { public String id; public String name; public double gpa; }
  • 20. การประกาศเมธอด  ภาษาจาวากำา หนดรูป แบบของการประกาศเมธอด ทีอ ยูใ นคลาสไว้ด ัง นี้ ่ ่ [modifier] return_type methodName([arguments]) { [method_body] } • modifier คือ คีย ์เ วิร ์ด ของภาษาจาวาที่ใ ช้อ ธิบ ายระดับ การเข้า ถึง • return_type คือ ชนิด ข้อ มูล ของค่า ที่จ ะมีก ารส่ง กลับ • methodName คือ ชื่อ ของเมธอด • arguments คือ ตัว แปรที่ใ ช้ใ นการรับ ข้อ มูล ที่อ อปเจ็ค ส่ง มาให้ • method_body คือ คำา สั่ง ต่า งๆของภาษาจาวาที่อ ยู่ใ นเมธอด
  • 21. ตัว อย่า งโปรแกรม public class Student { public class Student { public String id; public String id; public String name; public String name; public double gpa; public double gpa; public void setID(String ID) { public void setID(String ID) { id = ID; id = ID; }} public void setName(String n) { public void setName(String n) { name = n; name = n; }} public void setGPA(double GPA) { public void setGPA(double GPA) { gpa = GPA; gpa = GPA; }} public void showDetails() { public void showDetails() { System.out.println("ID: "+id); System.out.println("ID: "+id); System.out.println("Name: "+name); System.out.println("Name: "+name); System.out.println("GPA: "+gpa); System.out.println("GPA: "+gpa); }} }}
  • 22. เมธอดที่ช อ ื่ main()  โปรแกรมจาวาประยุก ต์ (Java Application) จะ เริ่ม ต้น การทำา งานในคลาสทีม เ มธอดทีช ื่อ main ่ ี ่ โดยมีร ูป แบบของเมธอดดัง นี้ public static void main(String args[]) { [method_body] }
  • 23. การประกาศออปเจ็ค  ออปเจ็ค ทุก ออปเจ็ค ในโปรแกรมภาษาจาวาจะ ต้อ งมีค ำา สัง ประกาศเพื่อ ระบุว ่า ออปเจ็ค นัน เป็น ่ ้ ออปเจ็ค ของคลาสใด โดยมีร ูป แบบการประกาศ ดัง นี้ [modifier] ClassName objectName; • modifier คือ คีย ์เ วิร ์ด ที่อ ธิบ ายคุณ สมบัต ิต ่า งๆของออป เจ็ค • ClassName คือ ชื่อ ของคลาสสำา หรับ ออปเจ็ค นั้น • objectName คือ ชื่อ ของออปเจ็ค  ตัว อย่า ง Student s1;
  • 24. การสร้า งออปเจ็ค  คำา สั่ง ทีใ ช้ใ นการสร้า งออปเจ็ค จะมีร ูป แบบดัง นี้ ่ objectName = new ClassName([arguments]); • objectName คือ ชื่อ ของออปเจ็ค • new คือ คีย ์เ วิร ์ด ของภาษาจาวาเพื่อ ใช้ใ นการสร้า งออป เจ็ค • คือ ชื่อ ของคลาส ClassName • คือ ค่า ที่ต ้อ งการส่ง ผ่า นในการเรีย ก arguments Constructor  ตัว อย่า ง s1 = new Student();
  • 25. การประกาศและสร้า งออปเจ็ค  คำา สั่ง ในการประกาศและสร้า งออปเจ็ค สามารถที่ จะรวมเป็น คำา สัง เดีย วกัน โดยมีร ูป แบบคำา สั่ง ดัง นี้ ่ [modifier] ClassName objectName = new ClassName([arguments]);  ตัว อย่า ง Student s1 = new Student();
  • 26. การเรีย กใช้ส มาชิก ของออปเจ็ค  การเรีย กใช้ค ุณ ลัก ษณะของออปเจ็ค มีร ูป แบบดัง นี้ objectName.attributeName;  การเรีย กใช้เ มธอดของออปเจ็ค มีร ูป แบบดัง นี้ objectName.methodName([arguments]); • objectName คือ ชื่อ ของออปเจ็ค ที่ส ร้า งขึ้น • methodName คือ ชื่อ ของเมธอดของออปเจ็ค นั้น • arguments คือ ค่า ที่ต ้อ งการส่ง ผ่า นไปให้ก ับ เมธอดขอ งออปเจ็ค นั้น  ตัว อย่า ง s1.setName("Thana");
  • 27. ตัว อย่า งโปรแกรม public class Sample { public class Sample { public static void main(String args[]) { public static void main(String args[]) { Student s1 = new Student(); Student s1 = new Student(); Student s2 = new Student(); Student s2 = new Student(); Student s3 = new Student(); Student s3 = new Student(); s1.setID("1234"); s1.setID("1234"); s1.setName("Thana"); s1.setName("Thana"); s1.setGPA(3.25); s1.setGPA(3.25); s1.showDetails(); s1.showDetails(); s2.setID("1122"); s2.setID("1122"); s2.setName("Somchai"); s2.setName("Somchai"); s2.setGPA(2.90); s2.setGPA(2.90); s2.showDetails(); s2.showDetails(); s3.setID("2211"); s3.setID("2211"); s3.setName("Somsri"); s3.setName("Somsri"); s3.setGPA(3.00); s3.setGPA(3.00); s3.showDetails(); s3.showDetails(); }} }}
  • 28. คุณ ลัก ษณะเด่น ของโปรแกรมเชิง ออปเจ็ค  การห่อ หุม ้ (Encapsulation)  การสืบ ทอด (Inheritance)  การมีไ ด้ห ลายรูป แบบ (Polymorphism)
  • 29. การห่อ หุ้ม  หมายถึง การจะเรีย กใช้ค ุณ ลัก ษณะของออปเจ็ค จะทำา ได้โ ดยการเรีย กผ่า นเมธอดเท่า นัน ้  หลัก การของการห่อ หุม คือ การกำา หนดให้ ้ คุณ ลัก ษณะของออปเจ็ค มีค ุณ สมบัต ิเ ป็น private และกำา หนดให้เ มธอดมีค ุณ สมบัต ิเ ป็น public
  • 30. ข้อ ดีข องการห่อ หุ้ม  การซ่อ นเร้น ข้อ มูล (Information Hiding) • ทำา ให้อ อปเจ็ค สามารถติด ต่อ กับ ออปเจ็ค ภายนอกผ่า น เมธอดที่เ ป็น ส่ว นของ interface เท่า นั้น  ความเป็น โมดูล (Modularity) • การพัฒ นาโปรแกรมเชิง ออปเจ็ค จะสามารถกำา หนดให้ ออปเจ็ค แต่ล ะออปเจ็ค มีค วามเป็น อิส ระต่อ กัน
  • 31. ตัว อย่า งโปรแกรม public class Student { public class Student { private String id; private String id; private String name; private String name; private double gpa; private double gpa; public void setID(String ID) { public void setID(String ID) { id = ID; id = ID; }} public void setName(String n) { public void setName(String n) { name = n; name = n; }} public void setGPA(double GPA) { public void setGPA(double GPA) { gpa = GPA; gpa = GPA; }} public void showDetails() { public void showDetails() { System.out.println("ID: "+id); System.out.println("ID: "+id); System.out.println("Name: "+name); System.out.println("Name: "+name); System.out.println("GPA: "+gpa); System.out.println("GPA: "+gpa); }} }}
  • 32. การสืบ ทอด  หมายถึง การนิย ามคลาสใหม่จ ากรูป แบบของ คลาสทีม อ ยูแ ล้ว โดยคลาสใหม่ส ามารถที่จ ะนำา ่ ี ่ คุณ ลัก ษณะและเมธอดของคลาสเดิม มาใช้ไ ด้  โดยในภาษาจาวาจะใช้ค ีย เ วิร ์ด extends ์ เพือ ระบุ ่ การสืบ ทอด  ตัว อย่า ง
  • 33. ตัว อย่า งโปรแกรม public class PartTimeStudent extends Student { } public class PartTimeStudent extends Student { } public class FullTimeStudent extends Student { } public class FullTimeStudent extends Student { } public class GradStudent extends Student { public class GradStudent extends Student { private String thesisTitle; private String thesisTitle; private String supervisor; private String supervisor; public void setThesisTitle(String t) { public void setThesisTitle(String t) { thesisTitle = t; thesisTitle = t; }} public void setSupervisor(String s) { public void setSupervisor(String s) { supervisor = s; supervisor = s; }} }} public class PhDStudent extends GradStudent { public class PhDStudent extends GradStudent { public boolean passQualify; public boolean passQualify; public boolean isPassQualify() { public boolean isPassQualify() { return passQualify; return passQualify; }} }}
  • 34. การมีไ ด้ห ลายรูป แบบ  หมายถึง การทีส ามารถตอบสนองต่อ ข่า วสาร ่ (เมธอด) เดีย วกัน ด้ว ยวิธ ีก ารทีต ่า งกัน และ ่ สามารถกำา หนดออปเจ็ค ได้ห ลายรูป แบบ  Overridden method  Dynamic Binding
  • 36. ตัว อย่า งโปรแกรม class Ball { class Ball { public void throwBall() { } public void throwBall() { } }} class SoccerBall extends Ball { class SoccerBall extends Ball { public void throwBall() { public void throwBall() { System.out.println("Throwing soccerball"); System.out.println("Throwing soccerball"); }} }} class TennisBall extends Ball { class TennisBall extends Ball { public void throwBall() { public void throwBall() { System.out.println("Throwing tennisball"); System.out.println("Throwing tennisball"); }} }} public class TestBall { public class TestBall { public static void main(String args[]) { public static void main(String args[]) { Ball b1 = new Ball(); Ball b1 = new Ball(); SoccerBall b2 = new SoccerBall(); SoccerBall b2 = new SoccerBall(); Ball b3 = new SoccerBall(); Ball b3 = new SoccerBall(); }} }}
  • 37. Unified Modeling Language (UML)  เป็น ภาษาทีส ามารถนำา รูป กราฟฟิก มาจำา ลอง ่ โปรแกรมเชิง ออปเจ็ค ได้  ประกอบด้ว ยสองส่ว นคือ • ไดอะแกรมของคลาส (Class Diagram) • ไดอะแกรมของออปเจ็ค (Object Diagram)
  • 38. ไดอะแกรมของคลาส  เป็น สัญ ลัก ษณ์ท ใ ช้แ สดงคลาส ี่  ประกอบด้ว ยส่ว นต่า งๆสามส่ว นคือ • ชื่อ ของคลาส • คุณ ลัก ษณะภายในคลาส • เมธอดภายในคลาส
  • 39. ไดอะแกรมของออปเจ็ค  ประกอบไปด้ว ยส่ว นต่า งๆสองส่ว นคือ • ส่ว นที่ร ะบุช ื่อ ของออปเจ็ค • ส่ว นที่ร ะบุค ่า ของคุณ ลัก ษณะภายในออปเจ็ค
  • 40. ขั้น ตอนการพัฒ นาโปรแกรม  ขั้น ตอนการวิเ คราะห์ (Analysis)  ขั้น ตอนการออกแบบ (Design)  ขั้น ตอนการเขีย นโปรแกรม (Programming)  ขั้น ตอนการทดสอบ (Testing)  ขั้น ตอนการทำา งาน (Operation)
  • 42. สรุป เนื้อ หาของบท  โปรแกรมเชิง ออปเจ็ค จะมีค ำา นิย ามทีส ำา คัญ สองคำา ่ คือ ออปเจ็ค และคลาส  ออปเจ็ค คือ สิง ต่า งๆทีม อ ยู่ใ นชีว ิต ประจำา วัน จะ ่ ่ ี ประกอบไปด้ว ยคุณ ลัก ษณะและเมธอด  คลาสเปรีย บเสมือ นพิม พ์เ ขีย วของออปเจ็คออป เจ็ค ทีถ ก สร้า งมาจากคลาส ออปเจ็ค หลายออปเจ็ค ่ ู สามารถถูก สร้า งจากคลาสหนึง คลาสได้ ่  คุณ ลัก ษณะของออปเจ็ค คือ ข้อ มูล ทีเ ก็บ อยูใ นออป ่ ่ เจ็ค ซึ่ง จะแบ่ง ออกเป็น ตัว แปรและค่า คงที่  คุณ ลัก ษณะของคลาสเป็น คุณ ลัก ษณะทีใ ช้ร ่ว มกัน ่ ของทุก ออปเจ็ค
  • 43. สรุป เนื้อ หาของบท  ภาษาจาวามีน ย ามในการเขีย นโปรแกรมเชิง ออป ิ เจ็ค เพือ ประกาศคลาส คุณ ลัก ษณะ เมธอด และ ่ ออปเจ็ค  โปรแกรมเชิง ออปเจ็ค จะมีค ุณ ลัก ษณะเด่น อยู่ส าม ประการคือ การห่อ หุ้ม การสืบ ทอด และการมีไ ด้ หลายรูป แบบ  การห่อ หุม คือ การทีใ ห้ค ุณ ลัก ษณะถูก ห่อ หุม อยู่ ้ ่ ้ ภายในเมธอด โดยกำา หนดให้ค ุณ ลัก ษณะมี access modifier เป็น private และกำา หนดให้ เมธอดมี access modifier เป็น public  ข้อ ดีข องการห่อ หุม คือ การซ่อ นเร้น ข้อ มูล และ ้ ความเป็น โมดูล
  • 44. สรุป เนื้อ หาของบท  การมีไ ด้ห ลายรูป แบบคือ การทีก ำา หนดให้ม ก าร ่ ี ตอบสนองต่อ เมธอดเดีย วกัน ด้ว ยวิธ ีก ารทีต ่า งกัน ่ และสามารถกำา หนดออปเจ็ค ได้ห ลายรูป แบบ  Unified Modeling Language (UML) เป็น ภาษา ทีใ ช้ร ูป กราฟฟิก เพื่อ จำา ลองระบบซอฟต์แ วร์ ในที่ ่ นีไ ด้แ นะนำา สัญ ลัก ษณ์ข อง UML ทีส ำา คัญ สอง ้ ่ อย่า งคือ ไดอะแกรมของคลาสและไดอะแกรมขอ งออปเจ็ค  วัฎ จัก รการพัฒ นาโปรแกรมจะประกอบไปด้ว ยขั้น ตอนต่า งๆ 5 ขั้น ตอนคือ ขั้น ตอนการวิเ คราะห์ ขั้น ตอนการออกแบบ ขั้น ตอนการเขีย นโปรแกรม ขัน ้ ตอนการทดสอบ และ ขั้น ตอนการทำา งาน
  • 45. แบบฝึก หัด  แบบฝึก หัด ที่ 1 การออกแบบคลาส • เขีย นข้อ กำา หนดอธิบ ายระบบโปรแกรมสำา หรับ การตัด เกรดของรายวิช าหนึ่ง รายวิช า • เขีย นไดอะแกรมของคลาสเพื่อ อธิบ ายคุณ ลัก ษณะและ เมธอดทั้ง หมดที่ม ีอ ยู่ใ นคลาส