ความหมายของโอโอพี                          โอโอพี หรื OOP เปนคํายอของ Object-Oriented Programming
หมายถึงการเขียนโปรแกรมเชิงวัตถุ หรือเขียนโปรแกรมแบบออบเจ็กต การเขียนโปแกรมในลักษณะนี้จะแตกตางจากกา เขียน        ร
โปรแกรมที่ประมวลผลเชิงคําสั่งที่มีการทํางานทีละตําสั่งดังที่เคยศึกษามา แตจะเปนการสรางขอมูลเปนวัตถุหรือออบเจ็กต แลว
เขียนโปแกรมประมวลกับออบเจ็กตนั้นๆ ใหทํางานตามตองการ นอกจากนั้นยังเขียนโปรแกรมประมวลผลกับออบเจ็กตได ซึ่ง
ออบเจ็กตจะมีลักษณะ 3 ประการดังตอไปนี้
               state เปนคุณลักษณะของออบเจ็กตนั้นๆ ที่บอกวาออบเจ็กตนั้นเปนอะไรบาง หรือเรียกอีกอยางหนึ่งวาเปน
คุณลักษณะประจํา โดยคุณสมบัติขึ้นกับมุมมองของแตละคน ในการเขียนโปรแกรมเชิงวัตถุ คุณลักษณะประจํานี้มักจะเปน
ขอมูล หรือตัวแปรตางๆ ของออบเจ็กตนั้น
               Behavior หมายถึง พฤติกรรมของออบเจ็กต
I              dentity เปนคุณลักษณะที่ทําใหออบเจ็กตแตละออบเจ็กตตางกัน


      ในการเขียนโปรแกรมนั้นออบเจ็กตมีไดหลายตัว โดยออบเจ็กตแตละตัวจะเปนอิสระ ไมขึ้นตอกันแตละออบเจ็กต
สามารถที่จะสื่อสารหรือโตตอบกันไดโดยวิธีสงเมสเสจ ถึงกัน
คลาสและออบเจ็กต                  การมองทุกอยางของปญหาเปนวัตถุหรืออบเจ็กตนั้น ถาหากวัตถุใดมีลักษณะคลายกันก็จะรวมทั้งหมดให
เปนคลาส ถาหากมีตัวแปรหรือสรางขอมูลขึ้นมา ขอมูลนั้นก็จะถูกใชในออบเจ็กตนั้นๆ การกระทํากับออบเจ็กตจะกระทําผานเมธอดของคลาส
นั้นๆ

               สวนสําคัญสองสวนของออบเจ็กตคือ คุณลักษณะซึ่งเปนขอมูลประจําตัวของออบเจ็กตและพฤติกรรมหรือเมธอด ซึ่งบอกวา
ออบเจ็กตกําลังทําสิ่งใดอยูถาหากมีการสรางออบเจ็กตขึ้นมาและโปรแกรมตองการจัดการกับขอมูลทีเ่ ปนคุณลักษณะของออบเจ็กตก็จะกระทํา
ผานเมธอด

              สําหรับคลาสจะเปนที่รวบรวมของออบเจ็กตหลายๆ ออบเจ็กตที่มีลักษณะเดียวกัน แตอาจมีขอมูลประจําตัวหรือคุณลักษณะ
ตางๆ

                ดังนั้นในการเขียนโปรแกรมเชิงวัตถุนั้นจะตองรูจักการนิยาม คลาส จากทีกลาวมาแลวจะพบวาคลาสเปนการจัดกลุมของ
                                                                                    ่
ออบเจ็กตที่มีคุณลักษณะและพฤติกรรมอยางเหมือนกัน เปรียบเสมือนเปนพิมพเขียวของออบเจ็กต หรือเปนแมแบบสําหรับออบเจ็กต

               ในการเขียนโปรแกรมเชิงวัตถุนั้นจะไมมีการใชงานคลาสตรงๆ แตจะใชคลาสเปนพิมพเขียวเพื่อสรางออบเจ็กตตางๆขึ้นมา
