chapter i| introduction to objects · เมธอดส...

Post on 05-Jul-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CHAPTER 3

คลาสและการเขยนโปรแกรมเชงวตถเบองตน(CLASS AND OBJECT-ORIENTED PROGRAMING)

221202 | OBJECT-ORIENTED APPLICATION DEVELOPMENT

ความสมพนธระหวางคลาสและออบเจกต

Data/Attribute

Object Operation/

Methods

Behaviors of an

object

Characteristics that

define an object

Class

▪ a instruction to create objects.

▪ describes what attribute its objects will

have and what those objects will be able

to do.

▪ Attributes and Methods is member of

Class

ชนดของคลาส

แบงไดเปน 3 ชนด▪ Concrete Class เปนคลาสทวไปซงสามารถใชงานเพอการ

สรางออบเจกตไดทนท

▪ Abstract Class เปนคลาสทถกออกแบบมาใหใชงานเพอการสบทอดคณสมบต แตไมสามารถใชงานเพอการสรางออบเจกตได

▪ Interface Class คลายกนกบ Abstract Class แตโครงสรางภายในคลาสจะมเฉพาะตวแปรทเปนคาคงท และเมธอดทมระบเฉพาะชอเทานน

Concrete Class โครงสรางคลาสประกอบดวย Attribute และ Method โดย Method จะมระบข นตอนการท างานไวภายในเรยบรอยแลว

Abstract Class โครงสรางคลาสประกอบดวย Attribute และ Method โดย Method นนจะมทง Method ทระบข นตอนการท างานไวเรยบรอยแลว กบ Method ทเรยกวาAbstract Method

▪ โครงสรางของคลาสทมาสบทอดคณสมบตจาก Abstract Classสามารถม Method อนๆ ได แตตองม Method ทมชอเดยวกนกบ Abstract Method ทอยใน Abstract Class

Interface Class โครงสรางคลาสประกอบดวย Attribute ทมคาคงท และ Abstract Methodเทานน

▪ โครงสรางของคลาสทมาสบทอดคณสมบตจาก Interface Classจ าเปนตองม Method ทมชอเดยวกนกบ Abstract Method ทอยใน Interface Class

คลาสไดอะแกรม (CLASS DIAGRAM)เปนแผนภาพตามมาตรฐานในการสรางแบบจ าลองเชงวตถภาษายเอมแอล (UML; Unified Modelling Language) ใชแสดงใหเหนโครงสรางของออบเจกต หรอคลาส

Object “สเหลยม”

Attribute▪ ชอสเหลยม : ชนดขอความ▪ ความกวาง : ชนดเลขทศนยม▪ ความยาว : ชนดเลขทศนยม▪ พนท : ชนดเลขทศนยม

Methods▪ เมธอดส าหรบใหออบเจกตสเหลยมใชก าหนดชอ, ความ

กวาง และความยาว▪ เมธอดใชส าหรบค านวณหาคาพนทของรปสเหลยมและ

แสดงผลออกทางจอภาพ

A

B

Rectangle

name : Stringwidth : doublelength: doublearea :doublesetName(n:String)setWidth(w:double)setLength(l:double)printArea()

Attribute▪ ชอสเหลยม : ชนดขอความ▪ ความกวาง : ชนดเลขทศนยม▪ ความยาว : ชนดเลขทศนยม▪ พนท : ชนดเลขทศนยมMethods▪ เมธอดส าหรบใหออบเจกต

สเหลยมใชก าหนดชอ, ความกวาง และความยาว

▪ เมธอดใชส าหรบค านวณหาคาพนทของรปสเหลยมและแสดงผลออกทางจอภาพ

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

การสรางคลาส

[AccessModifier] class Name

{

Members

}

public /packageคยเวรดใชส าหรบการสรางคลาส

ชอคลาส

▪ Attribute/Data_Member▪ Method_Member

เกรนน า Access Modifier และการใชงาน

Access Modifier คอ ระดบในการเขาถง Class, Attribute หรอMethod ในภาษาเชงวตถ ม 4 ระดบ

Access Modifier Class Attribute Method

public ✓ ✓ ✓

protected ✓ ✓

package ✓ ✓ ✓

private ✓ ✓

public ▪ เปนการประกาศระดบการเขาถงทเขมงวดนอยทสด▪ สญลกษณทใชในคลาสไดอะแกรม ไดแก +

protected ▪ เปนการประกาศระดบการเขาถงทเกยวของกบเรองการสบทอด

(Inheritance) และคลาสทอยในแพคเกจเดยวกน▪ สญลกษณทใชในคลาสไดอะแกรม ไดแก #

package ▪ เปนระดบการเขาถงเรมตน (Default) ในภาษาจาวา Class,

Attribute หรอ Method ทไมไดระบ Access Modifier ใดๆ ไวภาษาจาวาจะก าหนด Access Modifier ใหเปนแบบ package ทนท

▪ คลาสทอยตางแพคเกจกนจะไมสามารถเรยกใชงานสมาชกของกนและกนได

private ▪ เปนการประกาศระดบการเขาถงทเขมงวดมากทสด Attribute

หรอ Method จะมไวใชเฉพาะภายในคลาสนนเทานน คลาสอนจะไมมสทธใชงาน

▪ สญลกษณทใชในคลาสไดอะแกรม ไดแก -

ตวอยางการใชงานสญลกษณ Access Modifierใน Class Diagram

public Methods

private attributeprotected attribute

Rectangle

+ name : String+ width : double+ length: double- area :double+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()

ตวอยางการใชงานสญลกษณ Access Modifierใน Class Diagram’s Rectangle

private attribute

public Methods

public attributes

