25
คคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคค

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

Embed Size (px)

Citation preview

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

คลาสและการเขยนโปรแกรมเชงวตถเบองตน

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

ความหมายของโอโอพ

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

ความหมายของโอโอพOOP เปนคายอของ Object-Oriented Programming หมายถงการเขยนโปรแกรมเชงวตถหรอเขยนโปรแกรมแบบออบเจกต การเขยนโปแกรมในลกษณะนจะแตกตางจากการ เขยนโปรแกรมทประมวลผลเชงคาสงทมการทางานทละคาสง

ดงทเคยศกษามา แตจะเปนการสรางขอมลเปนวตถหรอ ออบเจกต แลวเขยนโปแกรมประมวลกบออบเจกตนนๆ

ใหทางานตามตองการ นอกจากนนยงเขยนโปรแกรมประมวลผลกบออบเจกตได

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

ความหมายของโอโอพ ซงออบเจกตจะมลกษณะ 3 ประการดงตอไปน

-state เปนคณลกษณะของออบเจกตนนๆ ทบอกวาออบเจกตนน

เปนอะไรบาง หรอเรยกอกอยางหนงวาเปนคณลกษณะประ จา โดยคณสมบตขนกบมมมองของแตละคน ในการเขยน

โปรแกรมเชงวตถ คณลกษณะประจานมกจะเปนขอมล หรอตวแปรตางๆ ของออบเจกตนน

-Behavior หมายถง พฤตกรรมของออบเจกต-Identity เปนคณลกษณะททาใหออบเจกตแตละออบเจกตตางกน

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

ความหมายของโอโอพ ในการเขยนโปรแกรมนนออบเจกตมไดหลายตว

โดยออบเจกตแตละตวจะเปนอสระ ไมขนตอกนแตละออบเจกตสามารถทจะสอสารหรอโตตอบกนได

โดยวธสงเมสเสจ ถงกน

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

คลาสและออบเจกต

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

คลาสและออบเจกต การมองทกอยางของปญหาเปนวตถหรอออบเจกตนน ถาหากวตถใด

มลกษณะ คลายกนกจะรวมทงหมดใหเปนคลาส ถาหากมตวแปรหรอสรางขอมล

ขนมา ขอมลนนกจะถกใชในออบเจกตนนๆ การกระทากบออบเจกตจะกระทา

ผานเมธอดของคลาสนนๆ

สวนสาคญสองสวนของออบเจกตคอ คณลกษณะซงเปนขอมลประจา ตวของออบเจกตและพฤตกรรมหรอเมธอด ซงบอกวาออบเจกตกาลง

ทาสงใดอยถาหากมการสรางออบเจกตขนมาและโปรแกรมตองการจดการกบขอมลทเปนคณลกษณะของออบเจกตกจะกระทาผานเมธอด

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

คลาสและออบเจกต สาหรบคลาสจะเปนทรวบรวมของออบเจกตหลายๆ ออบเจกตท

มลกษณะเดยวกน แตอาจมขอมลประจาตวหรอคณลกษณะตางๆ

ดงนนในการเขยนโปรแกรมเชงวตถนนจะตองรจกการนยาม คลาส

จากทกลาวมาแลวจะพบวาคลาสเปนการจดกลมของ ออบเจกต ทมคณลกษณะและพฤตกรรมอยางเหมอนกน เปรยบเสมอน

เปนพมพเขยวของออบเจกต หรอเปนแมแบบสาหรบออบเจกต

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

คลาสและออบเจกต ในการเขยนโปรแกรมเชงวตถนนจะไมมการใชงานคลาสตรงๆ แตจะใช

คลาสเปนพมพเขยวเพอสรางออบเจกตตางๆขนมาออบเจกตทถกสรางจาก

คลาสจะเรยกวา อนสแตนซ ของคลาสนนโดยทคลาสใดคลาสหนงสามารถสรางออบเจกตออกมาไดหลายตวแตละตวจะมชอแตกตางกนไป