ออบเจ็กตทถูกสรางจากคลาสจะเรียนกวา อินสแตนซ ของคลาสนั้นโดยที่คลาสใดคลาสหนึ่งสามารถสรางออบเจ็กตออกมาไดหลายตัวแตละ
            ี่
ตัวจะมีชื่อแตกตางกันไป

               สําหรับการเขียนโปรแกรมเชิงวัตถุดวยภาษตางๆนั้น จะมีคลาสมาตรฐานใหผูเขียนโปรแกรมใชงาน และผูเขียนโปรแกรมก็ตอง
เขาใจวิธีการสรางคลาสขึ้นมาเองดวย ดังนั้นในการเขียนโปรแกรมเชิงวัตถุจะตองพยายามจําแนกวาวัตถุที่เราสนใจนั้นตองมีตัวแปรใดที
สามารถแยกแยะวัตถุแตละตัวได และวัตถุดังกลาวมีพฤติกรรมอยางไร จากนั้นนํามารวมเปนคลาส และสรางคลาสนั้นขึ้นมา
การนิยามคลาส

    ในภาษาจาวาสามารถนิยามคลาสหรือประกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้

    [AccessSpecifier] Class Name

            {
                     Members
             }

AccessSpecifier                เปนความสามารถในการเขาถึงคลาสนั้นๆ
class                      เปนคียเวิรดในภาษาจาวาเพทอใชในการประกาศคลาส
Name                        เปนชื่อคลาสมี่ประกาศขึ้น
Members                       เปนคุณลักษณะหรือเมธอดตางๆ ของคลาสที่นิยามขึ้น
   การสรางออบเจ็กต
     หลังจากนิยามคลาสขึ้นมาแลว ถาหากโปรแกรมตองการใชงานจะตองสรางออบเจ็กตขึ้นมา เพื่อบอกวาออบเจ็กตเปนของคลาสใด โดยจะตองประกาศออบเจ็กตขึ้นมากอนซึ่งมี
รูปแบบดังนี้

 ClassName ObjectName;

                 การประกาศออบเจ็กตนี้จะทําใหคอมไพเลอรรับทราบวามีตัวแปร ObjectName แตจะยังไมมีหนวยความจําสําหรับขอมูลของออบเจ็กตที่ประกาศขึ้น ซึ่ง
จะตองสรางออบเจ็กตขึ้นมากอนโดยใชคําวา new ซึ่งมีรูปแบบดังนี้


objecyName = new ClassName([arguments])

                                    เมือมีการสรางออบเจ็กตขึ้นมาแลว สมาชิกของออบเจ็กตคือสมาชิกของคลาสนั้น ซึ่งไดแกคุณลักษณะหรือตัวแปรและเมธอดตางๆ ออบเจ็กตจะ
สามารถเขาถึงขอมูลที่เปนคุณลักษณะหรือเรียกใชเมธอดไดไมขึ้นกับaccessSpecifier ที่ถูกประกาศไวตอนนิยามคลาส โดยการเรียกใชสมาชิกจะทําโดยใชเครื่องหมายจุด แลว
ตามดวยสมาชิกที่ตองการเรียกใช
สแตติก(static)                 ในจาวามีคลาสตางๆใหใชงานมากมาย การสรางคลาสขึ้นมาใหมนี้ทําใหเราสามารถสรางเมธอดใหมๆ
ขึ้นมาใชงานแลวรวมกันเปนคลาสได และที่ผานมาในบทนี้จะเห็นวาถาหากมีการประกาศออบเจ็กตตองการใชงานสรางออบเจ็กตดวยคําสั่ง
new เชน                                                    import java.util.Scanner;
                                                                 public class Cal_Max {
                                                         public static void main(String args[])
                                                                             {
                                                                     int num1,num2;
                                                      Scanner stdin = new Scanner(System.in);
                                                        System.out.print("Input Number 1 : ");
                                                                num1 = stdin.nextInt();
                                                        System.out.print("Input Number 2 : ");
                                                                num2 = stdin.nextInt();
                                                       int larger = TestMax.max(num1,num2);
                                                     System.out.println("Max Data is "+larger);
                                                                             }
                                                                             }
                                                                      class TestMax
                                                                             {
                                                          static int max(int num1, int num2)
                                                                             {
                                                                    if(num1 > num2)
                                                                       return num1;
                                                                           else
                                                                       return num2;
                                                                             }
                                                                             }

           จากโปรแกรมนี้จะเปนวาเมธอดในคลาส Scanner ที่ใชรับขอมูลจะไมเปนแบบสแตติก ซึ่งจะตองสรางออบเจ็กตขึ้นมา แต
