22
OOP OOP ( ( O O bject- bject- O O riented riented P P rogramming) rogramming) กกกกกกกกกกกกกกก กกกกกกกกกกกกกกก กกกกกกกกก กกกกกกกกก

OOP ( O bject- O riented P rogramming)

  • Upload
    gali

  • View
    43

  • 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

Page 1: OOP ( O bject- O riented  P rogramming)

OOPOOP

((OObject-bject-OOriented riented PProgramming)rogramming)

การเขี�ยนโปรแกรมเชิ�งการเขี�ยนโปรแกรมเชิ�งวั�ตถุ�วั�ตถุ�

Page 2: OOP ( O bject- O riented  P 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

Page 3: OOP ( O bject- O riented  P rogramming)

ควัามหมายขีองควัามหมายขีอง OOPOOP

OOPOOP คอสไตล์�การเข�ยนโปรแกรมคอสไตล์�การเข�ยนโปรแกรม(Paradigm)(Paradigm)ฉะน��นหากผู้��ผู้ล์�ตซอฟแวร�ที่�#ม�ความค�ดแบบ ฉะน��นหากผู้��ผู้ล์�ตซอฟแวร�ที่�#ม�ความค�ดแบบ non-non-OOPOOP

จะเล์อกผู้ล์�ตซอฟแวร�ด�วยภาษาที่�#สน�บสน*น จะเล์อกผู้ล์�ตซอฟแวร�ด�วยภาษาที่�#สน�บสน*น OOPOOP แค+ไหนแค+ไหนผู้ล์ล์�พธ์�ที่�#ได�ก�อคอ ซอฟแวร�ที่�#ไม+เป.น ผู้ล์ล์�พธ์�ที่�#ได�ก�อคอ ซอฟแวร�ที่�#ไม+เป.น OOPOOP

ผู้��ผู้ล์�ตซอฟแวร�ไม+จ/าเป.นต�องผู้ล์�ตซอฟแวร�ที่�#เป.นไปตามแนวค�ดแบบ ผู้��ผู้ล์�ตซอฟแวร�ไม+จ/าเป.นต�องผู้ล์�ตซอฟแวร�ที่�#เป.นไปตามแนวค�ดแบบ OOPOOP

แต+เม#อได� ร�บร� �ถึ1งประโยชน�ของการผู้ล์�ตซอฟแวร�ตามแนวค�ดแต+เม#อได� ร�บร� �ถึ1งประโยชน�ของการผู้ล์�ตซอฟแวร�ตามแนวค�ดOOPOOPแล์�วแล์�วแน+ใจหรอ แน+ใจหรอ ? ?

ที่�#จะไม+ผู้ล์�ตซอฟแวร�ตามแนวค�ดที่�#จะไม+ผู้ล์�ตซอฟแวร�ตามแนวค�ดOOPOOP

Page 4: OOP ( O bject- O riented  P rogramming)

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

Page 5: OOP ( O bject- O riented  P rogramming)

ต�วัอย�างขีองต�วัอย�างขีอง 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;

Page 6: OOP ( O bject- O riented  P rogramming)

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

Page 7: OOP ( O bject- O riented  P rogramming)

What is Global and Local variableWhat is Global and Local variablelistlistnamenamelangslangsmyArraymyArray

Page 8: OOP ( O bject- O riented  P rogramming)

ClassClass & & ObjectObject

ClassClass คอ คอ code code ที่�#เข�ยนข1�นเพ#อเป.นเบ�าหล์อม ที่�#เข�ยนข1�นเพ#อเป.นเบ�าหล์อม ObjectObject

ถึ�าเราเปร�ยบ ถึ�าเราเปร�ยบ ClassClass ให�เหมอนก�บพ�มเข�ยวให�เหมอนก�บพ�มเข�ยวObjectObject ก�อคอว�ตถึ*ที่�#ถึ�กสร�างข1�น ก�อคอว�ตถึ*ที่�#ถึ�กสร�างข1�น ซ1#งว�ตถึ*ถึ�กสร�างได�หล์ายช��นจากพ�มเข�ยวเด�ยวซ1#งว�ตถึ*ถึ�กสร�างได�หล์ายช��นจากพ�มเข�ยวเด�ยวเช+นก�น เช+นก�น ClassClass ก�อสามารถึสร�าง ก�อสามารถึสร�าง ObjectObject ได�หล์าย ได�หล์าย

ObjectObject

Page 9: OOP ( O bject- O riented  P rogramming)

ต�วอย+างของต�วอย+างของ ClassClass & & ObjectObject

ClassObject

Object

Object

** Object ที่�#ถึ�กสร�างข1�นจาก Class เด�ยวก�นไม+จ/าเป.นต�องม�ล์�กษณะเหมอนก�น

Page 10: OOP ( O bject- O riented  P rogramming)

ObjectObject Concept Concept

ห�วใจส/าค�ญของ ห�วใจส/าค�ญของ ObjectObject คอคอ1.State 1.State 2.Behavior2.Behavior3.Identity3.Identity

Page 11: OOP ( O bject- O riented  P rogramming)

State State

StateState หรอ หรอ attribute attribute

คอค*ณล์�กษณะ หรอ สถึานะของ คอค*ณล์�กษณะ หรอ สถึานะของ Object Object ต+างๆต+างๆม�กอย�+ในร�ปของต�วแปรชน�ด ม�กอย�+ในร�ปของต�วแปรชน�ด Global variableGlobal variable

เช+น เช+น ObjectObject รถึยนต� ม� รถึยนต� ม� statestate เป.นส�ฟ7าเป.นส�ฟ7า**Object หน1#งสามารถึม� State หรอ attribute หล์ายชน�ดเช+น Car ม� color,velocity,acceleration เป.น State

Page 12: OOP ( O bject- O riented  P rogramming)

BehaviorBehavior

BehaviorBehavior หรอ หรอ MethodMethod

เป.นความสามารถึที่�# เป.นความสามารถึที่�# ObjectObject ม� เช+นม� เช+นรถึยนต�ม� รถึยนต�ม� MethodMethod

Drive(),Brake(),turnLeft(),turnRight()Drive(),Brake(),turnLeft(),turnRight()

หมายความว+า รถึยนต� สามารถึที่�#จะ ข�บหมายความว+า รถึยนต� สามารถึที่�#จะ ข�บ,,เบรคเบรค,,เล์��ยวเล์��ยวซ�ายซ�าย,,เล์��ยวขวาได�เล์��ยวขวาได�

Page 13: OOP ( O bject- O riented  P rogramming)

Behavior(Part 2)Behavior(Part 2)

Method Method แบ+งออกได� แบ+งออกได� 3 3 ประเภที่ประเภที่1.Constructor1.Constructor

2.Accessor2.Accessor

3.Mutator3.Mutator

Page 14: OOP ( O bject- O riented  P rogramming)

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”

Page 15: OOP ( O bject- O riented  P rogramming)

AccessorAccessor

Accessor Accessor คอ คอ Method Method ที่�#ที่/าหน�าที่�#ในการ ที่�#ที่/าหน�าที่�#ในการ return return ค+าต+างๆค+าต+างๆม�กจะต��งช#อโดยใช�ค/าว+า ม�กจะต��งช#อโดยใช�ค/าว+า get get เช+นเช+นgetName(),getPrice(),getColor()getName(),getPrice(),getColor()

Page 16: OOP ( O bject- O riented  P rogramming)

MutatorMutator

Mutator Mutator คอ คอ Method Method

ที่�#ที่/าหน�าที่�#ในการเปล์�#ยนแปล์งค+าของ ที่�#ที่/าหน�าที่�#ในการเปล์�#ยนแปล์งค+าของ State State หรอ หรอ attributeattribute

ม�กจะต��งช#อ ม�กจะต��งช#อ Method Method โดยใช�ค/าว+า โดยใช�ค/าว+า set set เช+นเช+นsetName(),setPrice()setName(),setPrice()

Page 17: OOP ( O bject- O riented  P rogramming)

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

Page 18: OOP ( O bject- O riented  P rogramming)

Access ModifierAccess Modifierคอการเข�าถึ1งข�อม�ล์ ที่��ง คอการเข�าถึ1งข�อม�ล์ ที่��ง StateState แล์ะ แล์ะ BehaviorBehavior

PublicPublic คอการเข�าถึ1งข�อม�ล์ ได�จากที่*ก คอการเข�าถึ1งข�อม�ล์ ได�จากที่*ก ClassClass PrivatePrivate คอการยอมให�เข�าถึ1งข�อม�ล์เฉพาะภายใน คอการยอมให�เข�าถึ1งข�อม�ล์เฉพาะภายใน

Class Class เที่+าน��นเที่+าน��น

Page 19: OOP ( O bject- O riented  P rogramming)

What is state or behavior ?What is state or behavior ?

State

Behavior

Page 20: OOP ( O bject- O riented  P rogramming)

UML Class DiagramUML Class Diagram

UMLUML ( (UUnified nified MModeling odeling LLanguageanguage))

เม#อกล์+าวถึ1ง เม#อกล์+าวถึ1ง OOPOOP ก�อม�ความจ/าเป.นที่�#จะต�องกล์+าวถึ1ง ก�อม�ความจ/าเป.นที่�#จะต�องกล์+าวถึ1ง UMLUML

เน#องจาก เน#องจาก UMLUML สามารถึแสดงส+วนประกอบ ในการสร�างโปรเจคในร�ปของ สามารถึแสดงส+วนประกอบ ในการสร�างโปรเจคในร�ปของ OOPOOP

แล์ะเป.นการช+วยให�ที่�มเข�าใจการแบ+งงาน หรองานที่�#ได�ร�บมอบหมายได�ง+ายข1�นแล์ะเป.นการช+วยให�ที่�มเข�าใจการแบ+งงาน หรองานที่�#ได�ร�บมอบหมายได�ง+ายข1�น

Page 21: OOP ( O bject- O riented  P rogramming)

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

*/

Page 22: OOP ( O bject- O riented  P rogramming)

Class Diagram Example(2)Class Diagram Example(2)