สาหรบการเขยนโปรแกรมเชงวตถดวยภาษตางๆนน จะมคลาส มาตรฐานใหผเขยนโปรแกรมใชงาน และผเขยนโปรแกรมกตองเขาใจ

วธการสรางคลาสขนมาเองดวย ดงนนในการเขยนโปรแกรมเชงวตถจะตองพยายามจาแนกวาวตถทเราสนใจนนตองมตวแปรใดทสามารถ

แยกแยะวตถแตละตวได และวตถดงกลาวมพฤตกรรมอยางไร จา กนนนามารวมเปนคลาส และสรางคลาสนนขนมา

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

การนยามคลาสในภาษาจาวาสามารถนยามคลาสหรอประกาศคลาสขนมาโดยมรปแบบดงน[AccessSpecifier] Class Name{Members}AccessSpecifier… เปนความสามารถในการเขาถงคลาสนนๆclass …เปนคยเวรดในภาษาจาวาทใชในการประกาศคลาสName… เปนชอคลาสมประกาศขนMembers…เป นคณลกษณะหรอเมธอดตางๆ ของคลาสทนยามขน

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

การนยามคลาส การสรางออบเจกต หลงจากนยามคลาสขนมาแลว ถา

หากโปรแกรมตองการใชงานจะตองสรางออบเจกตขน มา เพอบอกวาออบเจกตเปนของคลาสใด โดยจะตอง

ประกาศออบเจกตขนมากอนซงมรปแบบดงนClassName ObjectName;การประกาศออบเจกตนจะทาใหคอมไพเลอรรบทราบวาม

ตวแปร ObjectName แตจะยงไมมหนวยความจาสาห รบขอมลของออบเจกตทประกาศขน ซงจะตองสราง

ออบเจกตขนมากอนโดยใชคาวา new ซงมรปแบบดงนobjecyName = new ClassName([arguments])

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

การนยามคลาส เมอมการสรางออบเจกตขนมาแลว สมาชกของอ

อบเจกตคอสมาชกของคลาสนน ซงไดแก คณลกษณะหรอตวแปรและเมธอดตางๆ

ออบเจกตจะสามารถเขาถงขอมลทเปนคณลกษณะหรอเรยกใชเมธอดไดไมขนกบaccessSpecifier ทถกประกาศไวตอน

นยามคลาส โดยการเรยกใชสมาชกจะทาโดยใช เครองหมายจด แลวตามดวยสมาชกทตองการ

เรยกใช

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

Static

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

Static ในจาวามคลาสตางๆใหใชงานมากมาย การสราง

คลาสขนมาใหมนทาใหเราสามารถสรางเมธอด ใหมๆ ขนมาใชงานแลวรวมกนเปนคลาสได และท

ผานมาในบทนจะเหนวาถาหากมการประกาศออบเจกตตองการใชงานสรางออบเจกตดวยคาสงnewเชน

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

Static จากโปรแกรมนจะเปนวาเมธอดในคลาส

Scanner ทใชรบขอมลจะไมเปนแบบสแตตก ซง จะตองสรางออบเจกตขนมา แตเมธอดชอmax

ในคลาส TestMax ทสรางขนเปนแบบสแตตกจงเรยกชอคลาสและตามดวยเมธอดมาใชงานไดทนทโดยไมตองสรางออบเจกต

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

Constructors

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

Constructorsเปนฟงกชนในคลาสทจะถกเรยกอตโนมตเมอเรา

สรางออบเจคใหกบคลาสนน ๆ ดวยคาสงnew ซงมนจะเปนฟงกชน Constructors

ไดกตอเมอชอของมนเหมอนชอคลาส ถาภายใน คลาสไมม constructor ดงนนมนจะทาการ

เรยก constructure ของ base class (ถามนม) เชน

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

