SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Downloaden Sie, um offline zu lesen
บทท 4
          หลกการเชงออบเจกต
        (Object Oriented Concept)

           ผศ.ธนศา เครอไวศยวรรณ
           คณะเทคโนโลย'สารสนเทศ
สถาบ+นเทคโนโลย'พระจอมเกล0าเจ0าค1ณทหารลาดกระบ+ง
วตถประสงค
 แนะน6าอ7อบเจกต9และคลาส

 อธบายค1ณล+กษณะและเมธอด

 อธบายการเข'ยนโปรแกรมเชงอ7อบเจกต9โดยใช0ภาษาจาวา

 แนะน6าการเข'ยนโปรแกรมโดยใช0ค1ณล+กษณะเด@นของโปรแกรมเชงอ7อบ
  เจกต9
 แนะน6า Unified Modelling Language

 อธบายข+Iนตอนการพ+ฒนาโปรแกรม
หลกการเชงออบเจกต
 ภาษาจาวาเปนภาษาคอมพวเตอรทใช$หลกการเชงออบเจกต

 OOP (Object Oriented Programming)

 OOP เปนขบวนการการพฒนาโปรแกรมโดยการจ*าลองปMญหาว@าประกอบไป
  ด0วยอ7อบเจกต9ใดบ0าง
 นยามท'Oส6าค+ญคอ
   •   อ7อบเจกต9 (object)
   •   คลาส (class)
ออบเจกต
 อ7อบเจกต9คอสOงต@างๆท'ม'อยRในช'วตประจ6าว+น
                       O @
    •   ออบเจกตทเปนร+ปธรรมเช-น น+กศSกษา ใบลงทะเบ'ยน ปากกา และรถ
    •   ออบเจกตทเปนนามธรรมเช-น คะแนน รายชOอวชา บ+ญช'เงนฝาก และตารางเทยวบน
 ออบเจกตประกอบด$วย
    •   คณลกษณะ (attribute) หร/อข$อม+ล (data)
    •   พฤตกรรม (behavior) หร/อเมธอด (method)
ออบเจกต
 ค1ณล+กษณะ
   •   ข0อมRลของอ7อบเจกต9
   •   แต@ละอ7อบเจกต9อาจม'ค@าของค1ณล+กษณะท'Oตางก+น
                                             @
 เมธอด
   •   สOงท'อ7อบเจกต9สามารถกระท6าได0
            O
   •   ค6าส+งในการท6างานของโปรแกรมเชงอ7อบเจกต9
              O
   •   โปรแกรมจะจ+ดการก+บข0อมRลโดยเร'ยกใช0เมธอด
ต+วอย@างของออบเจกต
 นกศ1กษา
   •   อาจจะมคณลกษณะเช-น รหส ช/อ และเกรดเฉลย
   •   อาจจะมเมธอดเช-น ลงทะเบยน สอบ และเดน
 รถยนต
   •   อาจจะมคณลกษณะเช-น ยห$อ ร-น และส
   •   อาจจะมเมธอดเช-น เคล/อนท หยด และเล3ยว
 สนข
   •   อาจจะมคณลกษณะเช-น ช/อ พนธ และส
   •   อาจจะมเมธอดเช-น เห-า คลาน และกระดกหาง
ต+วอย@างของโปรแกรมเชงอ7อบเจกต9
 โปรแกรมระบบจ+ดการบ+ญช'เงนฝากของธนาคาร

 ต+วอย@างของอ7อบเจกต9
     •   Account
     •   Customer
     •   Transaction
     •   ATM
   Account
     •   อาจม'ค1ณล+กษณะเช@น เลขท'Oบ+ญช' ชOอเจ0าของบ+ญช' ว+นท'เปXดบ+ญช' และยอดเงนคง
                                                             O
         เหลอ
     •   อาจม'เมธอดเช@น ฝาก ถอน และโอนเงน
คลาส
 เปรยบเสม/อนพมพเขยวของออบเจกต

 ออบเจกตจะถ+กสร$างมาจากคลาส บางคร3งเรยกว-าเปน instance ของคลาส
 คลาสหน1งคลาสสามารถสร$างออบเจกตได$หลายออบเจกต อาทเช-น คลาสช/อ
  Student อาจสร$างออบเจกตช/อ s1,s2 หร/อ s3 ซ1งเปนออบเจกตชนด
  Student