Rectangle

+ name : String+ width : double+ length: double- area :double+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()

ตวอยางการสรางคลาส เชน

กฎและขอแนะน าในการตงชอ Class

▪ กฎการตงชอคลาสเปนไปตามกฎการตงชอ identify ของภาษาจาวา▪ นยมขนตนดวยตวใหญ▪ หากชอคลาสประกอบดวยค ามากกวา 1 ค า โดยทวไปนยมก าหนดให

ตวอกษรแรกของแตละค าเปนตวใหญ▪ ชอคลาสควรเปนค านาม

การสราง Attribute

public class ClassName {

}

Attribute1

Attribute2

Attribute3

[AccessModifier] dataType Name;

public/ protected/ package/ private

ชนดของแอทรบวต▪byte/ short/ int/ long ▪double/ float▪Boolean▪char String

ชอแอทรบวต

Method

Rectangle

+ name : String+ width : double+ length: double- area :double+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()

ตวอยางเชน

Rectangle

+ name : String+ width : double = 0.0+ length: double = 0.0- area :double = 0.0+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()

เราสามารถก าหนดคาเรมตนใหกบแอทรบวตได ดงตวอยาง การก าหนดใหกบ width, length และ area

กฎและขอแนะน าในการตงชอ Attributes

▪ ชอเปนไปตาม กฎการตงชอ identify ของภาษาจาวา▪ นยมขนตนดวยตวเลก▪ หากชอแอตทรบวตประกอบดวยค ามากกวา 1 ค า โดยทวไปนยม

ก าหนดใหตวอกษรตวแรกของแตละค า (ยกเวนค าแรก) เปนตวใหญ▪ ชอแอตทรบวตควรเปนค านาม

การสราง Method

public class ClassName {

}

Attribute1

Method1

Method2

Method3

[AccessModifier] returnType Name(arguments){

statement;return (data);

}

public/ protected/ package/ private

Data type in Java หรอระบเปนคยเวรด void กรณไมมการสงคนคากลบ ชอเมธอด

ตวแปรพารามเตอรใชในการรบขอมลเขาเมธอด

คยเวรดทใชส าหรบการสงคนคากลบของเมธอด

Rectangle

+ name : String+ width : double+ length: double- area :double

+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()

ตวอยางเชน

กฎและขอแนะน าในการตงชอ Attributes

▪ ตงชอเปนไปตาม กฎการตงชอ identifier ของภาษาจาวา▪ นยมขนตนดวยตวเลก▪ หากชอเมธอดประกอบดวยค ามากกวา 1 ค า โดยทวไปนยมก าหนดให

ตวอกษรตวแรกของแตละค า (ยกเวนค าแรก) เปนตวใหญ▪ ชอเมธอดควรก าหนดใหเปนค ากรยา

แผนภาพแสดงความสมพนธการสรางออบเจกตจากคลาส

หรอ

Rectangle

name : Stringwidth : doublelength: doublearea :doublesetName(n:String)setWidth(w:double)setLength(l:double)printArea()

A

B

A:Rectangle

name = “A”width = 4.0length = 5.0

B:Rectangle

name = “B”width = 2.0length = 6.0

การสราง Object

ประกาศตวแปรออบเจค(Object Declaration)

ชอคลาส ชอตวแปรออบเจค;

สรางออบเจค

(Object Creation) ชอตวแปรออบเจค = new ชอคลาส(อารกวเมนต);

คยเวรดทใชส าหรบการสรางออบเจกต

ClassName objectName ;objectName = new ClassName();

รปแบบ 1

ClassName objectName = new ClassName(); รปแบบ 2

ClassName objectName1, objectName2 = new ClassName(); รปแบบ 3

รปแบบการเขยนประกาศและสรางออบเจกต

RectangleA:Rectangle

B:Rectangle

ตวอยางเชน

การใชงาน Attribute และ Method

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

public class ClassName {

}

Attribute1

Attribute2

Method1

Method2

รปแบบการใชงาน Attribute

ObjecName . ชอแอทรบวต

ชอออบเจกต ชอแอทรบวต

จด

ObjecName . ชอแอทรบวต = คาทตองการจดเกบในแอทรบวต

คาขอมล

เครองหมาย =

▪ กรณแสดงคาทจดเกบในแอทรบวต

▪ กรณจดเกบคาในแอทรบวต

การใชงาน Method

ObjecName . ชอเมธอด(อารกวเมนต)

ชอออบเจกต ชอแอทรบวต

จด ขอมลทออบเจกตตองสงเขาไปในเมธอด

Rectangle

A:Rectangle

name = “A”width = 4.0length = 5.0

Instance ofตวอยางเชน

ออบเจกต A เรยกใชงานเมธอด printArea()

พมพคา width ทออบเจกต A ท าการจดเกบ

เราจะไมสามารถเขยนใหออบเจกต A เรยกใชงานแอทรบวต area แบบนได

A.area = 20.0;

เนองจาก area ถกประกาศใหเปนแบบ private

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

A.setArea(20.0);

ขนตอนการออกแบบคลาส

1.

สรางแนวคดใหกบวตถ

2.

สรางตนแบบของวตถ

3.

สรางวตถจากตนแบบ

Definite

➢Attribute’s object

➢Method’s object

Create

➢ClassCreate

➢Object

➢Use Attribute and Method

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

1. สรางแนวคดใหกบวตถ

✓ Object คอ .....

✓ Attribute’s object ?

✓Method’s object ?

2. สรางคลาสโปรแกรม

เขยนเปน Class Diagram

3. สรางออบเจกตและเรยกใชงานแอทรบวตและเมธอดในคลาส

Q & A

top related