chapter i| introduction to objects · เมธอดส...
TRANSCRIPT
![Page 1: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/1.jpg)
CHAPTER 3
คลาสและการเขยนโปรแกรมเชงวตถเบองตน(CLASS AND OBJECT-ORIENTED PROGRAMING)
221202 | OBJECT-ORIENTED APPLICATION DEVELOPMENT
![Page 2: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/2.jpg)
ความสมพนธระหวางคลาสและออบเจกต
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
![Page 3: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/3.jpg)
ชนดของคลาส
แบงไดเปน 3 ชนด▪ Concrete Class เปนคลาสทวไปซงสามารถใชงานเพอการ
สรางออบเจกตไดทนท
▪ Abstract Class เปนคลาสทถกออกแบบมาใหใชงานเพอการสบทอดคณสมบต แตไมสามารถใชงานเพอการสรางออบเจกตได
▪ Interface Class คลายกนกบ Abstract Class แตโครงสรางภายในคลาสจะมเฉพาะตวแปรทเปนคาคงท และเมธอดทมระบเฉพาะชอเทานน
![Page 4: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/4.jpg)
Concrete Class โครงสรางคลาสประกอบดวย Attribute และ Method โดย Method จะมระบข นตอนการท างานไวภายในเรยบรอยแลว
![Page 5: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/5.jpg)
Abstract Class โครงสรางคลาสประกอบดวย Attribute และ Method โดย Method นนจะมทง Method ทระบข นตอนการท างานไวเรยบรอยแลว กบ Method ทเรยกวาAbstract Method
▪ โครงสรางของคลาสทมาสบทอดคณสมบตจาก Abstract Classสามารถม Method อนๆ ได แตตองม Method ทมชอเดยวกนกบ Abstract Method ทอยใน Abstract Class
![Page 6: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/6.jpg)
Interface Class โครงสรางคลาสประกอบดวย Attribute ทมคาคงท และ Abstract Methodเทานน
▪ โครงสรางของคลาสทมาสบทอดคณสมบตจาก Interface Classจ าเปนตองม Method ทมชอเดยวกนกบ Abstract Method ทอยใน Interface Class
![Page 7: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/7.jpg)
คลาสไดอะแกรม (CLASS DIAGRAM)เปนแผนภาพตามมาตรฐานในการสรางแบบจ าลองเชงวตถภาษายเอมแอล (UML; Unified Modelling Language) ใชแสดงใหเหนโครงสรางของออบเจกต หรอคลาส
![Page 8: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/8.jpg)
Object “สเหลยม”
Attribute▪ ชอสเหลยม : ชนดขอความ▪ ความกวาง : ชนดเลขทศนยม▪ ความยาว : ชนดเลขทศนยม▪ พนท : ชนดเลขทศนยม
Methods▪ เมธอดส าหรบใหออบเจกตสเหลยมใชก าหนดชอ, ความ
กวาง และความยาว▪ เมธอดใชส าหรบค านวณหาคาพนทของรปสเหลยมและ
แสดงผลออกทางจอภาพ
A
B
![Page 9: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/9.jpg)
Rectangle
name : Stringwidth : doublelength: doublearea :doublesetName(n:String)setWidth(w:double)setLength(l:double)printArea()
Attribute▪ ชอสเหลยม : ชนดขอความ▪ ความกวาง : ชนดเลขทศนยม▪ ความยาว : ชนดเลขทศนยม▪ พนท : ชนดเลขทศนยมMethods▪ เมธอดส าหรบใหออบเจกต
สเหลยมใชก าหนดชอ, ความกวาง และความยาว
▪ เมธอดใชส าหรบค านวณหาคาพนทของรปสเหลยมและแสดงผลออกทางจอภาพ
![Page 10: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/10.jpg)
การสรางคลาสและออบเจกต
![Page 11: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/11.jpg)
การสรางคลาส
[AccessModifier] class Name
{
Members
}
public /packageคยเวรดใชส าหรบการสรางคลาส
ชอคลาส
▪ Attribute/Data_Member▪ Method_Member
![Page 12: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/12.jpg)
เกรนน า Access Modifier และการใชงาน
Access Modifier คอ ระดบในการเขาถง Class, Attribute หรอMethod ในภาษาเชงวตถ ม 4 ระดบ
Access Modifier Class Attribute Method
public ✓ ✓ ✓
protected ✓ ✓
package ✓ ✓ ✓
private ✓ ✓
![Page 13: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/13.jpg)
public ▪ เปนการประกาศระดบการเขาถงทเขมงวดนอยทสด▪ สญลกษณทใชในคลาสไดอะแกรม ไดแก +
protected ▪ เปนการประกาศระดบการเขาถงทเกยวของกบเรองการสบทอด
(Inheritance) และคลาสทอยในแพคเกจเดยวกน▪ สญลกษณทใชในคลาสไดอะแกรม ไดแก #
![Page 14: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/14.jpg)
package ▪ เปนระดบการเขาถงเรมตน (Default) ในภาษาจาวา Class,
Attribute หรอ Method ทไมไดระบ Access Modifier ใดๆ ไวภาษาจาวาจะก าหนด Access Modifier ใหเปนแบบ package ทนท
▪ คลาสทอยตางแพคเกจกนจะไมสามารถเรยกใชงานสมาชกของกนและกนได
private ▪ เปนการประกาศระดบการเขาถงทเขมงวดมากทสด Attribute
หรอ Method จะมไวใชเฉพาะภายในคลาสนนเทานน คลาสอนจะไมมสทธใชงาน
▪ สญลกษณทใชในคลาสไดอะแกรม ไดแก -
![Page 15: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/15.jpg)
ตวอยางการใชงานสญลกษณ Access Modifierใน Class Diagram
public Methods
private attributeprotected attribute
![Page 16: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/16.jpg)
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
![Page 17: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/17.jpg)
Rectangle
+ name : String+ width : double+ length: double- area :double+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()
ตวอยางการสรางคลาส เชน
![Page 18: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/18.jpg)
กฎและขอแนะน าในการตงชอ Class
▪ กฎการตงชอคลาสเปนไปตามกฎการตงชอ identify ของภาษาจาวา▪ นยมขนตนดวยตวใหญ▪ หากชอคลาสประกอบดวยค ามากกวา 1 ค า โดยทวไปนยมก าหนดให
ตวอกษรแรกของแตละค าเปนตวใหญ▪ ชอคลาสควรเปนค านาม
![Page 19: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/19.jpg)
การสราง Attribute
public class ClassName {
}
Attribute1
Attribute2
Attribute3
[AccessModifier] dataType Name;
public/ protected/ package/ private
ชนดของแอทรบวต▪byte/ short/ int/ long ▪double/ float▪Boolean▪char String
ชอแอทรบวต
Method
![Page 20: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/20.jpg)
Rectangle
+ name : String+ width : double+ length: double- area :double+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()
ตวอยางเชน
![Page 21: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/21.jpg)
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
![Page 22: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/22.jpg)
กฎและขอแนะน าในการตงชอ Attributes
▪ ชอเปนไปตาม กฎการตงชอ identify ของภาษาจาวา▪ นยมขนตนดวยตวเลก▪ หากชอแอตทรบวตประกอบดวยค ามากกวา 1 ค า โดยทวไปนยม
ก าหนดใหตวอกษรตวแรกของแตละค า (ยกเวนค าแรก) เปนตวใหญ▪ ชอแอตทรบวตควรเปนค านาม
![Page 23: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/23.jpg)
การสราง Method
public class ClassName {
}
Attribute1
Method1
Method2
Method3
[AccessModifier] returnType Name(arguments){
statement;return (data);
}
public/ protected/ package/ private
Data type in Java หรอระบเปนคยเวรด void กรณไมมการสงคนคากลบ ชอเมธอด
ตวแปรพารามเตอรใชในการรบขอมลเขาเมธอด
คยเวรดทใชส าหรบการสงคนคากลบของเมธอด
![Page 24: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/24.jpg)
Rectangle
+ name : String+ width : double+ length: double- area :double
+ setName(n:String)+ setWidth(w:double)+ setLength(l:double)+ printArea()
ตวอยางเชน
![Page 25: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/25.jpg)
กฎและขอแนะน าในการตงชอ Attributes
▪ ตงชอเปนไปตาม กฎการตงชอ identifier ของภาษาจาวา▪ นยมขนตนดวยตวเลก▪ หากชอเมธอดประกอบดวยค ามากกวา 1 ค า โดยทวไปนยมก าหนดให
ตวอกษรตวแรกของแตละค า (ยกเวนค าแรก) เปนตวใหญ▪ ชอเมธอดควรก าหนดใหเปนค ากรยา
![Page 26: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/26.jpg)
แผนภาพแสดงความสมพนธการสรางออบเจกตจากคลาส
หรอ
![Page 27: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/27.jpg)
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
![Page 28: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/28.jpg)
การสราง Object
ประกาศตวแปรออบเจค(Object Declaration)
ชอคลาส ชอตวแปรออบเจค;
สรางออบเจค
(Object Creation) ชอตวแปรออบเจค = new ชอคลาส(อารกวเมนต);
คยเวรดทใชส าหรบการสรางออบเจกต
![Page 29: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/29.jpg)
ClassName objectName ;objectName = new ClassName();
รปแบบ 1
ClassName objectName = new ClassName(); รปแบบ 2
ClassName objectName1, objectName2 = new ClassName(); รปแบบ 3
รปแบบการเขยนประกาศและสรางออบเจกต
![Page 30: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/30.jpg)
RectangleA:Rectangle
B:Rectangle
ตวอยางเชน
![Page 31: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/31.jpg)
การใชงาน Attribute และ Method
การใชงานกระท าผานตวแปรออบเจกตทสรางขนมาจากคลาสโดยออบเจกตจะสามารถเรยกใชงานแอทรบวตและเมธอด ตวทAccess Modifier ทไมถกก าหนดใหเปน private ไดเทานน
public class ClassName {
}
Attribute1
Attribute2
Method1
Method2
![Page 32: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/32.jpg)
รปแบบการใชงาน Attribute
ObjecName . ชอแอทรบวต
ชอออบเจกต ชอแอทรบวต
จด
ObjecName . ชอแอทรบวต = คาทตองการจดเกบในแอทรบวต
คาขอมล
เครองหมาย =
▪ กรณแสดงคาทจดเกบในแอทรบวต
▪ กรณจดเกบคาในแอทรบวต
![Page 33: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/33.jpg)
การใชงาน Method
ObjecName . ชอเมธอด(อารกวเมนต)
ชอออบเจกต ชอแอทรบวต
จด ขอมลทออบเจกตตองสงเขาไปในเมธอด
![Page 34: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/34.jpg)
Rectangle
A:Rectangle
name = “A”width = 4.0length = 5.0
Instance ofตวอยางเชน
ออบเจกต A เรยกใชงานเมธอด printArea()
พมพคา width ทออบเจกต A ท าการจดเกบ
![Page 35: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/35.jpg)
เราจะไมสามารถเขยนใหออบเจกต A เรยกใชงานแอทรบวต area แบบนได
A.area = 20.0;
เนองจาก area ถกประกาศใหเปนแบบ private
![Page 36: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/36.jpg)
การเรยกใชงานแอทรบวตทเปนแบบ private จะตองท าผานเมธอดทคลาสมให
A.setArea(20.0);
![Page 37: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/37.jpg)
ขนตอนการออกแบบคลาส
1.
สรางแนวคดใหกบวตถ
2.
สรางตนแบบของวตถ
3.
สรางวตถจากตนแบบ
Definite
➢Attribute’s object
➢Method’s object
Create
➢ClassCreate
➢Object
➢Use Attribute and Method
![Page 38: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/38.jpg)
ตวอยางเชน จงออกแบบคลาสของโปรแกรมใชส าหรบค านวณหาพนทและเสนรอบวงของรปวงกลม
1. สรางแนวคดใหกบวตถ
✓ Object คอ .....
✓ Attribute’s object ?
✓Method’s object ?
2. สรางคลาสโปรแกรม
เขยนเปน Class Diagram
3. สรางออบเจกตและเรยกใชงานแอทรบวตและเมธอดในคลาส
![Page 39: Chapter I| Introduction to Objects · เมธอดส าหรับให้ออบเจ็กต์ สี่เหลี่ยมใช้ก าหนดชื่อ, ความ](https://reader034.vdocuments.us/reader034/viewer/2022042406/5f2068586888a61fa16af8e7/html5/thumbnails/39.jpg)
Q & A