รRปแสดงการสร0างอ7อบเจกต9จากคลาส Student
ค1ณล+กษณะของอ7อบเจกต9
 ข0อมRลท'เก7บอยR@ในอ7อบเจกต9
          O
 แบ@งเปYนต+วแปร (variable) และค@าคงท'O (constant)
    •   ต+วแปรคอค1ณล+กษณะท'สามารถเปล'Oยนค@าได0
                               O
    •   ค@าคงท'Oคอค1ณล+กษณะท'ไม@สามารถเปล'ยนค@าได0
                             O            O
ต+วอย@างค1ณล+กษณะของอ7อบเจกต9
ค1ณล+กษณะของคลาส
 เปYนค1ณล+กษณะท'ใช0รวมก+นของท1กอ7อบเจกต9
                 O @
 ท1กอ7อบเจกต9จะใช0ค1ณล+กษณะร@วมก+นท6าให0ประหย+ดพIนท'Oในหน@วยความจ6า
 ต+วอย@างเช@น ค1ณล+กษณะท'ก6าหนดให0เปYนค@าคงท'ชOอ MIN_GPA
                          O                   O
ต+วอย@างค1ณล+กษณะของคลาส
เมธอด
 วธ'การหรอการกระท6าท'นยามอยRในคลาสหรออ7อบเจกต9เพOอใช0ในการจ+ดการ
                      O      @
  ก+บค1ณล+กษณะของอ7อบเจกต9
 เปร'ยบเท'ยบได0ก+บ function, procedure หรอ subroutine ของโปรแกรมเชง
  กระบวนการ
 ต+วอย@างเช@น เมธอด deposit()เพOอเปYนเมธอดส6าหร+บฝากเงน
การส/อสารระหว-างออบเจกต
 การส/อสารระหว-างกนของออบเจกตท*าได$โดยการผ-านข-าวสาร   (message)


                                          objB   คอชOออ7อบเจกต9
                                           method4   คอชOอเมธอด
                                           (1,2) คอargument
การส/อสารระหว-างออบเจกต
 ข-าวสารจะส-งผ-านจากออบเจกต objA ทเปนผ+$สง (sender) เพ/อเร'ยกการ
                                          -
  ท*างานของเมธอดทช/อ method4 จากออบเจกต objB ทเปนผ+$รบ
  (receiver)
 objB อาจส-งค-า (return value) บางค-ากลบมายง objA
การเข'ยนโปรแกรมเชงอ7อบเจกต9โดยใช0ภาษาจาวา
 การประกาศคลาส

 การประกาศค1ณล+กษณะ

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

 การประกาศและสร0างอ7อบเจกต9

 การเร'ยกใช0สมาชกของอ7อบเจกต9
การประกาศคลาส
 โปรแกรมภาษาจาวาแต-ละโปรแกรมจะประกอบไปด$วยคลาสอย-างน$อยหน1ง
  คลาส โดยม'ร+ปแบบการประกาศด+งน'I
               [modifier] class Classname {
                     [class member]
              }
    •   modifier ค/อคยเวรด   (keyword) ของภาษาจาวาทใช$ในการอธบายระดบการเข$าถ1ง
        (access modifier)
    •   class ค/อคยเวรดของภาษาจาวาเพ/อระบว-าเปนการประกาศคลาส
    •   Classname ค/อช/อคลาส
    •   class member ค/อเมธอดหร/อคณลกษณะ

 ต+วอย@าง
               public class Student {
               }
การประกาศค1ณล+กษณะ
 ค1ณล+กษณะของอ7อบเจกต9คอต+วแปรหรอค@าคงท'ซSOงประกาศภายในอ7อบ
                                         O
  เจกต9 โดยม'ร+ปแบบการประกาศด+งน'I
              [modifier] dataType attributeName;
    •   modifier คอค'ย9เวร9ดของภาษาจาวาท'Oอธบายค1ณสมบ+ตต@างๆของต+วแปรหรอค@า
        คงท'O
    •   dataType คอชนดข0อมRลซSOงอาจเปYนชนดข0อมRลพIนฐานหรอชนดคลาส
    •   attributeName คอชOอของค1ณล+กษณะ

 ต+วอย@าง
                public class   Student {
                      public   String id;
                      public   String name;
                      public   double gpa;
                }
