ความสัมพันธ์ระหว่างคลาส (Class Relationship)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
การจัดการความผิดพลาด
Object-Oriented Analysis and Design
Class Diagram.
Structure Programming
05_3_Constructor.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
SCC : Suthida Chaichomchuen
Selected Topics in IT (Java)
Object-Oriented System Analysis and Design
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การสืบทอด (Inheritance)
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (2).
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
OOP (Object-Oriented Programming)
Generalization & Specialization
Lecture 9 Class (คลาส) To do: Hand back assignments
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Algorithm มหาวิทยาลัยเนชั่น Java Pre-Test 49 (Series 1, 2 )
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
บทที่ 6 เมธอด.
ทำงานกับ File และStream
แบบจำลองความสัมพันธ์ระหว่างข้อมูล
JAVA PROGRAMMING PART IV.
Handling Exceptions & database
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept)
Lec05 :: การสืบทอด (inheritance)
Object-Oriented Programming
บทที่ 3 Class and Object (2).
บทที่ 2 การแสดงผลและรับข้อมูล
Java Programming Java Structure and Datatype,Variable
การเขียนโปรแกรมคอมพิวเตอร์ 1
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
สายอักขระ เขียนโปรแกรม Java เบื้องต้น.
Object Oriented Programming : OOP
การสืบทอด (inheritance)
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Class. ทบทวน Object ประกอบด้วย ชื่อ Attributes -> คุณลักษณะ Methods -> การกระทำ ให้ลองเขียน Object โดยใช้รูปแบบดังนี้ ชื่อ Attributes Methods.
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
Object-Oriented Programming
วิชา การวิเคราะห์และออกแบบเชิงวัตถุ รหัส
คอนสตรัคเตอร์ (Constructor)
การจัดการกับความผิดปกติ
chapter 2 - Construction and destruction - Overloading method
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
Chapter 6 Abstract Class and Interface
บทที่ 3 การสืบทอด (Inheritance)
Inheritance and Method Overriding
Class Diagram.
Class Diagram.
ใบสำเนางานนำเสนอ:

ความสัมพันธ์ระหว่างคลาส (Class Relationship) Boonrit kidngan boonrit@feu.ac.th

Class Diagram ถูกสร้างขึ้นจากมุมมองของนักพัฒนาโปรแกรม สามารถนำไปใช้ในการเขียนโปรแกรมโดยตรง แบ่งออกเป็น 3 ส่วนหลักๆ ได้แก่ ส่วนบนจะใช้สำหรับระบุชื่อของคลาส ส่วนกลางจะใช้สำหรับระบุข้อมูลหรือแอททริบิวต์ (Attribute) ส่วนล่างจะเป็นการระบุพฤติกรรมการทำงาน (method) Class’s name - attributeName : data type + method(arg list) : return type

การสร้าง Class Diagram กำหนดคลาสที่ใช้งานภายในระบบ กำหนดแอททริบิวต์ของคลาส กำหนดการทำงานของคลาสในรูปของเมธอด กำหนดความสัมพันธ์ระหว่างคลาส

Student Student id : String name : String test : int mid : int finals : int Student - id : String - name : String - test : int - mid : int - finals : int + getID() : String + getName() : String + calGPA(test, mid, final) : double

การเข้าถึงข้อมูลภายใน สิทธิ สัญลักษณ์ การเข้าถึงข้อมูลภายใน Public + ทุกๆ ออปเจคภายในระบบ Protected # ออปเจคของคลาสที่มีคุณลักษณะเป็นคลาสสืบทอด Private - ออปเจคจากคลาสหนึ่งๆ โดยเฉพาะ

ความสัมพันธ์ระหว่างคลาส โดยปกติแล้วคลาส X และคลาส Y จะมีความสัมพันธ์กันในกรณีดังต่อไปนี้: ออปเจคของคลาส X ทำหน้าที่ส่ง message ไปยังออปเจคของคลาส Y ออปเจคของคลาส X สร้างออปเจคของคลาส Y ออปเจคของคลาส X มี attribute ที่เป็นออปเจคจากคลาส Y หรือกลุ่มของออปเจคจากคลาส Y ออปเจคของคลาส X ทำหน้าที่รับ message จากออปเจคของคลาส Y ในรูปของ argument

Unrelated Classes