เมธอดชื่อmax ในคลาส TestMax ที่สรางขึ้นปนแบบสแตติก จึงเรียกชื่อคลาสและตามดวยเมธอดมาใชงานไดทันทีโดยไมตองสราง
ออบเจ็กต
Constructors เปนฟงกชันในคลาสที่จะถูกเรียกอัตโนมัติเมื่อเราสรางอ็อบเจ็คใหกับคลาสนั้น ๆ ดวยคําสั่ง new
ซึ่งมันจะเปนฟงกชัน Constructors ไดก็ตอเมื่อชื่อของมันเหมือนชื่อคลาส ถาภายในคลาสไมมี constructor ดังนั้นมันจะทํา
การเรียก constructure ของ base class (ถามันมี) เชน

                                                  <?php
                                      class Auto_Cart extends Cart
                                                      {
                                          function Auto_Cart() {
                                        $this->add_item("10", 1);
                                                      }
                                                      }
                                                     ?>
                           Constructors function นั้นสามารถรับคาพารามิเตอรไดเชนกัน ดังนี้
                                                  <?php
                                  class Constructor_Cart extends Cart
                                                      {
                                       function Constructor_Cart(
                        $item = "10", $num = 1) { $this->add_item($item, $num);
                                                      }
                                                      }


 // ในกรณีที่ไมสงคาพารามิเตอรใหกับ Constructor function $default_cart = new Constructor_Cart;
// ในกรณีนี้ฟงกชัน Constructor ของ Constructor_Cart นั้นไดกําหนดคา default ใหกับพารามิเตอรอยูแลว // ดังนั้น
เราก็ไมจําเปนตองสงคาพารามิเตอรก็ได ไมเกิด error
 // กรณีที่สงคา parameter ไปดวย $different_cart = new Constructor_Cart("20", 17); ?>
การสงออบเจ็กตไปยังเมธอด                           ในการเขียนโปรแกรมที่มีการสรางคลาสขึ้นมาหลายๆคลาสนั้น
ออบเจ็กตของคลาสหนึ่งสามารถใชเปนอารกิวเมนตเพื่อสงผานไปยังเมธอดของคลาสอีกคลาสหนึ่งได

เชนโปรแกรมStudent.Java เปนโปรแกรมคลาสสําหรับเก็บขอมูลนักเรียน ไดแก ชื่อและอีเมลโดยมีเมธอดสําหรับ
กําหนดและเรียกดูชื่อและอีเมลสําหรับใชงาน
                 public class Student3 {
                 private String name;
                 private String email;
                               public Student3()
                 {
                               name = "Unassigned";
                               email = "Unassigned";
                               }
                                public String getEmail(){
                               return email;
                                }
                                public String getName(){
                                return name;
                                }
                               public void setEmail(String address){
                                             email = address;
                               }
                               public void setName(String studentName){
                               name = studentName;
                               }
                 }
ตัวอยางการประยุกตการเขียนโปรแกรมเชิงวัตถุ
    จะเปนแบบการออกแบบคลาสแลวนํามาเขียนโปรแกรมประยุกตสําหรับใชงานจริง โดยอธิบายขั้นตอนสําคัญในการทํางานแตละขั้นตอน