การประกาศเมธอด
 ภาษาจาวาก6าหนดรRปแบบของการประกาศเมธอดท'อยRในคลาสไว0ด+งน'I
                                         O @
          [modifier] return_type methodName([arguments]) {
                [method_body]
          }
   •   modifier คอค'ย9เวร9ดของภาษาจาวาท'Oใช0อธบายระด+บการเข0าถSง
   •   return_type คอชนดข0อมRลของค@าท'จะม'การส@งกล+บ
                                         O
   •   methodName คอชOอของเมธอด
   •   arguments คอต+วแปรท'Oใช0ในการร+บข0อมRลท'อ7อบเจกต9ส@งมาให0
                                               O
   •   method_body คอค6าส+Oงต@างๆของภาษาจาวาท'อยR@ในเมธอด
                                                  O
ตวอย-างโปรแกรม
public class Student {
        public String id;
        public String name;
        public double gpa;
        public void setID(String ID) {
                id = ID;
        }
        public void setName(String n) {
                name = n;
        }
        public void setGPA(double GPA) {
                gpa = GPA;
        }
        public void showDetails() {
                System.out.println("ID: "+id);
                System.out.println("Name: "+name);
                System.out.println("GPA: "+gpa);
        }
}
เมธอดท'ชOอ main()
                           O
 โปรแกรมจาวาประย1กต9 (Java Application) จะเรOมต0นการท6างานในคลาสท'O
  ม'เมธอดท'OชOอ main โดยม'รปแบบของเมธอดด+งน'I
                           R

       public static void main(String args[]) {
           [method_body]
       }
การประกาศอ7อบเจกต9
 อ7อบเจกต9ท1กอ7อบเจกต9ในโปรแกรมภาษาจาวาจะต0องม'ค6าส+OงประกาศเพOอระ
  บ1ว@าอ7อบเจกต9นนเปYนอ7อบเจกต9ของคลาสใด โดยม'รปแบบการประกาศด+งน'I
                 +I                            R
              [modifier] ClassName objectName;
    •   modifier คอค'ย9เวร9ดท'Oอธบายค1ณสมบ+ตต@างๆของอ7อบเจกต9
    •   ClassName คอชOอของคลาสส6าหร+บอ7อบเจกต9น+Iน
    •   objectName คอชOอของอ7อบเจกต9

 ต+วอย@าง
               Student     s1;
การสร0างอ7อบเจกต9
 ค6าส+งท'Oใช0ในการสร0างอ7อบเจกต9จะม'รปแบบด+งน'I
       O                              R
              objectName = new ClassName([arguments]);
    •   objectName คอชOอของอ7อบเจกต9
    •   new คอค'ยเวร9ดของภาษาจาวาเพOอใช0ในการสร0างอ7อบเจกต9
                 9
    •   ClassName คอชOอของคลาส
    •   arguments คอค@าท'Oตองการส@งผ@านในการเร'ยก Constructor
                           0
 ต+วอย@าง
               s1 = new Student();
การประกาศและสร0างอ7อบเจกต9
 ค6าส+งในการประกาศและสร0างอ7อบเจกต9สามารถท'OจะรวมเปYนค6าส+Oงเด'ยวก+น
       O
  โดยม'รปแบบค6าส+งด+งน'I
        R        O
             [modifier] ClassName objectName =
                                 new ClassName([arguments]);

 ต+วอย@าง
             Student s1 = new Student();
การเร'ยกใช0สมาชกของอ7อบเจกต9
 การเร'ยกใช0ค1ณล+กษณะของอ7อบเจกต9ม'รปแบบด+งน'I
                                     R
                objectName.attributeName;
 การเร'ยกใช0เมธอดของอ7อบเจกต9ม'รปแบบด+งน'I
                                 R
              objectName.methodName([arguments]);
    •   objectName คอชOอของอ7อบเจกต9ทสร0างขSIน
                                       'O
    •   methodName คอชOอของเมธอดของอ7อบเจกต9น+Iน
    •   arguments คอค@าท'Oตองการส@งผ@านไปให0ก+บเมธอดของอ7อบเจกต9น+Iน
                           0
 ต+วอย@าง
                s1.setName("Thana");
ตวอย-างโปรแกรม
public class Sample {
        public static void main(String args[]) {
                Student s1 = new Student();
                Student s2 = new Student();
                Student s3 = new Student();
                s1.setID("1234");
                s1.setName("Thana");
                s1.setGPA(3.25);
                s1.showDetails();
                s2.setID("1122");
                s2.setName("Somchai");
                s2.setGPA(2.90);
                s2.showDetails();
                s3.setID("2211");
                s3.setName("Somsri");
                s3.setGPA(3.00);
                s3.showDetails();
        }
}
ค1ณล+กษณะเด@นของโปรแกรมเชงอ7อบเจกต9
 การห@อห10ม (Encapsulation)

 การสบทอด (Inheritance)

 การม'ได0หลายรRปแบบ (Polymorphism)