Constructors/ ในกรณทไมสงคาพารามเตอรใหกบConstructor function $default_cart = new Constructor_Cart;// ในกรณนฟงกชน Constructor ของConstructor_Cart นนไดกาหนดคา default

ใหกบพารามเตอรอยแลว // ดงนนเรากไมจาเปน ตองสงคาพารามเตอรกได ไมเกด error

// กรณทสงคา parameter ไปดวย$different_cart = new Constructor_Cart(“20”, 17); ?>

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

การสงออบเจกตไปยงเมธอด

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

การสงออบเจกตไปยงเมธอดในการเขยนโปรแกรมทมการสรางคลาสขนมาหลายๆคลาสนนออบเจกตของคลาสหนงสามารถใชเปนอารกวเมนตเพอสงผานไปยงเมธอดของคลาสอกคลาสหนงไดเชนโปรแกรมStudent.Java เปนโปรแกรมคลาส

สาหรบเกบขอมลนกเรยน ไดแก ชอและอเมลโดยมเมธอดสาหรบกาหนดและเรยกดชอและอเมลสาหรบใชงาน

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

ตวอยางการประยกตการเขยนโปรแกรมเชงวตถ

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

ตวอยางการประยกตการเขยนโปรแกรมเชงวตถ

จะเปนแบบการออกแบบคลาสแลวนามาเขยน โปรแกรมประยกตสาหรบใชงานจรง โดยอธบาย

ขนตอนสาคญในการทางานแตละขนตอนโดยมโปรแกรมตวอยางการเขยนโปรแกรมสาหรบเขารหสขอมลโดยสงขอมลผานเขาไปในเครอขายคอมพวเตอรเพอ

ความปลอดภยไดนาเทคโนโลยการเขารหสมาใช ทาโดยการเลอนขอมล แตถาเปนตวอกขระตว

สดทายของภาษาองกฤษการเลอนขอมลจะกลบมาเรมตนทตวแรกใหม

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

ตวอยางการประยกตการเขยนโปรแกรมเชงวตถ

– ถาหากเปน 2-shift ขอมลจะแทนไดดงนA แทนดวย CB แทนดวย D………………..Y แทนดวย AZ แทนดวย B

“ถาขอมลตนฉบบเปน DIZZY” แลวเขารหสแบบ 2- shift ขอมลท

“เขารหสแลวจะเปน FKBBA”

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

ตวอยางการประยกตการเขยนโปรแกรมเชงวตถ

อธบายการทางานของโปรแกรม- ถาหากพมพคาวา Teerawut ลงไป จะทาใหตวแปร message ชไป

“ยงออบเจกตสตรง Teerawut”- ตอมาถาหากกดคยตวเลข 5 ลงไป จะทาใหตวแปร shift มคาเปน 5- เมอโปรแกรมเรยกใชเมธอด encrypt จะทาให msg ซงเปนพารามเตอรของ

เมธอดชไปยงออบเจกตเดยวกบ message และพารามเตอร shift มคาเปน 5 เชนกน

- เมอเมธอด encrypt ทางาน ทาใหตวแปร encryptedMessage ชไปยงหนวยความจาออบเจกตสตรงทสรางขนมาใหม- จากนนะทาใหตวแปร msg ชไปยงสตรงชดใหมทผานการเขารหสแลว- หลงจากนนจะให encryptedMessage มคาสตรงทเขารหสแลว

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

ผจดทา

   นางสาวณฐวด ทวสข ชนม.6/1 เลขท19

   นางสาวกตตธรา หลอศลาทอง ชนม.6/1 เลขท22

   นางสาวศศวมล แตงโต ชนม.6/1 เลขท23

   นางสาวสทธพร ป นหลวง ชนม.6/1 เลขท24

 นางสาวองคณา หนวฒนา ชนม.6/1 เลขท26

   นางสาวศรณฐ สรรสม ชนม.6/1 เลขท36

   นางสาวอาชานย วเศษสงห ชนม.6/1 เลขท38