โดยมีโปรแกรมตัวอยางการเขียนโปรแกรมสําหรับเขารหัสขอมูลโดยสงขอมูลผานเขาไปในเครือขายคอมพิวเตอรเพื่อความปลอดภัยไดนํา
เทคโนโลยีการเขารหัสมาใช ทําโดยการเลื่อนขอมูล แตถาเปนตัวอักขระตัวสุดทายของภาษาอังกฤษการเลื่อนขอมูลจะกลับมาเริ่มตนที่ตวแรกใหม
                                                                                                                             ั
-     ถาหากเปน 2-shift ขอมูลจะแทนไดดังนี้
A แทนดวย C
B แทนดวย D
………………..
Y แทนดวย A
Z แทนดวย B
   ถาขอมูลตนฉบับเปน “DIZZY” แลวเขารหัสแบบ 2- shift ขอมูลที่เขารหัสแลวจะเปน “FKBBA”

อธิบายการทํางานของโปรแกรม
1.ถาหากพิมพคําวา Teerawut ลงไป จะทําใหตัวแปร message ชี้ไปยังออบเจ็กตสตริง “Teerawut”
2.ตอมาถาหากกดคียตัวเลข 5 ลงไป จะทําใหตัวแปร shift มีคาเปน 5
3.เมื่อโปรแกรมเรียกใชเมธอด encrypt จะทําให msg ซึ่งเปนพารามิเตอรของเมธอดชี้ไปยังออบเจ็กตเดียวกับ message และ
พารามิเตอร shift มีคาเปน 5 เชนกัน
4.เมื่อเมธอด encrypt ทํางาน ทําใหตัวแปร encryptedMessage ชี้ไปยังหนอยความจําออบเจ็กตสตริงที่สรางขึ้นมาใหม
5.จากนั้นจะทําใหตัวแปร msg ชี้ไปยังสตริงชุดใหมที่ผานการเขารหัสแลว
6.หลังจากนั้นจะให encryptedMessage มีคาสตริงที่เขารหัสแลว
ตัวอยางโปรแกรม จะแสดงการสรางคลาสของการนําตัวอักขระ[]มาสรางเปนรูปสามเหลี่ยม โดยการสรางคลาสสามารถทําได
ดังตอไปนี้
1.สรางโปรเจ็กตใหม
2.สรางคลาสใหม โดยเลือกเมนู New>Class
3.กําหนดชื่อคลาส แลวกด Next
4.โปรแกรมจะแสดงคลาสใหมขึ้นมา
5.จากนั้นใหเติมโคด แลวรันโปรแกรม

สรุป คลาสเปรียบเสมือนพิมพเขียวสําหรับสรางออบเจ็กตตางๆออกมาที่มีลักษณะคลายกันมาอยูรวมกัน ในการสรางค ลาส
นั้น ภายในประกอบดวยสวนที่เปนคุณลักษณะหรือตัวแปรตางๆและสวนที่เปนเมธอดโดยที่ตัวแปรและเมธอดนี้ผที่นิยามคลาส
                                                                                                      ู
สามารถกําหนดไดวาจะใหผูใชภายนอกสามารถเขาถึงไดในระดับใด เมื่อมีการออบเจ็กตของคลาสขึ้นมาแลวตองการใหทําเมธ
อดใดทันที ในการนิยามคลาสนั้นจะตองสรางเมธอดที่มีชื่อเดียวกับคลาสที่เรียกวา คอนสตรัคเตอร ขึ้นมา
คลาสและการเขียนโปรแกรมวัตถุเบื้องตน
                         จัดทําโดย
            นายปตพงษ ปลีบุตร เลขที่10
                   ิ
         นางสาว รุงทิวา ผดุงพัฒนดิษฐ เลขที20
                                           ่
           นางสาวจณิสตา ลิ้มทอง เลขที่30
        นางสาวจันทรา แสงสุริยาอุทัย เลขที31  ่
          นางสาวนิศาชล ไทยพุทรา เลขที่33
            นางสาวอาริษา งามขํา เลขที่37
                     นักเรียนชั้น ม.6/1
โรงเรียนเฉลิมพระเกียรติสมเด็จพระศรีนครินทร กาญจนบุรี
        วิชาการเขียนโปรแกรมประยุกต (ง30213)
                            เสนอ
                 ครูทรงศักดิ์ โพธิ์เอี่ยม

คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น

  • 1.
    ความหมายของโอโอพี โอโอพี หรื OOP เปนคํายอของ Object-Oriented Programming หมายถึงการเขียนโปรแกรมเชิงวัตถุ หรือเขียนโปรแกรมแบบออบเจ็กต การเขียนโปแกรมในลักษณะนี้จะแตกตางจากกา เขียน ร โปรแกรมที่ประมวลผลเชิงคําสั่งที่มีการทํางานทีละตําสั่งดังที่เคยศึกษามา แตจะเปนการสรางขอมูลเปนวัตถุหรือออบเจ็กต แลว เขียนโปแกรมประมวลกับออบเจ็กตนั้นๆ ใหทํางานตามตองการ นอกจากนั้นยังเขียนโปรแกรมประมวลผลกับออบเจ็กตได ซึ่ง ออบเจ็กตจะมีลักษณะ 3 ประการดังตอไปนี้ state เปนคุณลักษณะของออบเจ็กตนั้นๆ ที่บอกวาออบเจ็กตนั้นเปนอะไรบาง หรือเรียกอีกอยางหนึ่งวาเปน คุณลักษณะประจํา โดยคุณสมบัติขึ้นกับมุมมองของแตละคน ในการเขียนโปรแกรมเชิงวัตถุ คุณลักษณะประจํานี้มักจะเปน ขอมูล หรือตัวแปรตางๆ ของออบเจ็กตนั้น Behavior หมายถึง พฤติกรรมของออบเจ็กต I dentity เปนคุณลักษณะที่ทําใหออบเจ็กตแตละออบเจ็กตตางกัน ในการเขียนโปรแกรมนั้นออบเจ็กตมีไดหลายตัว โดยออบเจ็กตแตละตัวจะเปนอิสระ ไมขึ้นตอกันแตละออบเจ็กต สามารถที่จะสื่อสารหรือโตตอบกันไดโดยวิธีสงเมสเสจ ถึงกัน
  • 2.
    คลาสและออบเจ็กต การมองทุกอยางของปญหาเปนวัตถุหรืออบเจ็กตนั้น ถาหากวัตถุใดมีลักษณะคลายกันก็จะรวมทั้งหมดให เปนคลาส ถาหากมีตัวแปรหรือสรางขอมูลขึ้นมา ขอมูลนั้นก็จะถูกใชในออบเจ็กตนั้นๆ การกระทํากับออบเจ็กตจะกระทําผานเมธอดของคลาส นั้นๆ สวนสําคัญสองสวนของออบเจ็กตคือ คุณลักษณะซึ่งเปนขอมูลประจําตัวของออบเจ็กตและพฤติกรรมหรือเมธอด ซึ่งบอกวา ออบเจ็กตกําลังทําสิ่งใดอยูถาหากมีการสรางออบเจ็กตขึ้นมาและโปรแกรมตองการจัดการกับขอมูลทีเ่ ปนคุณลักษณะของออบเจ็กตก็จะกระทํา ผานเมธอด สําหรับคลาสจะเปนที่รวบรวมของออบเจ็กตหลายๆ ออบเจ็กตที่มีลักษณะเดียวกัน แตอาจมีขอมูลประจําตัวหรือคุณลักษณะ ตางๆ ดังนั้นในการเขียนโปรแกรมเชิงวัตถุนั้นจะตองรูจักการนิยาม คลาส จากทีกลาวมาแลวจะพบวาคลาสเปนการจัดกลุมของ ่ ออบเจ็กตที่มีคุณลักษณะและพฤติกรรมอยางเหมือนกัน เปรียบเสมือนเปนพิมพเขียวของออบเจ็กต หรือเปนแมแบบสําหรับออบเจ็กต ในการเขียนโปรแกรมเชิงวัตถุนั้นจะไมมีการใชงานคลาสตรงๆ แตจะใชคลาสเปนพิมพเขียวเพื่อสรางออบเจ็กตตางๆขึ้นมา ออบเจ็กตทถูกสรางจากคลาสจะเรียนกวา อินสแตนซ ของคลาสนั้นโดยที่คลาสใดคลาสหนึ่งสามารถสรางออบเจ็กตออกมาไดหลายตัวแตละ ี่ ตัวจะมีชื่อแตกตางกันไป สําหรับการเขียนโปรแกรมเชิงวัตถุดวยภาษตางๆนั้น จะมีคลาสมาตรฐานใหผูเขียนโปรแกรมใชงาน และผูเขียนโปรแกรมก็ตอง เขาใจวิธีการสรางคลาสขึ้นมาเองดวย ดังนั้นในการเขียนโปรแกรมเชิงวัตถุจะตองพยายามจําแนกวาวัตถุที่เราสนใจนั้นตองมีตัวแปรใดที สามารถแยกแยะวัตถุแตละตัวได และวัตถุดังกลาวมีพฤติกรรมอยางไร จากนั้นนํามารวมเปนคลาส และสรางคลาสนั้นขึ้นมา
  • 3.
    การนิยามคลาส ในภาษาจาวาสามารถนิยามคลาสหรือประกาศคลาสขึ้นมาโดยมีรูปแบบดังนี้ [AccessSpecifier] Class Name { Members } AccessSpecifier เปนความสามารถในการเขาถึงคลาสนั้นๆ class เปนคียเวิรดในภาษาจาวาเพทอใชในการประกาศคลาส Name เปนชื่อคลาสมี่ประกาศขึ้น Members เปนคุณลักษณะหรือเมธอดตางๆ ของคลาสที่นิยามขึ้น การสรางออบเจ็กต หลังจากนิยามคลาสขึ้นมาแลว ถาหากโปรแกรมตองการใชงานจะตองสรางออบเจ็กตขึ้นมา เพื่อบอกวาออบเจ็กตเปนของคลาสใด โดยจะตองประกาศออบเจ็กตขึ้นมากอนซึ่งมี รูปแบบดังนี้ ClassName ObjectName; การประกาศออบเจ็กตนี้จะทําใหคอมไพเลอรรับทราบวามีตัวแปร ObjectName แตจะยังไมมีหนวยความจําสําหรับขอมูลของออบเจ็กตที่ประกาศขึ้น ซึ่ง จะตองสรางออบเจ็กตขึ้นมากอนโดยใชคําวา new ซึ่งมีรูปแบบดังนี้ objecyName = new ClassName([arguments]) เมือมีการสรางออบเจ็กตขึ้นมาแลว สมาชิกของออบเจ็กตคือสมาชิกของคลาสนั้น ซึ่งไดแกคุณลักษณะหรือตัวแปรและเมธอดตางๆ ออบเจ็กตจะ สามารถเขาถึงขอมูลที่เปนคุณลักษณะหรือเรียกใชเมธอดไดไมขึ้นกับaccessSpecifier ที่ถูกประกาศไวตอนนิยามคลาส โดยการเรียกใชสมาชิกจะทําโดยใชเครื่องหมายจุด แลว ตามดวยสมาชิกที่ตองการเรียกใช
  • 4.
    สแตติก(static) ในจาวามีคลาสตางๆใหใชงานมากมาย การสรางคลาสขึ้นมาใหมนี้ทําใหเราสามารถสรางเมธอดใหมๆ ขึ้นมาใชงานแลวรวมกันเปนคลาสได และที่ผานมาในบทนี้จะเห็นวาถาหากมีการประกาศออบเจ็กตตองการใชงานสรางออบเจ็กตดวยคําสั่ง new เชน import java.util.Scanner; public class Cal_Max { public static void main(String args[]) { int num1,num2; Scanner stdin = new Scanner(System.in); System.out.print("Input Number 1 : "); num1 = stdin.nextInt(); System.out.print("Input Number 2 : "); num2 = stdin.nextInt(); int larger = TestMax.max(num1,num2); System.out.println("Max Data is "+larger); } } class TestMax { static int max(int num1, int num2) { if(num1 > num2) return num1; else return num2; } } จากโปรแกรมนี้จะเปนวาเมธอดในคลาส Scanner ที่ใชรับขอมูลจะไมเปนแบบสแตติก ซึ่งจะตองสรางออบเจ็กตขึ้นมา แต เมธอดชื่อmax ในคลาส TestMax ที่สรางขึ้นปนแบบสแตติก จึงเรียกชื่อคลาสและตามดวยเมธอดมาใชงานไดทันทีโดยไมตองสราง ออบเจ็กต
  • 5.
    Constructors เปนฟงกชันในคลาสที่จะถูกเรียกอัตโนมัติเมื่อเราสรางอ็อบเจ็คใหกับคลาสนั้น ๆดวยคําสั่ง new ซึ่งมันจะเปนฟงกชัน Constructors ไดก็ตอเมื่อชื่อของมันเหมือนชื่อคลาส ถาภายในคลาสไมมี constructor ดังนั้นมันจะทํา การเรียก constructure ของ base class (ถามันมี) เชน <?php class Auto_Cart extends Cart { function Auto_Cart() { $this->add_item("10", 1); } } ?> Constructors function นั้นสามารถรับคาพารามิเตอรไดเชนกัน ดังนี้ <?php class Constructor_Cart extends Cart { function Constructor_Cart( $item = "10", $num = 1) { $this->add_item($item, $num); } } // ในกรณีที่ไมสงคาพารามิเตอรใหกับ Constructor function $default_cart = new Constructor_Cart; // ในกรณีนี้ฟงกชัน Constructor ของ Constructor_Cart นั้นไดกําหนดคา default ใหกับพารามิเตอรอยูแลว // ดังนั้น เราก็ไมจําเปนตองสงคาพารามิเตอรก็ได ไมเกิด error // กรณีที่สงคา parameter ไปดวย $different_cart = new Constructor_Cart("20", 17); ?>
  • 6.
    การสงออบเจ็กตไปยังเมธอด ในการเขียนโปรแกรมที่มีการสรางคลาสขึ้นมาหลายๆคลาสนั้น ออบเจ็กตของคลาสหนึ่งสามารถใชเปนอารกิวเมนตเพื่อสงผานไปยังเมธอดของคลาสอีกคลาสหนึ่งได เชนโปรแกรมStudent.Java เปนโปรแกรมคลาสสําหรับเก็บขอมูลนักเรียน ไดแก ชื่อและอีเมลโดยมีเมธอดสําหรับ กําหนดและเรียกดูชื่อและอีเมลสําหรับใชงาน public class Student3 { private String name; private String email; public Student3() { name = "Unassigned"; email = "Unassigned"; } public String getEmail(){ return email; } public String getName(){ return name; } public void setEmail(String address){ email = address; } public void setName(String studentName){ name = studentName; } }
  • 7.
    ตัวอยางการประยุกตการเขียนโปรแกรมเชิงวัตถุ จะเปนแบบการออกแบบคลาสแลวนํามาเขียนโปรแกรมประยุกตสําหรับใชงานจริง โดยอธิบายขั้นตอนสําคัญในการทํางานแตละขั้นตอน โดยมีโปรแกรมตัวอยางการเขียนโปรแกรมสําหรับเขารหัสขอมูลโดยสงขอมูลผานเขาไปในเครือขายคอมพิวเตอรเพื่อความปลอดภัยไดนํา เทคโนโลยีการเขารหัสมาใช ทําโดยการเลื่อนขอมูล แตถาเปนตัวอักขระตัวสุดทายของภาษาอังกฤษการเลื่อนขอมูลจะกลับมาเริ่มตนที่ตวแรกใหม ั - ถาหากเปน 2-shift ขอมูลจะแทนไดดังนี้ A แทนดวย C B แทนดวย D ……………….. Y แทนดวย A Z แทนดวย B ถาขอมูลตนฉบับเปน “DIZZY” แลวเขารหัสแบบ 2- shift ขอมูลที่เขารหัสแลวจะเปน “FKBBA” อธิบายการทํางานของโปรแกรม 1.ถาหากพิมพคําวา Teerawut ลงไป จะทําใหตัวแปร message ชี้ไปยังออบเจ็กตสตริง “Teerawut” 2.ตอมาถาหากกดคียตัวเลข 5 ลงไป จะทําใหตัวแปร shift มีคาเปน 5 3.เมื่อโปรแกรมเรียกใชเมธอด encrypt จะทําให msg ซึ่งเปนพารามิเตอรของเมธอดชี้ไปยังออบเจ็กตเดียวกับ message และ พารามิเตอร shift มีคาเปน 5 เชนกัน 4.เมื่อเมธอด encrypt ทํางาน ทําใหตัวแปร encryptedMessage ชี้ไปยังหนอยความจําออบเจ็กตสตริงที่สรางขึ้นมาใหม 5.จากนั้นจะทําใหตัวแปร msg ชี้ไปยังสตริงชุดใหมที่ผานการเขารหัสแลว 6.หลังจากนั้นจะให encryptedMessage มีคาสตริงที่เขารหัสแลว
  • 8.
    ตัวอยางโปรแกรม จะแสดงการสรางคลาสของการนําตัวอักขระ[]มาสรางเปนรูปสามเหลี่ยม โดยการสรางคลาสสามารถทําได ดังตอไปนี้ 1.สรางโปรเจ็กตใหม 2.สรางคลาสใหมโดยเลือกเมนู New>Class 3.กําหนดชื่อคลาส แลวกด Next 4.โปรแกรมจะแสดงคลาสใหมขึ้นมา 5.จากนั้นใหเติมโคด แลวรันโปรแกรม สรุป คลาสเปรียบเสมือนพิมพเขียวสําหรับสรางออบเจ็กตตางๆออกมาที่มีลักษณะคลายกันมาอยูรวมกัน ในการสรางค ลาส นั้น ภายในประกอบดวยสวนที่เปนคุณลักษณะหรือตัวแปรตางๆและสวนที่เปนเมธอดโดยที่ตัวแปรและเมธอดนี้ผที่นิยามคลาส ู สามารถกําหนดไดวาจะใหผูใชภายนอกสามารถเขาถึงไดในระดับใด เมื่อมีการออบเจ็กตของคลาสขึ้นมาแลวตองการใหทําเมธ อดใดทันที ในการนิยามคลาสนั้นจะตองสรางเมธอดที่มีชื่อเดียวกับคลาสที่เรียกวา คอนสตรัคเตอร ขึ้นมา
  • 9.
    คลาสและการเขียนโปรแกรมวัตถุเบื้องตน จัดทําโดย นายปตพงษ ปลีบุตร เลขที่10 ิ นางสาว รุงทิวา ผดุงพัฒนดิษฐ เลขที20 ่ นางสาวจณิสตา ลิ้มทอง เลขที่30 นางสาวจันทรา แสงสุริยาอุทัย เลขที31 ่ นางสาวนิศาชล ไทยพุทรา เลขที่33 นางสาวอาริษา งามขํา เลขที่37 นักเรียนชั้น ม.6/1 โรงเรียนเฉลิมพระเกียรติสมเด็จพระศรีนครินทร กาญจนบุรี วิชาการเขียนโปรแกรมประยุกต (ง30213) เสนอ ครูทรงศักดิ์ โพธิ์เอี่ยม