การห@อห10ม
 หมายถSงการจะเร'ยกใช0ค1ณล+กษณะของอ7อบเจกต9จะท6าได0โดยการเร'ยกผ@าน
  เมธอดเท@าน+Iน
 หล+กการของการห@อห1มคอการก6าหนดให0ค1ณล+กษณะของอ7อบเจกต9ม'
                    0
  ค1ณสมบ+ตเปYน private และก6าหนดให0เมธอดม'ค1ณสมบ+ตเปYน public
ข0อด'ของการห@อห10ม
 การซ@อนเร0นข0อมRล (Information Hiding)
    •   ท6าให0อ7อบเจกต9สามารถตดต@อก+บอ7อบเจกต9ภายนอกผ@านเมธอดท'เปYนส@วนของ
                                                               O
        interface เท@าน+Iน
 ความเปYนโมดRล (Modularity)
    •   การพ+ฒนาโปรแกรมเชงอ7อบเจกต9จะสามารถก6าหนดให0อ7อบเจกต9แต@ละอ7อบเจกต9ม'
        ความเปYนอสระต@อก+น
ตวอย-างโปรแกรม
public class Student {
        private String id;
        private String name;
        private double gpa;
        public void setID(String ID) {
                id = ID;
        }
        public void setName(String n) {
                name = n;
        }
        public void setGPA(double GPA) {
                gpa = GPA;
        }
        public void showDetails() {
                System.out.println("ID: "+id);
                System.out.println("Name: "+name);
                System.out.println("GPA: "+gpa);
        }
}
การสบทอด
 หมายถSงการนยามคลาสใหม@จากรRปแบบของคลาสท'Oม'อยR@แล0ว โดยคลาสใหม@
  สามารถท'Oจะน6าค1ณล+กษณะและเมธอดของคลาสเดมมาใช0ได0
 โดยในภาษาจาวาจะใช0ค'ยเวร9ด extends เพOอระบ1การสบทอด
                       9
 ต+วอย@าง
ตวอย-างโปรแกรม
public class PartTimeStudent extends Student { }
public class FullTimeStudent extends Student { }
public class GradStudent extends Student {
        private String thesisTitle;
        private String supervisor;
        public void setThesisTitle(String t) {
                thesisTitle = t;
        }
        public void setSupervisor(String s) {
                supervisor = s;
        }
}
public class PhDStudent extends GradStudent {
        public boolean passQualify;
        public boolean isPassQualify() {
                return passQualify;
        }
}
การม'ได0หลายรRปแบบ
 หมายถSงการท'สามารถตอบสนองต@อข@าวสาร (เมธอด) เด'ยวก+นด0วยวธ'การท'O
              O
  ต@างก+น และสามารถก6าหนดอ7อบเจกต9ได0หลายรRปแบบ
 Overridden method

 Dynamic Binding
ต+วอย@าง
ตวอย-างโปรแกรม
class Ball {
        public void throwBall() { }
}
class SoccerBall extends Ball {
    public void throwBall() {
        System.out.println("Throwing soccerball");
    }
}
class TennisBall extends Ball {
    public void throwBall() {
        System.out.println("Throwing tennisball");
    }
}
public class TestBall {
    public static void main(String args[]) {
        Ball b1 = new Ball();
        SoccerBall b2 = new SoccerBall();
        Ball b3 = new SoccerBall();
    }
}
คลาสแบบ        abstract

 คลาสทม modifier เปน abstract หมายความว@าคลาสน+นย+งเปYนคลาสท'O
                                                    I
  ไม@สมบRรณ9 โดยม'เมธอดแบบ abstract ซSงเปYนเมธอดท'ย+งไม@สมบRรณ9
                                      O           O
  อย@างน0อยหนSงเมธอดอยR@ในคลาส
              O
 รRปแบบของเมธอดแบบ abstract

  [modifier] abstract return_type methodName([arguments]);

 คลาสแบบ abstract ก6าหนดขSIนมาเพOอให0คลาสอOนสบทอด โดยคลาสท'มา
                                                            O
  สบทอดจะต0องก6าหนดบล7อกค6าส+งในเมธอดท'ย+งไม@สมบRรณ9
                             O         O
 เราไม@สามารถสร$างออบเจกตของคลาสแบบ abstract ได$
