Upload
gali
View
32
Download
1
Embed Size (px)
DESCRIPTION
OOP ( O bject- O riented P rogramming). การเขียนโปรแกรมเชิงวัตถุ. TOPIC. ความหมายของ OOP Primitive & Reference Type Scope of variable Class & Object Object Concept Access Modifier UML Class Diagram. ความหมายของ OOP. OOP คือสไตล์การเขียนโปรแกรม (Paradigm) - PowerPoint PPT Presentation
Citation preview
OOPOOP
((OObject-bject-OOriented riented PProgramming)rogramming)
การเขี�ยนโปรแกรมเชิ�งการเขี�ยนโปรแกรมเชิ�งวั�ตถุ�วั�ตถุ�
TOPICTOPIC
ความหมายของความหมายของ OOPOOP Primitive & Reference TypePrimitive & Reference Type Scope of variableScope of variable Class & ObjectClass & Object Object ConceptObject Concept Access ModifierAccess Modifier UML Class DiagramUML Class Diagram
ควัามหมายขีองควัามหมายขีอง OOPOOP
OOPOOP คอสไตล์�การเข�ยนโปรแกรมคอสไตล์�การเข�ยนโปรแกรม(Paradigm)(Paradigm)ฉะน��นหากผู้��ผู้ล์�ตซอฟแวร�ที่�#ม�ความค�ดแบบ ฉะน��นหากผู้��ผู้ล์�ตซอฟแวร�ที่�#ม�ความค�ดแบบ non-non-OOPOOP
จะเล์อกผู้ล์�ตซอฟแวร�ด�วยภาษาที่�#สน�บสน*น จะเล์อกผู้ล์�ตซอฟแวร�ด�วยภาษาที่�#สน�บสน*น OOPOOP แค+ไหนแค+ไหนผู้ล์ล์�พธ์�ที่�#ได�ก�อคอ ซอฟแวร�ที่�#ไม+เป.น ผู้ล์ล์�พธ์�ที่�#ได�ก�อคอ ซอฟแวร�ที่�#ไม+เป.น OOPOOP
ผู้��ผู้ล์�ตซอฟแวร�ไม+จ/าเป.นต�องผู้ล์�ตซอฟแวร�ที่�#เป.นไปตามแนวค�ดแบบ ผู้��ผู้ล์�ตซอฟแวร�ไม+จ/าเป.นต�องผู้ล์�ตซอฟแวร�ที่�#เป.นไปตามแนวค�ดแบบ OOPOOP
แต+เม#อได� ร�บร� �ถึ1งประโยชน�ของการผู้ล์�ตซอฟแวร�ตามแนวค�ดแต+เม#อได� ร�บร� �ถึ1งประโยชน�ของการผู้ล์�ตซอฟแวร�ตามแนวค�ดOOPOOPแล์�วแล์�วแน+ใจหรอ แน+ใจหรอ ? ?
ที่�#จะไม+ผู้ล์�ตซอฟแวร�ตามแนวค�ดที่�#จะไม+ผู้ล์�ตซอฟแวร�ตามแนวค�ดOOPOOP
PrimitivePrimitive & & ReferenceReference Type Type
PrimitivePrimitive Type Type คอ คอ Type Type ที่�#ม�อย�+ก+อนแล์�วที่�#ม�อย�+ก+อนแล์�วเช+น เช+น int , float ,doubleint , float ,double
แต+บางคร��ง แต+บางคร��ง Type Type เหล์+าน��ก�อตอบสนองความต�องการเหล์+าน��ก�อตอบสนองความต�องการของเราไม+ได�ของเราไม+ได�
เราจ1งจ/าเป.นต�องสร�างเราจ1งจ/าเป.นต�องสร�างTypeTypeข1�นมาเองข1�นมาเองUUser-ser-DDefineefineTType(ype(UDTUDT))
ซ1#ง ซ1#ง Type Type เหล์+าน�� ม�ล์�กษณะเป.น เหล์+าน�� ม�ล์�กษณะเป.น Reference Reference TypeType
ต�วัอย�างขีองต�วัอย�างขีอง PrimitivePrimitive & & ReferenceReference TypeType
Primitive TypePrimitive Type
Primitive TypePrimitive Type Code Code
int a = 5;int a = 5;
a = 5a = 5
int b = 10;int b = 10;
b = 10b = 10
a = b;a = b;
a = 10a = 10
MemoryMemory
ReferenceReference Type Type CodeCode
Circle a = new Circle(5);Circle a = new Circle(5);
ReferenceReference TypeType
MemoryMemory
a 5
Circle b = new Circle(20);Circle b = new Circle(20);
b
20
a = b;a = b;
Scope of variableScope of variable
Scope of variable Scope of variable หรอขอบเขตของ ต�วแปรหรอขอบเขตของ ต�วแปรต�วแปรโดยส+วนมากแล์�วจะม�ขอบเขตเป.นต�วแปรโดยส+วนมากแล์�วจะม�ขอบเขตเป.นGlobal variableGlobal variable แล์ะ แล์ะ Local variableLocal variableGlobal variableGlobal variable คอต�วแปรที่�#สามารถึเข�าถึ1งได�จากที่��ง คอต�วแปรที่�#สามารถึเข�าถึ1งได�จากที่��ง
ClassClassLocal variableLocal variable คอต�วแปรที่�#เข�าถึ1งได�เฉพาะใน คอต�วแปรที่�#เข�าถึ1งได�เฉพาะใน MethodMethod
What is Global and Local variableWhat is Global and Local variablelistlistnamenamelangslangsmyArraymyArray
ClassClass & & ObjectObject
ClassClass คอ คอ code code ที่�#เข�ยนข1�นเพ#อเป.นเบ�าหล์อม ที่�#เข�ยนข1�นเพ#อเป.นเบ�าหล์อม ObjectObject
ถึ�าเราเปร�ยบ ถึ�าเราเปร�ยบ ClassClass ให�เหมอนก�บพ�มเข�ยวให�เหมอนก�บพ�มเข�ยวObjectObject ก�อคอว�ตถึ*ที่�#ถึ�กสร�างข1�น ก�อคอว�ตถึ*ที่�#ถึ�กสร�างข1�น ซ1#งว�ตถึ*ถึ�กสร�างได�หล์ายช��นจากพ�มเข�ยวเด�ยวซ1#งว�ตถึ*ถึ�กสร�างได�หล์ายช��นจากพ�มเข�ยวเด�ยวเช+นก�น เช+นก�น ClassClass ก�อสามารถึสร�าง ก�อสามารถึสร�าง ObjectObject ได�หล์าย ได�หล์าย
ObjectObject
ต�วอย+างของต�วอย+างของ ClassClass & & ObjectObject
ClassObject
Object
Object
** Object ที่�#ถึ�กสร�างข1�นจาก Class เด�ยวก�นไม+จ/าเป.นต�องม�ล์�กษณะเหมอนก�น
ObjectObject Concept Concept
ห�วใจส/าค�ญของ ห�วใจส/าค�ญของ ObjectObject คอคอ1.State 1.State 2.Behavior2.Behavior3.Identity3.Identity
State State
StateState หรอ หรอ attribute attribute
คอค*ณล์�กษณะ หรอ สถึานะของ คอค*ณล์�กษณะ หรอ สถึานะของ Object Object ต+างๆต+างๆม�กอย�+ในร�ปของต�วแปรชน�ด ม�กอย�+ในร�ปของต�วแปรชน�ด Global variableGlobal variable
เช+น เช+น ObjectObject รถึยนต� ม� รถึยนต� ม� statestate เป.นส�ฟ7าเป.นส�ฟ7า**Object หน1#งสามารถึม� State หรอ attribute หล์ายชน�ดเช+น Car ม� color,velocity,acceleration เป.น State
BehaviorBehavior
BehaviorBehavior หรอ หรอ MethodMethod
เป.นความสามารถึที่�# เป.นความสามารถึที่�# ObjectObject ม� เช+นม� เช+นรถึยนต�ม� รถึยนต�ม� MethodMethod
Drive(),Brake(),turnLeft(),turnRight()Drive(),Brake(),turnLeft(),turnRight()
หมายความว+า รถึยนต� สามารถึที่�#จะ ข�บหมายความว+า รถึยนต� สามารถึที่�#จะ ข�บ,,เบรคเบรค,,เล์��ยวเล์��ยวซ�ายซ�าย,,เล์��ยวขวาได�เล์��ยวขวาได�
Behavior(Part 2)Behavior(Part 2)
Method Method แบ+งออกได� แบ+งออกได� 3 3 ประเภที่ประเภที่1.Constructor1.Constructor
2.Accessor2.Accessor
3.Mutator3.Mutator
ConstructorConstructorConstructor Constructor คอ คอ Method Method ที่�#ที่/าการสร�าง หรอก/าหนดค+าเร�#มต�นให� ที่�#ที่/าการสร�าง หรอก/าหนดค+าเร�#มต�นให� Object Object น��นๆ น��นๆ ล์�กษณะของ ล์�กษณะของ Method Constructor Method Constructor ที่�#ส�งเกตได�ช�ดเจนคอ ที่�#ส�งเกตได�ช�ดเจนคอ ช#อ ช#อ Method Method จะตรงก�บช#อของ จะตรงก�บช#อของ Class Class น��นๆ แล์ะ จะไม+ม� น��นๆ แล์ะ จะไม+ม� return Typereturn Typeเช+นเช+น
public Person(string name,string phone){public Person(string name,string phone){this.name = name;this.name = name;this.phone = phone;this.phone = phone;
}}
Class PersonClass Person Class MainClass Main
public static void Main(){public static void Main(){Person p1 = new Person(“Exceed”,”026405678”);Person p1 = new Person(“Exceed”,”026405678”);}}
จากต�วอย+างน�� p1 จะม� name เป.น “Exceed” แล์ะ phone เป.น “026405678”
AccessorAccessor
Accessor Accessor คอ คอ Method Method ที่�#ที่/าหน�าที่�#ในการ ที่�#ที่/าหน�าที่�#ในการ return return ค+าต+างๆค+าต+างๆม�กจะต��งช#อโดยใช�ค/าว+า ม�กจะต��งช#อโดยใช�ค/าว+า get get เช+นเช+นgetName(),getPrice(),getColor()getName(),getPrice(),getColor()
MutatorMutator
Mutator Mutator คอ คอ Method Method
ที่�#ที่/าหน�าที่�#ในการเปล์�#ยนแปล์งค+าของ ที่�#ที่/าหน�าที่�#ในการเปล์�#ยนแปล์งค+าของ State State หรอ หรอ attributeattribute
ม�กจะต��งช#อ ม�กจะต��งช#อ Method Method โดยใช�ค/าว+า โดยใช�ค/าว+า set set เช+นเช+นsetName(),setPrice()setName(),setPrice()
Identity Identity
Identity Identity หมายถึ1ง การที่�# หมายถึ1ง การที่�# ObjectObject ต+างๆม�ต+างๆม�เอกล์�กษณ�เอกล์�กษณ�
แม� แม� ObjectObject น��นๆ จะถึ�กสร�างจาก น��นๆ จะถึ�กสร�างจาก class class เด�ยวก�น เด�ยวก�น
Class
Object
Object
Color = silverPrice = 10,000,000
Color = silverPrice = 10,000,000
ID = กข1234
ID = งจ1919
Access ModifierAccess Modifierคอการเข�าถึ1งข�อม�ล์ ที่��ง คอการเข�าถึ1งข�อม�ล์ ที่��ง StateState แล์ะ แล์ะ BehaviorBehavior
PublicPublic คอการเข�าถึ1งข�อม�ล์ ได�จากที่*ก คอการเข�าถึ1งข�อม�ล์ ได�จากที่*ก ClassClass PrivatePrivate คอการยอมให�เข�าถึ1งข�อม�ล์เฉพาะภายใน คอการยอมให�เข�าถึ1งข�อม�ล์เฉพาะภายใน
Class Class เที่+าน��นเที่+าน��น
What is state or behavior ?What is state or behavior ?
State
Behavior
UML Class DiagramUML Class Diagram
UMLUML ( (UUnified nified MModeling odeling LLanguageanguage))
เม#อกล์+าวถึ1ง เม#อกล์+าวถึ1ง OOPOOP ก�อม�ความจ/าเป.นที่�#จะต�องกล์+าวถึ1ง ก�อม�ความจ/าเป.นที่�#จะต�องกล์+าวถึ1ง UMLUML
เน#องจาก เน#องจาก UMLUML สามารถึแสดงส+วนประกอบ ในการสร�างโปรเจคในร�ปของ สามารถึแสดงส+วนประกอบ ในการสร�างโปรเจคในร�ปของ OOPOOP
แล์ะเป.นการช+วยให�ที่�มเข�าใจการแบ+งงาน หรองานที่�#ได�ร�บมอบหมายได�ง+ายข1�นแล์ะเป.นการช+วยให�ที่�มเข�าใจการแบ+งงาน หรองานที่�#ได�ร�บมอบหมายได�ง+ายข1�น
UML Class Diagram ExampleUML Class Diagram ExampleCarCar
-name:string-name:string
-price:int-price:int
-color:string-color:string
+Car(string:name,int:price,string:color)+Car(string:name,int:price,string:color)
++getName():stringgetName():string
+getPrice():int+getPrice():int
+getColor():string+getColor():string
/*Class NameStateBehavior+ public- private
*/
Class Diagram Example(2)Class Diagram Example(2)