class CarDemo1 { public static void main (String [] args) { Student st=new Student(5403013014,”hunsa”); Book book=new Book(“java”); System.out.print(st.getName() +” read “ +book.getName()); }

Dependency Relationship (ความสัมพันธ์แบบขึ้นอยู่กับ) เป็นความสัมพันธ์ที่เกิดขึ้นจากการทำงานของคลาสหนึ่งที่มีลักษณะขึ้นอยู่กับคลาสอื่น ๆ ความสัมพันธ์ที่เกิดขึ้นนี้จะมีระยะเวลาสั้น ๆ ใน UMLความสัมพันธ์แบบนี้อาจสรุปการทำงานได้ดังนี้ ออปเจคอาจสร้างออปเจคอื่นในลักษณะที่เป็นส่วนหนึ่งของเมธอด เพื่อร้องขอให้เกิดการกระทำสิ่งใดสิ่งหนึ่งจนกระทั่งเสร็จสิ้น และความสัมพันธ์นั้น ๆ จะสิ้นสุดลงทันที ออปเจคอาจทำการสร้างออปเจคอื่นในลักษณะที่เป็นส่วนหนึ่งของเมธอด เพื่อกระทำสิ่งใดสิ่งหนึ่งและคืนค่ากลับไปยังเมธอดที่เรียกใช้ ออปเจคอาจเรียกใช้เมธอดที่รับค่าพารามิเตอร์ในรูปของของออปเจค เพื่อใช้และแก้ไขข้อมูลภายในออปเจคนั้น ๆ จากนั้นความสัมพันธ์จะสิ้นสุดลงเมื่อการทำงานของเมธอดเสร็จสิ้น

Dependency Relationship

class Car { private String model; private String manufacturer; public Car (String model, String manufacturer) { this.model = model; this.manufacturer = manufacturer; } public String getEngine ( Engine e) { return e.getType(); public String getModel () { return model; public String getManufacturer () { return manufacturer; class Engine { private String type; Engine (String type) { this.type = type; } public String getType () { return type;

Association Relationship (ความสัมพันธ์แบบเกี่ยวข้องโดยตรง) ความสัมพันธ์แบบนี้จะคล้ายกับความสัมพันธ์แบบ Dependency แต่จะแตกต่างกันตรงที่ช่วงเวลาที่เกิดความสัมพันธ์กันจะมีระยะเวลานาน และมีลักษณะเป็นความสัมพันธ์แบบโครงสร้าง ความสัมพันธ์แบบนี้อาจสร้างขึ้นได้โดยการการกำหนดคลาสอื่นในรูปของแอททริบิวต์ภายในคลาส และสามารถเรียกใช้เมธอดจากคลาสนั้นได้ในกรณีที่ต้องการ ความสัมพันธ์แบบนี้อาจถูกมองในรูปของการมีอยู่ (has-a) ได้ เช่น ออปเจคจากคลาสหนึ่งมีค่าอ้างอิงไปยังออปเจคจากคลาสอื่นได้

แสดงความเกี่ยวข้องระหว่างนักศึกษากับรถ

Aggregation เป็นรูปแบบหนึ่งของ Association ซึ่งมีความสัมพันธ์ระหว่างWhole และParts โดยเรียกความสัมพันธ์นี้ว่า Whole -part ซึ่งAggregation (Whole-part ) นี้ยังแบ่งออกเป็น 2 รูปแบบคือ แบบShared Aggregation และComposite Aggregation

Shared Aggregation หมายถึง ความสัมพันธ์แบบเป็นส่วนหนึ่งของ (a part of ) โดยจะมีคลาสที่ใหญ่ที่สุดเป็นออบเจ็กต์หลัก และมีคลาสอื่น ๆ เป็นส่วนหนึ่งของออบเจ็กต์ ดังรูป  ที่สามารถแยกจากกันได้ แสดงความสัมพันธ์แบบ Aggregation

Shared Aggregation public class Car { private String nameCar; private engine myEngine; private wheel myWheel; public void run( ) }

Composite Aggregation หมายถึง ความสัมพันธ์ที่มีความข้องเกี่ยวกันเสมอ เช่นห้องเรียนจะไม่สามารถมีได้หากไม่มีนักศึกษา ดังรูป

public class ClassRoom { private Sdudent[] studentIn; public String nameclassroom; public String getNameClassRoom( ) return nameclassroom; }

Generalization หมายถึง ความสัมพันธ์ระหว่างคลาสในลักษณะของการสืบทอดคุณสมบัติ จากโครงสร้างคลาสหนึ่งไปยังโครงสร้างอีกคลาสหนึ่ง (SuperClass และ SubClass) ดังรูป

แสดงความสัมพันธ์แบบ Generalization People Student Teacher