ตวอย-างโปรแกรมแสดงคลาสแบบ                     abstract

public abstract class Student {
        protected String id;
        protected String name;
        protected double gpa;
        public void setID(String ID) {
                id = ID;
        }
        public void setName(String n) {
                name = n;
        }
        public void setGPA(double GPA) {
                gpa = GPA;
        }
        public abstract void showDetails();
}
ตวอย-างคลาสท'Oสบทอดมาจากคลาสแบบ                    abstract

  public class FullTimeStudent extends Student {
          private int credit;
          private final int MAX_YEAR = 4;
          public FullTimeStudent(int c) {
                  credit = c;
          }
          public void showDetails() {
                  System.out.println("ID: "+id);
                  System.out.println("Name: "+name);
                  System.out.println("GPA: "+gpa);
                  System.out.println("Credit: "+credit);
          }
  }
อนเตอรเฟส
 อนเตอร9เฟส (interface) ม'ล+กษณะคล0ายก+บคลาสแบบ abstract แต@จะ
  ประกอบด0วยเมธอดท'ย+งไม@สมบRรณ9เท@าน+น
                   O                  I
 รRปแบบของอนเตอร9เฟส
      [modifier] interface InterfaceName {
            [methods();]
      }

 อนเตอร9เฟสก6าหนดขSIนมาเพOอให0คลาสอOนน6าไปใช0งานโดยใช0ค'ยเวร9ด
                                                          9
  implements โดยม'รปแบบด+งน'I
                   R
      [modifier] class ClassName implements InterfaceName {
            [methods();]
      }
อนเตอรเฟส
 อนเตอร9เฟสจะเหมอนก+บคลาสแบบ abstract ตรงท'Oเราจะไม@สามารถ
  สร0างอ7อบเจกต9ของอนเตอร9เฟสได0
 ประโยชน9ของอนเตอร9เฟสคอ
   •   การก6าหนดรRปแบบของเมธอดต@างๆท'OคลาสอOนๆจะต0อง implements ไว0ล@วงหน0า
       ซSOงสามารถอาศ+ยหล+กการของการม'ได0หลายรRปแบบมาเร'ยกใช0เมธอดเหล@าน+Iนได0จาก
       คลาสท'O implements อนเตอร9เฟส
   •   ภาษาจาวาก6าหนดให0คลาสใดๆสามารถสบทอดคลาสอOนได0เพ'ยงคลาสเด'ยวเท@าน+Iน
       แต@จะสามารถ implements อนเตอร9เฟสได0หลายอนเตอร9เฟส
ตวอย-างอนเตอรเฟส
public interface    Student {
     public void   setID(String ID);
     public void   setName(String n);
     public void   setGPA(double GPA);
     public void   showDetails();
}
ตวอย-างคลาสท'O implements อนเตอรเฟส
public class PartTimeStudent implements Student {
     private String id;
     private String name;
     private double gpa;
     private int credit;
     private final int MAX_YEAR = 8;
     public PartTimeStudent(int c) {
             credit = c;
     }
     public void setID(String ID) {
             id = ID;
     }
     public void setName(String n) {
             name = n;
     }
ตวอย-างคลาสท'O implements อนเตอรเฟส
      public void setGPA(double GPA) {
              gpa = GPA;
      }
      public void showDetails() {
              System.out.println("ID: "+id);
              System.out.println("Name: "+name);
              System.out.println("GPA: "+gpa);
              System.out.println("Credit: "+credit);
      }
}
แพคเกจ
 ซอฟตแวรแพคเกจช-วยในการจดการการพฒนาโปรแกรมขนาดใหญ-

 ในโปรแกรมภาษาจาวา แพคเกจจะเปนทรวมของคลาสของภาษาจาวา
  หลายๆคลาส
 โปรแกรมอาจแบ-งเปนแพคเกจและแพคเกจย-อย     (Subpackage)
 แพคเกจจะเกบไว$ในไดเรกทอร   (Directory) ซ1งจะเปนช/อของแพคเกจ
ตวอย-าง
โครงสร$างโปรแกรมภาษาจาวา
 ร+ปแบบโปรแกรมภาษาจาวามดงน3
      [<package_declaration>]
      [<import_declaration>]
     [<class_declaration>]
