หล กการเช งว ตถ (Object Oriented Concept) - PDF

Description
LOGO หล กการเช งว ตถ (Object Oriented Concept) Nerissa Onkhum 19/06/55 1 ว ตถ ประสงค แนะนาว ตถ และคลาส อธ บายค ณล กษณะและเมธอด อธ บายการเข ยนโปรแกรมเช งว ตถ โดยใช ภาษาจาวา แนะนาการเข ยนโปรแกรมโดยใช ค ณล

Please download to get full document.

View again

of 56
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information
Category:

Short Stories

Publish on:

Views: 16 | Pages: 56

Extension: PDF | Download: 0

Share
Transcript
LOGO หล กการเช งว ตถ (Object Oriented Concept) Nerissa Onkhum 19/06/55 1 ว ตถ ประสงค แนะนาว ตถ และคลาส อธ บายค ณล กษณะและเมธอด อธ บายการเข ยนโปรแกรมเช งว ตถ โดยใช ภาษาจาวา แนะนาการเข ยนโปรแกรมโดยใช ค ณล กษณะเด น ของโปรแกรมเช งว ตถ แนะนา Unified Modelling Language อธ บายข นตอนการพ ฒนาโปรแกรม 19/06/55 2 หล กการเช งว ตถ ภาษาจาวาเป นภาษาคอมพ วเตอร ท ใช หล กการเช งว ตถ OOP (Object Oriented Programming) OOP เป นขบวนการการพ ฒนาโปรแกรมโดยการจาลองป ญหาว า ประกอบไปด วยว ตถ ใดบ าง น ยามท สาค ญค อ ว ตถ (object) คลาส (class) 19/06/55 3 ว ตถ ว ตถ ค อส งต าง ๆ ท ม อย ในช ว ตประจาว น ว ตถ ท เป นร ปธรรมเช น น กศ กษา ใบลงทะเบ ยน ปากกา และรถ ว ตถ ท เป นนามธรรมเช น คะแนน รายช อว ชา บ ญช เง นฝาก และ ตารางเท ยวบ น ว ตถ ประกอบด วย ค ณล กษณะ (attribute) หร อข อม ล (data) พฤต กรรม (behavior) หร อเมธอด (method) 19/06/55 4 ว ตถ ค ณล กษณะ ข อม ลของว ตถ แต ละว ตถ อาจม ค าของค ณล กษณะท ต างก น เมธอด ส งท ว ตถ สามารถกระทาได คาส งในการทางานของโปรแกรมเช งว ตถ โปรแกรมจะจ ดการก บข อม ลโดยเร ยกใช เมธอด 19/06/55 5 ต วอย างของว ถต แอตทร บ วต เมธอด ว ตถ พน กงานบร ษ ท รห สพน กงาน, เง นเด อน, เวลาเข างาน ร ดบ ตรพน กงาน, ร บเง นเด อน ว ตถ โทรท ศน แอตทร บ วต ย ห อ, ขนาด, ระบบเส ยง, ฟ งก ช นการท างาน เมธอด เป ด, ป ด, เพ ม, ลดเส ยง, ปร บความคมช ดของภาพ 19/06/55 6 ต วอย างของว ถต ว ตถ รถจ กรยานยนต แอตทร บ วต ย ห อ, ร น, ส, ระบบเก ยร, ปร มาตรกระบอกส บ เมธอด ต ดเคร อง, ออกต ว, เล ยว, เปล ยนเก ยร, หย ดรถ ว ตถ โทรศ พท ม อถ อ แอตทร บ วต ย ห อ, ร น, จอภาพ, ร ปแบบของเส ยงเร ยกเข า เมธอด เป ด, ป ด, เล อกร ปแบบของเส ยงเร ยกเข า, ต งเวลาปล ก 19/06/55 7 ต วอย างของโปรแกรมเช งว ตถ 19/06/55 โปรแกรมระบบจ ดการบ ญช เง นฝากของธนาคาร ต วอย างของว ตถ Account Customer Transaction ATM Account อาจม ค ณล กษณะเช น เลขท บ ญช ช อเจ าของบ ญช ว นท เป ดบ ญช และยอดเง นคงเหล อ อาจม เมธอดเช น ฝาก ถอน และโอนเง น 8 คลาส เปร ยบเสม อนพ มพ เข ยวของว ตถ ว ตถ จะถ กสร างมาจากคลาส บางคร งเร ยกว าเป น instance ของคลาส คลาสหน งคลาสสามารถสร างว ตถ ได หลายว ตถ อาท เช น คลาสช อ Student อาจสร างว ตถ ช อ s1,s2 หร อ s3 ซ งเป น ว ตถ ชน ด Student 19/06/55 9 ร ปแสดงการสร างว ตถ จากคลาส Student 19/06/55 10 ค ณล กษณะของว ตถ ข อม ลท เก บอย ในว ตถ แบ งเป นต วแปร (variable) และค าคงท (constant) ต วแปรค อค ณล กษณะท สามารถเปล ยนค าได ค าคงท ค อค ณล กษณะท ไม สามารถเปล ยนค าได 19/06/55 11 ต วอย างค ณล กษณะของว ตถ 19/06/55 12 ค ณล กษณะของคลาส เป นค ณล กษณะท ใช ร วมก นของท กว ตถ ท กว ตถ จะใช ค ณล กษณะร วมก นทาให ประหย ดพ นท ในหน วยความจา ต วอย างเช น ค ณล กษณะท กาหนดให เป นค าคงท ช อ MIN_GPA 19/06/55 13 ต วอย างค ณล กษณะของคลาส 19/06/55 14 เมธอด ว ธ การหร อการกระทาท น ยามอย ในคลาสหร อว ตถ เพ อใช ในการจ ดการก บค ณล กษณะของว ตถ เปร ยบเท ยบได ก บ function, procedure หร อ subroutine ของโปรแกรมเช งกระบวนการ ต วอย างเช น เมธอด deposit() เพ อเป นเมธอดสาหร บ ฝากเง น 19/06/55 15 การส อสารระหว างว ตถ การส อสารระหว างก นของว ตถ ทาได โดยการผ านข าวสาร (message) objb ค อ ช อว ตถ method4 ค อ ช อเมธอด (1,2) ค อ argument 19/06/55 16 การส อสารระหว างว ตถ ข าวสารจะส งผ านจากว ตถ obja ท เป นผ ส ง (sender) เพ อเร ยกการทางานของเมธอดท ช อ method4 จากว ตถ objb ท เป นผ ร บ (receiver) objb อาจส งค า (return value) บางค ากล บมาย ง obja 19/06/55 17 การเข ยนโปรแกรมเช งว ตถ โดยใช ภาษาจาวา Modifier ในภาษาจาวา การประกาศคลาส การประกาศค ณล กษณะ การประกาศเมธอด การประกาศและสร างว ตถ การเร ยกใช สมาช กของว ตถ 19/06/55 18 Modifier ในภาษาจาวา Modifier ในภาษาจาวาแบ งออกเป น 2 ประเภท ค อ Access modifier ได แก private, public, protected และ package (อาจเร ยก package ว า none, default หร อ friendly) Non-access modifier ได แก final, abstract, static, native, transient, volatile, synchronized, strictfp 19/06/55 19 Modifier ในภาษาจาวา 19/06/55 การนา Access Modifier ไปใช งาน access modifier ใช กาหนดไว หน าคลาส แอตทร บ วต เมธอด จ ดประสงค เพ อกาหนดระด บการเข าใช งาน access modifier : public, protected, package, private modifier public และ package สามารถใช กาหนดให ก บคลาส แอตทร บ วต หร อเมธอด Modifier protected และ private ใช กาหนดให ก บคลาสไม ได แต สามารถกาหนดให ก บแอตทร บ วต หร อเมธอดได 20 Modifier ในภาษาจาวา สร ปการนา access modifier แต ละแบบไปใช งาน Access modifier ใช ก บคลาส ใช ก บแอตทร บ วต ใช ก บเมธอด public protected package private 19/06/55 21 Modifier ในภาษาจาวา จาวาแบ งระด บของ access modifier ออกเป น 4 ระด บ ค อ public (สาธารณะ) หากกาหนด modifier public ให ก บคลาส แอตทร บ วต หร อเมธอดใดแล ว คลาสอ น ๆ จะสามารถเข าใช งานคลาส แอตทร บ วต หร อเมธอดน นได อ สระ ไม ม ข ดจาก ด protected (ถ กปกป อง) ไม ได เป ดให คลาสใด ๆ สามารถเข าใช งานได อย างอ สระ แต ไม ถ งก บป ดไม ให ใครเข าใช งานเลย 19/06/55 22 Modifier ในภาษาจาวา protected ม ล กษณะการเข าใช งาน ด งน กาหนด modifier เป น protected ให ก บแอตทร บ วต และเมธอดของคลาส คลาสอ น ๆ ในเพ กเกจเด ยวก นจะสามารถเร ยกใช งานแอตทร บ วต และ เมธอดได กาหนด modifier เป น protected ให ก บแอตทร บ วต และเมธอดของคลาส คลาสอ น ๆ ท อย ต างเพ กเกจ จะไม สามารถเร ยกใช งานแอตทร บ วต และ เมธอดได กาหนด modifier เป น protected ให ก บแอตทร บ วต และเมธอดของคลาส คลาสอ น ๆ ท ม ความส มพ นธ เป นคลาสแม คลาสล กก บคลาสน ถ งแม จะ อย คนละแพ กเกจก น ก สามารถเร ยกใช งานแอตทร บ วต และเมธอดได 19/06/55 23 Modifier ในภาษาจาวา package กรณ ท ไม ได กาหนด modifier ใด ๆ ไว หน าคลาส แอตทร บ วต หร อเมธอด จะทา ให คลาส แอตทร บ วต หร อเมธอดม ระด บเข าถ งเป น package กาหนด modifier เป น package หน าคลาส แอตทร บ วต หร อเมธอด จะทาให คลาสท อย ในแพ กเกจอ นจะไม สามารถเข าใช งานคลาส แอตทร บ วต หร อเมธอดได private (ส วนบ คคล) แอตทร บ วต และเมธอดของคลาสจะถ กห มห อ (Encapsulate) เอาไว ป ดก นไม ให คลาสอ นเข ามาใช งานแอตทร บ วต หร อเมธอดท ก าหนด modifier เป น private ได จะม เฉพาะคลาสของม นเองเท าน นท ม ส ทธ ใช งานได หล กการน เร ยกว า information hiding 19/06/55 24 Modifier ในภาษาจาวา Access modifier สร ปการทางาน access modifier แต ละแบบ ใช ได ท งหมด แพ กเกจ เด ยวก น ต าง แพ กเกจก น ต างแพ กเกจก น แต เป นคลาสแม คลาสล ก คลาส เด ยวก น public protected package private 19/06/55 25 การประกาศคลาส โปรแกรมภาษาจาวาแต ละโปรแกรมจะประกอบไปด วยคลาสอย างน อย หน งคลาส โดยม ร ปแบบการประกาศ ด งน [modifier] class Classname { } [class member] modifier ค อค ย เว ร ด (keyword) ของภาษาจาวาท ใช ในการอธ บายระด บการเข าถ ง (access modifier) class ค อค ย เว ร ดของภาษาจาวาเพ อระบ ว าเป นการประกาศคลาส Classname ค อช อคลาส class member ค อเมธอดหร อค ณล กษณะ 26 การประกาศคลาส ต วอย าง public class Student { } 19/06/55 27 การประกาศค ณล กษณะ ค ณล กษณะของว ตถ ค อต วแปรหร อค าคงท ซ งประกาศภายในว ตถ โดยม ร ปแบบการประกาศ ด งน [modifier] datatype attributename; modifier ค อค ย เว ร ดของภาษาจาวาท อธ บายค ณสมบ ต ต างๆของต วแปร หร อค าคงท datatype ค อชน ดข อม ลซ งอาจเป นชน ดข อม ลพ นฐานหร อชน ดคลาส attributename ค อช อของค ณล กษณะ 19/06/55 28 การประกาศค ณล กษณะ ต วอย าง public class Student { public String id; public String name; public double gpa; } 19/06/55 29 การประกาศเมธอด ภาษาจาวาก าหนดร ปแบบของการประกาศเมธอดท อย ในคลาสไว ด งน [modifier] return_type methodname([arguments]) { [method_body] } modifier ค อค ย เว ร ดของภาษาจาวาท ใช อธ บายระด บการเข าถ ง return_type ค อชน ดข อม ลของค าท จะม การส งกล บ methodname ค อช อของเมธอด arguments ค อต วแปรท ใช ในการร บข อม ลท ว ตถ ส งมาให method_body ค อคาส งต างๆของภาษาจาวาท อย ในเมธอด 19/06/55 30 ต วอย างโปรแกรม 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); } } 19/06/55 31 เมธอดท ช อ main() โปรแกรมจาวาประย กต (Java Application) จะเร มต นการทางาน ในคลาสท ม เมธอดท ช อ main โดยม ร ปแบบของเมธอด ด งน } public static void main(string args[]) { [method_body] 19/06/55 32 การประกาศว ตถ ว ตถ ท กว ตถ ในโปรแกรมภาษาจาวาจะต องม คาส งประกาศ เพ อระบ ว า ว ตถ น นเป นว ตถ ของคลาสใด โดยม ร ปแบบการประกาศ ด งน [modifier] ClassName objectname; modifier ค อค ย เว ร ดท อธ บายค ณสมบ ต ต าง ๆ ของว ตถ ClassName ค อช อของคลาสสาหร บว ตถ น น objectname ค อช อของว ตถ ต วอย าง Student s1; 19/06/55 33 การสร างว ตถ คาส งท ใช ในการสร างว ตถ จะม ร ปแบบ ด งน objectname = new ClassName([arguments]); objectname ค อ ช อของว ตถ new ค อ ค ย เว ร ดของภาษาจาวาเพ อใช ในการสร างว ตถ ClassName ค อ ช อของคลาส arguments ค อ ค าท ต องการส งผ านในการเร ยก Constructor ต วอย าง s1 = new Student(); 19/06/55 34 การประกาศและสร างว ตถ คาส งในการประกาศและสร างว ตถ สามารถท จะรวมเป นคาส งเด ยวก น โดยม ร ปแบบคาส ง ด งน [modifier] ClassName objectname = new ClassName([arguments]); ต วอย าง Student s1 = new Student(); 19/06/55 35 การเร ยกใช สมาช กของว ตถ การเร ยกใช ค ณล กษณะของว ตถ ม ร ปแบบ ด งน objectname.attributename; การเร ยกใช เมธอดของว ตถ ม ร ปแบบ ด งน objectname.methodname([arguments]); objectname ค อช อของว ตถ ท สร างข น methodname ค อช อของเมธอดของว ตถ น น arguments ค อค าท ต องการส งผ านไปให ก บเมธอดของว ตถ น น 19/06/55 36 การเร ยกใช สมาช กของว ตถ ต วอย าง s1.setname( thana ); 19/06/55 37 ต วอย างโปรแกรม 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(); } } 19/06/55 38 ค ณล กษณะเด นของโปรแกรมว ตถ การห อห ม (Encapsulation) การส บทอด (Inheritance) การม ได หลายร ปแบบ (Polymorphism) 19/06/55 39 การห อห ม หมายถ งการจะเร ยกใช ค ณล กษณะของว ตถ จะท าได โดยการเร ยก ผ านเมธอดเท าน น หล กการของการห อห มค อการกาหนดให ค ณล กษณะของว ตถ ม ค ณสมบ ต เป น private และกาหนดให เมธอดม ค ณสมบ ต เป น public 19/06/55 40 ข อด ของการห อห ม การซ อนเร นข อม ล (Information Hiding) ทาให ว ตถ สามารถต ดต อก บว ตถ ภายนอกผ านเมธอดท เป น ส วนของ interface เท าน น ความเป นโมด ล (Modularity) การพ ฒนาโปรแกรมเช งว ตถ จะสามารถกาหนดให ว ตถ แต ละ ว ตถ ม ความเป นอ สระต อก น 19/06/55 41 ต วอย างโปรแกรม 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); } } 19/06/55 42 การส บทอด หมายถ งการน ยาม
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks