Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Công Nghệ Lập Trình Hướng Đối
Tượng 1
OOP(Object Oriented Programming)
Th.s H ình Khồ Đ ả
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tài liệu tham khảo:
[1] Michael A.Smith, Java: an Object-Oriented Language, McGraw-Hill, 2000.
[2] Prof. Alfons Kemper, Ph. D.: Object oriented Data modeling And
programming In java,2000
[3] Copyright by Sams Publishing :Sams Teach Yourself Object Oriented
Programming in 21 Days, 2002
JEDI
Slide Bài Giảng- ĐHCNSG
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Chương 1
Lập Trình Hướng Đối Tượng
OOP(Object Oriented Programming)
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Mục tiêu
Object Oriented Programming
Trừu tượng hóa dữ liệu (Data Abstraction)
Lớp và đối tượng (Class and Object )
Phương thức thiết lập và hủy
(Construction và Destruction )
Persistence, Data encapsulation, Inheritance
và Polymorphism
Thuận lợi.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Object-oriented programmings
Phương pháp thiết kế và hiện thực các hệ thống phần
mềm.
Đặt trọng tâm vào đối tượng.
Đối tượng bao hàm: hành vi và thuộc tính
Đối tượng giao tiếp thông qua thông điệp
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Data Abstraction
Cho phép quản lí tốt hơn các chương trình phức tạp
Functions & Procedures
Modules
Abstract Data Types
Class/Objects
Data Abstract cho phép
Mở rộng ngôn ngữ : Định nghĩa thêm kiểu
Chế tác các thể hiện dữ liệu khác nhau
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Data Abstraction
Các đặc trưng của
Person
Name
Address
Age
Height
Hair color
Các đặc trưng của
Customer
Name
Address
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Data Abstraction (tiếp )
Thuộc tính Hành động
Tên khách hàng Chấp nhận tên khách hàng
Địa chỉ khách hàng Chấp nhận địa chỉ khách hàng
Kiểu xe mua Chấp nhận kiểu xe đặt hàng
Người bán (saleman) Chấp nhận tên người bán
Phát sinh hóa đơn
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Data Abstraction (tiếp…)
Data Abstraction là quá trình nhận diện và nhóm dữ liệu và hành động có liên quan tới một thực thể riêng biệt .
Thuận lợi:
Nhận diện các đặt trưng và hành động thiết yếu
Giúp lọai trừ những chi tiết không cần thiết.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Class
Một Class định nghĩa như là một bản mẫu hay một kiểu chung về một
lọai đối tượng nào đó theo thuộc tính và hành vi.
Class Customer
Tên khách hàng
Địa chỉ khách hàng
Kiểu xe mua
Tên người bán
Chấp nhận tên
Chấp nhận địa chỉ
Chấp nhận lọai xe đặt mua
Chấp nhận tên người bán
Phát sinh hóa đơn
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Class/Object
Message Passing
Generalization/Specialization
Polymorphism
Relationships: Associations, Aggregations
Behaviors
Rules
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Object
Một Object là sự thể hiện của class
Stephen
Boston
Opel Astra
Robin
Stephen là một Object của class Customer
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Object (tiếp…)
Attribute
Những đặc trưng mô tả đối tượng.
Operation
Là một dịch vụ hoặc một hàm đuợc cung cấp bởi mọi thể
hiện của một lớp đối tượng.
Method
Diễn tả cách thức mà một đối tượng vận động, phản ứng
Message
Yêu cầu cho một operation
Event
Tác nhân được gởi từ một object to object khác.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
So Sánh Class và Object
Class định nghĩa một thực thể, trong khi một object là một thực thể thực sự.
Class là một mô hình ý niệm,định nghĩa tất cả đặt trưng và hành động của một object, trong khi đối tượng là một mô hình thực.
Class là một prototype của một object
Tất cả object thuộc về một class đều có đặt trưng và hành động giống nhau.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Phương thức thiết lập (Construction)
A Constructor:
Cấp phát bộ nhớ.
Khởi tạo thuộc tính.
Cho phép truy xuất các thuộc tính và phương thức.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Phương thức hủy bỏ (Destruction)
Quá trình xóa một đối tượng.
A Destructor:
Giải phóng không gian cấp phát.
Cấm truy xuất các thuộc tính và phương thức.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tính bền vững (Persistence)
Tính bền vững là một khả năng của đối tượng để lưu trữ dữ liệu trong thời gian sống của đối tượng.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Bao Bọc và Che Dấu Thông tin
(Encapsulation and information hiding)
Quá trình che dấu sự hiện thực chi tiết của một đối tượng từ
user được gọi là Encapsulation.
Nguyên tắc bao bọc dữ liệu ngăn cấm truy nhập trực tiếp gọi
là sự che dấu thông tin
Thuận lợi:
Tất cả thuộc tính và phương thức được yêu cầu thực hiện
một công việc có thể được khởi tạo.
Chỉ những thuộc tính và/hoặc phương thức được truy xuất
bởi cái khác được hiện rõ.
Tất cả những gì thấy được của đối tượng đã được đóng gói là
các phương thức giao tiếp (interface) của đối tượng.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tính thừa kế (Inheritance)
Cách tổ chức các Classes
Vehicle
Automobile Motorcycle Bus
Sedan Sports Car School BusLuxury Bus
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tính thừa kế (tt)
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tính thừa kế (tt )
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tính thừa kế (tt )
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tính thừa kế (tt…)
Inheritance
Cơ chế cho phép một lớp chia sẽ các thuộc tính và thao tác
được định nghĩa trong một hay nhiều lớp.
Subclass
Là một class thừa kế từ một class khác.
Super class
Là một class mà từ đó một class khác thừa kế những hành
vi của nó.
Multiple Inheritance
Là một class con thừa kế từ một hay nhiều lớp.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Tính Đa Hình (Polymorphism)
Text Line
Picture
Làm thế nào?
Operation
Display
Tính đa hình là một thao tác có thể được cài
đặt khác nhau trong cùng một lớp hay trong
những lớp khác nhau.
Trường Đại học Công nghệ Sài gòn
Khoa Công nghệ Thông tin
Các bước thiết kế
Thiết kế và coding
Thiết kế
Định nghĩa vấn đề.
Thiết kế các đối tượng
Phát triển các giải thuật cho các phương thức
của đối tượng.
Mô tả giải thuật, dùng pseudocode
Viết code
Kiểm tra code
Debug