ค*าสง package
 ค*าสง package เปนการระบว-าคลาสอย+-ในแพคเกจใด
 ร+ปแบบของค*าสง package
     package <package_name>[<sub_package_name>];

 ต+วอย@าง
     package faculty.domain;

 โปรแกรมภาษาจาวาหนSOงโปรแกรมจะม'ค6าส+Oง package ได$เพยงค*าสงเดยว
  โดยจะเปนค*าสงแรกของโปรแกรม
 กรณ'ทไม@ม'ค6าส+ง package คลาสจะถ+กก*าหนดไว$ในแพคเกจ
       'O        O                                      default
ค*าสง import
 ค*าสง import เปนการเรยกใช$คลาสในแพคเกจต-างๆ
 ร+ปแบบของค*าสง import
   import <package_name>[.<sub_package_name>].<Class_name>
   • หรอ
   import <package_name>[.<sub_package_name>].*;

 ตวอยาง
   import faculty.reports.Report;
   • หรอ
   import java.awt.*;

 ค*าสง import จะอย+-ก-อนหน$าการประกาศคลาส

 โปรแกรมภาษาจาวาหน1งโปรแกรมสามารถมค*าสง import ได$หลายค*าสง
Unified Modeling Language (UML)
 เปYนภาษาท'Oสามารถน6ารRปกราฟฟXกมาจ6าลองโปรแกรมเชงอ7อบเจกต9ได0

 ประกอบด0วยสองส@วนคอ
   •   ไดอะแกรมของคลาส (Class Diagram)
   •   ไดอะแกรมของอ7อบเจกต9 (Object Diagram)
ไดอะแกรมของคลาส
 เปYนส+ญล+กษณ9ท'Oใช0แสดงคลาส

 ประกอบด0วยส@วนต@างๆสามส@วนคอ
   •   ชOอของคลาส
   •   ค1ณล+กษณะภายในคลาส
   •   เมธอดภายในคลาส
ไดอะแกรมของอ7อบเจกต9
 ประกอบไปด0วยส@วนต@างๆสองส@วนคอ
   •   ส@วนท'ระบ1ชอของอ7อบเจกต9
             O    O
   •   ส@วนท'ระบ1ค@าของค1ณล+กษณะภายในอ7อบเจกต9
               O
ข3นตอนการพฒนาโปรแกรม
 ข+นตอนการวเคราะห9 (Analysis)
    I
 ข+นตอนการออกแบบ (Design)
    I
 ข+นตอนการเข'ยนโปรแกรม (Programming)
    I
 ข+นตอนการทดสอบ (Testing)
    I
 ข+นตอนการท6างาน (Operation)
    I
รRปแสดงข3นตอนการพฒนาโปรแกรม
สร1ปเนIอหาของบท
 โปรแกรมเชงอ7อบเจกต9จะม'ค6านยามท'Oส6าค+ญสองค6าคอ อ7อบเจกต9และคลาส

 อ7อบเจกต9คอสOงต@างๆท'ม'อยRในช'วตประจ6าว+นจะประกอบไปด0วยค1ณล+กษณะ
                       O @
  และเมธอด
 คลาสเปร'ยบเสมอนพมพ9เข'ยวของอ7อบเจกต9 อ7อบเจกต9ท'OถRกสร0างมาจาก
  คลาส อ7อบเจกต9หลายอ7อบเจกต9สามารถถRกสร0างจากคลาสหนSงคลาสได0
                                                       O
 ค1ณล+กษณะของอ7อบเจกต9คอข0อมRลท'เก7บอยR@ในอ7อบเจกต9 ซSOงจะแบ@งออกเปYน
                                 O
  ต+วแปรและค@าคงท'O
 ค1ณล+กษณะของคลาสเปYนค1ณล+กษณะท'ใช0รวมก+นของท1กอ7อบเจกต9
                                 O @
 เมธอดคอวธ'การเพOอใช0ในการจ+ดการก+บค1ณล+กษณะของอ7อบเจกต9หรอ
  ค1ณล+กษณะของคลาส
สร1ปเนIอหาของบท
 ภาษาจาวาม'นยามในการเข'ยนโปรแกรมเชงอ7อบเจกต9เพOอประกาศคลาส
  ค1ณล+กษณะ เมธอด และอ7อบเจกต9
 โปรแกรมเชงอ7อบเจกต9จะม'คณล+กษณะเด@นอยRสามประการคอ การห@อห1ม
                          1             @                   0
  การสบทอด และการม'ได0หลายรRปแบบ
 การห@อห10มคอการท'Oให0ค1ณล+กษณะถRกห@อห1มอยRภายในเมธอด โดยก6าหนดให0
                                        0 @
  ค1ณล+กษณะม' access modifier เปYน private และก6าหนดให0เมธอดม'
  access modifier เปYน public
 ข0อด'ของการห@อห1มคอการซ@อนเร0นข0อมRลและความเปYนโมดRล
                  0
 การสบทอดคอการท'Oคลาสใหม@สามารถน6าเอาค1ณล+กษณะและเมธอดของ
  คลาสท'Oออกแบบไว0แล0วมาใช0ได0
