Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,41 MB
Nội dung
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Thế lập trình hướng đối tượng? Một số khái niệm quan trọng Các đặc điểm lập trình HĐT Nguyễn Công Huy – Khoa CNTT&TT Thế lập trình hướng đối tượng? Lập trình cổ điển (traditional, procedural) Cấu trúc liệu + Giải thuật = Chương trình Xây dựng liệu toàn cục Viết thủ tục sử dụng DL toàn cục Mục tiêu cuối Có tiến hóa từ: Lập trình tuyến tính => lập trình cấu trúc Tiếp cận theo hướng thủ tục Chú trọng đến thủ tục liệu Nguyễn Công Huy – Khoa CNTT&TT Thế lập trình hướng đối tượng? Lập trình cổ điển Dữ liệu Dữ liệu thủ tục xử lý độc lập Không quan tâm đến mối liên hệ thủ tục liệu Khó chỉnh sửa, thêm liệu thủ tục Gặp khó khăn sử dụng lại Thủ tục Thủ tục Thủ tục Nguyễn Công Huy – Khoa CNTT&TT Thế lập trình hướng đối tượng? Lập trình hướng đối tượng (Object Oriented Programming - OOP) Thuộc tính + Hàm = Đối tượng Các thể hiện, đặc tính, trạng thái đối tượng Các hoạt động, thao tác đối tượng Mục tiêu Phân tích toán thành nhiều đối tượng Quan tâm đến liệu thủ tục Dữ liệu bảo vệ (che giấu) truy xuất từ bên đối tượng Nguyễn Công Huy – Khoa CNTT&TT Thế lập trình hướng đối tượng? Lập trình hướng đối tượng Dữ liệu Hàm Dữ liệu thủ tục xử lý chặc chẽ với Quan tâm đến mối liên hệ thủ tục liệu Dễ chỉnh sửa, thêm liệu hàm đối tượng Mục tiêu tăng cường khả sử dụng lại Đối tượng Dữ liệu Dữ liệu Hàm Hàm Đối tượng Đối tượng Nguyễn Công Huy – Khoa CNTT&TT Thế lập trình hướng đối tượng? Sự trừu tượng hóa (abstraction) Nguyễn Công Huy – Khoa CNTT&TT Thế lập trình hướng đối tượng? Sự trừu tượng hóa (abstraction) Là bước tiến hóa từ lập trình cấu trúc Chỉ quan tâm đến đặc điểm cần thiết (phớt lờ chi tiết) tùy vào ngữ cảnh: VD: Phân tích thông tin Sinh viên: - Trong ngữ cảnh trường học: - Trong ngữ cảnh thi hoa hậu? Chú ý phân biệt: Giao diện cài đặt Cái Phân tích thiết kế Nguyễn Công Huy – Khoa CNTT&TT SinhViên – – – – – – – Mã số sinh viên Họ tên Năm sinh Lớp Ngành Điểm trung bình … Một số khái niệm quan trọng Đối tượng (Object) Trong giới thực, đối tượng thực thể (entity) cụ thể mà thông thường ta sờ, nhìn thấy hay cảm nhận Là thực thể sử dụng máy tính Dùng để mô tả người, vật hay khái niệm Đối tượng mà ứng dụng muốn đề cập đến ”Object is what ever an application wants to talk about.” (Bahrami, Object Oriented Systems Development) Trong hệ thống hướng đối tượng, thứ đối tượng Nguyễn Công Huy – Khoa CNTT&TT Một số khái niệm quan trọng Đối tượng giới thực Tôi xe Thông tin gồm màu, hãng sản xuất, model, giá, chủ xe, … Tôi có khả năng: • Dừng • Chạy • Tăng tốc … Tôi cá Thông tin gồm loài, cân nặng, đơn giá, ngày hết hạn … Nguyễn Công Huy – Khoa CNTT&TT Tôi nhân viên Thông tin gồm họ tên, số CMND, nghề nghiệp, địa chỉ… Tôi có khả năng: • Làm việc • Lãnh lương • Đi nhậu… Tôi có khả năng: • Bơi • Được nấu cháo • Được chiên xù … Một số khái niệm quan trọng Đối tượng giới thực Mọi đối tượng có trạng thái (state) hành động (behavior) Nguyễn Công Huy – Khoa CNTT&TT 10 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (Phần bổ sung) Giới thiệu UML Các loại biểu đồ UML Biểu đồ lớp Nguyễn Công Huy – Khoa CNTT&TT 29 Giới thiệu UML UML (Unified Modeling Language) Tạm dịch ngôn ngữ mô hình hóa thống Ra đời vào năm 1997 sử dụng phổ biến Bao gồm hệ thống ký hiệu đồ họa, biểu đồ (sơ đồ) thống dùng để thiết kế hệ thống thông tin (IS) theo hướng đối tượng Được sử dụng cho giai đoạn phân tích, thiết kế, triển khai kiểm thử phần mềm Các CaseTool (Rational Rose, System Architect, Argo UML, Visual Paradigm for UML, Umbrello…) hỗ trợ UML việc phát sinh chương trình tự động cho ngôn ngữ OOP Nguyễn Công Huy – Khoa CNTT&TT 30 Các loại biểu đồ UML UML Diagram Use Cases Diagram (biểu đồ tình sử dụng) Class Diagram (biểu đồ lớp) Sequence Diagram (biểu đồ trình tự) Collaboration Diagram (biểu đồ cộng tác) State Diagram (biểu đồ trạng thái) Component Diagram (biểu đồ thành phần) Deployment Diagram (biểu đồ triển khai) Nguyễn Công Huy – Khoa CNTT&TT 31 Sơ đồ lớp (Class Diagram) Lớp -: private +: public #: protected KhachHang KhachHang KhachHang hoten: String – ngaysinh: Date – socmnd: Number # diachi: String # tk: TaiKhoan – Nguyễn Công Huy – Khoa CNTT&TT hoten: String – ngaysinh: Date – socmnd: Number # diachi: String # tk: TaiKhoan – + + DangKyTK(tk) ThayDoiDiaChi(dc) Thuộc tính (attribute) Phương thức (method) 32 Sơ đồ lớp (Class Diagram) Lớp dạng giao diện (Class Interface) KhachHang hoten: String – ngaysinh: Date – socmnd: Number # diachi: String # tk: TaiKhoan – + + ATM – – diachi: String trangthai: String DangKyTK(tk) ThayDoiDiaChi(dc) Nguyễn Công Huy – Khoa CNTT&TT 33 Sơ đồ lớp (Class Diagram) Quan hệ kết hợp (Association) KhachHang TaiKhoan hoten: String – ngaysinh: Date – socmnd: Number # diachi: String # tk: TaiKhoan – + + sotaikhoan: Number – sotien: Float # kh: KhachHang # gd: GiaoDich – có DangKyTK(tk) ThayDoiDiaChi(dc) + + MoTK() … Binary association Nguyễn Công Huy – Khoa CNTT&TT 34 Sơ đồ lớp (Class Diagram) Quan hệ kết hợp (Association) Company * work * Person WorkFor - salary Nguyễn Công Huy – Khoa CNTT&TT 35 Sơ đồ lớp (Class Diagram) Quan hệ kết hợp (Association) Năm Lớp SinhVien BangDiem - xeploai - diemkiemtra - diemthuchanh n-ary association Nguyễn Công Huy – Khoa CNTT&TT 36 Sơ đồ lớp (Class Diagram) Quan hệ tập hợp (Aggregation) ĐộiBóng Bao gồm * CầuThủ Khoa Có * BộMôn Aggregation dạng Association Nguyễn Công Huy – Khoa CNTT&TT 37 Sơ đồ lớp (Class Diagram) Quan hệ tổng hợp (Composition) Sách Bìa MụcLục * Chương ChỉMục * Trang * Đoạn Composition dạng Aggregation đặc biệt tổng thể cấu thành hủy bỏ từ thành phần Nguyễn Công Huy – Khoa CNTT&TT 38 Sơ đồ lớp (Class Diagram) Thừa kế (inheritance) CanBoCongChuc NhanVienVP CBGiangDay Nguyễn Công Huy – Khoa CNTT&TT GiangVienDH GiangVien PhucVuGD NghienCuuVien GiangVienChinh 39 Sơ đồ lớp (Class Diagram) Ví dụ Nguyễn Công Huy – Khoa CNTT&TT 40 Sơ đồ lớp (Class Diagram) Ví dụ Nguyễn Công Huy – Khoa CNTT&TT 41 Sơ đồ lớp (Class Diagram) Ví dụ Nguyễn Công Huy – Khoa CNTT&TT 42 Sơ đồ lớp (Class Diagram) Ví dụ Nguyễn Công Huy – Khoa CNTT&TT 43