สร1ปเนIอหาของบท
 การม'ได0หลายรRปแบบคอการท'ก6าหนดให0ม'การตอบสนองต@อเมธอดเด'ยวก+น
                           O
    ด0วยวธ'การท'Oตางก+น และสามารถก6าหนดอ7อบเจกต9ได0หลายรRปแบบ
                  @
 คลาสแบบ abstract คอคลาสท'OยงเปYนคลาสท'ไม@สมบRรณ9 โดยม'เมธอด
                             +          O
    แบบ abstract ซSOงเปYนเมธอดท'Oยงไม@สมบRรณ9อย@างน0อยหนSงเมธอด
                                  +                      O
 อนเตอร9เฟสม'ล+กษณะคล0ายก+บคลาสแบบ abstract แต@จะประกอบด0วย
    เมธอดท'ย+งไม@สมบRรณ9เท@าน+น
           O                  I
   ค6าส+Oง package เปYนการระบ1ว@าคลาสอยR@ในแพคเก7จใด
   ค6าส+Oง import เปYนการเร'ยกใช0คลาสในแพคเก7จต@าง
สร1ปเนIอหาของบท

 Unified Modeling Language (UML) เปYนภาษาท'Oใช0รปกราฟฟXกเพOอจ6าลอง
                                                 R
  ระบบซอฟต9แวร9 ในท'นได0แนะน6าส+ญล+กษณ9ของ UML ท'Oส6าค+ญสองอย@างคอ
                    O 'I
  ไดอะแกรมของคลาสและไดอะแกรมของอ7อบเจกต9
 ว+ฎจ+กรการพ+ฒนาโปรแกรมจะประกอบไปด0วยข+Iนตอนต@างๆ 5 ข+Iนตอนคอ
  ข+นตอนการวเคราะห9 ข+Iนตอนการออกแบบ ข+Iนตอนการเข'ยนโปรแกรม ข+Iน
    I
  ตอนการทดสอบ และข+นตอนการท6างาน
                     I
แบบฝlกห+ด
 แบบฝlกห+ดท'O 1 การออกแบบคลาส
   •   เข'ยนข0อก6าหนดอธบายระบบโปรแกรมส6าหร+บการต+ดเกรดของรายวชาหนSOงรายวชา
   •   เข'ยนไดอะแกรมของคลาสเพOออธบายค1ณล+กษณะและเมธอดท+งหมดท'ม'อยR@ในคลาส
                                                         I     O

Weitere ähnliche Inhalte

Was ist angesagt?

พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาThanachart Numnonda
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : ThreadIMC Institute
 
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
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา CWarawut
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดThanachart Numnonda
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาJK133
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานNookky Anapat
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็มJitti Nut
 
เครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซีเครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซีเทวัญ ภูพานทอง
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPp'dan Phuengkun
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอchupong roddee
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาT'tle Tanwarat
 
การประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซีการประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซีmycomc55
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาKukkik Kanya
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา JavaItslvle Parin
 

Was ist angesagt? (20)

พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวา
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : Thread
 
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
 
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา C
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาด
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
 
C language
C languageC language
C language
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็ม
 
เครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซีเครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซี
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
C slide
C slideC slide
C slide
 
Intro c
Intro cIntro c
Intro c
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอ
 
02 basic
02 basic02 basic
02 basic
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
การประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซีการประกาศตัวแปรในภาษาซี
การประกาศตัวแปรในภาษาซี
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวา
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 

Ähnlich wie Java Programming: หลักการเชิงอ็อบเจกต์

การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor
การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editorการใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor
การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express EditorWarawut
 
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
 
ใบความรู้ที่ 5
ใบความรู้ที่  5ใบความรู้ที่  5
ใบความรู้ที่ 5SubLt Masu
 
Structure Statement VB.NET 2005
Structure Statement VB.NET 2005Structure Statement VB.NET 2005
Structure Statement VB.NET 2005Warawut
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา JavaItslvle Parin
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นDararat Worasut
 
Java script เบื้องต้น
Java script เบื้องต้นJava script เบื้องต้น
Java script เบื้องต้นSamart Phetdee
 
หน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถามหน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถามkruthanyaporn
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Thank Chiro
 
บทที่ 6 อาร์เรย์
บทที่ 6 อาร์เรย์บทที่ 6 อาร์เรย์
บทที่ 6 อาร์เรย์Theeravaj Tum
 
การสร้างแบบสอบถาม
 การสร้างแบบสอบถาม การสร้างแบบสอบถาม
การสร้างแบบสอบถามkruthanyaporn
 

Ähnlich wie Java Programming: หลักการเชิงอ็อบเจกต์ (19)

11
1111
11
 
การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor
การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editorการใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor
การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor
 
Ass1 1
Ass1 1Ass1 1
Ass1 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
 
ใบความรู้ที่ 5
ใบความรู้ที่  5ใบความรู้ที่  5
ใบความรู้ที่ 5
 
Structure Statement VB.NET 2005
Structure Statement VB.NET 2005Structure Statement VB.NET 2005
Structure Statement VB.NET 2005
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Java script เบื้องต้น
Java script เบื้องต้นJava script เบื้องต้น
Java script เบื้องต้น
 
Know1 3
Know1 3Know1 3
Know1 3
 
หน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถามหน่วยที่ 4 การสร้างแบบสอบถาม
หน่วยที่ 4 การสร้างแบบสอบถาม
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
บทที่ 6 อาร์เรย์
บทที่ 6 อาร์เรย์บทที่ 6 อาร์เรย์
บทที่ 6 อาร์เรย์
 
Pbl2
Pbl2Pbl2
Pbl2
 
C language
C languageC language
C language
 
การสร้างแบบสอบถาม
 การสร้างแบบสอบถาม การสร้างแบบสอบถาม
การสร้างแบบสอบถาม
 

Mehr von Thanachart Numnonda

Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thanachart Numnonda
 
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขThanachart Numnonda
 
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยThanachart Numnonda
 
Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Thanachart Numnonda
 
How would cloud computing Effect to Software Industry?
How would cloud computing  Effect to Software Industry?How would cloud computing  Effect to Software Industry?
How would cloud computing Effect to Software Industry?Thanachart Numnonda
 
Impact of cloud computing to Asian IT Industry
Impact of cloud computing  to Asian IT IndustryImpact of cloud computing  to Asian IT Industry
Impact of cloud computing to Asian IT IndustryThanachart Numnonda
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่Thanachart Numnonda
 
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]Thanachart Numnonda
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่Thanachart Numnonda
 
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย Thanachart Numnonda
 
Cloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆCloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆThanachart Numnonda
 
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทยThanachart Numnonda
 
บทความ Google vs. Android
บทความ Google vs. Android  บทความ Google vs. Android
บทความ Google vs. Android Thanachart Numnonda
 
Technology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryTechnology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryThanachart Numnonda
 
อยากอยู่ 110 ปี
อยากอยู่ 110 ปี อยากอยู่ 110 ปี
อยากอยู่ 110 ปี Thanachart Numnonda
 
Java Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกJava Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกThanachart Numnonda
 

Mehr von Thanachart Numnonda (20)

Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021
 
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
 
Planning on Mobile Strategy
Planning on Mobile StrategyPlanning on Mobile Strategy
Planning on Mobile Strategy
 
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
 
Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Software Trends Towards AEC 2015
Software Trends Towards AEC 2015
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
 
How would cloud computing Effect to Software Industry?
How would cloud computing  Effect to Software Industry?How would cloud computing  Effect to Software Industry?
How would cloud computing Effect to Software Industry?
 
Impact of cloud computing to Asian IT Industry
Impact of cloud computing  to Asian IT IndustryImpact of cloud computing  to Asian IT Industry
Impact of cloud computing to Asian IT Industry
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
 
Cloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆCloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆ
 
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
 
บทความ Google vs. Android
บทความ Google vs. Android  บทความ Google vs. Android
บทความ Google vs. Android
 
IT trends for co-creation
IT trends for co-creationIT trends for co-creation
IT trends for co-creation
 
Technology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryTechnology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software Industry
 
อยากอยู่ 110 ปี
อยากอยู่ 110 ปี อยากอยู่ 110 ปี
อยากอยู่ 110 ปี
 
Open
OpenOpen
Open
 
Java Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกJava Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิก
 

Java Programming: หลักการเชิงอ็อบเจกต์