Bài giảng Lập trình hướng đối tượng: Bài 3 - Trừu tượng hóa và đóng gói

44 1 0
Bài giảng Lập trình hướng đối tượng: Bài 3 - Trừu tượng hóa và đóng gói

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Lập trình hướng đối tượng: Bài 3 - Trừu tượng hóa và đóng gói được biên soạn bao gồm các nội dung chính sau: Tìm hiểu bản chất, vai trò của trừu tượng hóa; Tìm hiểu về Đóng gói; Tìm hiểu cách xây dựng lớp, gói. Mời các bạn cùng tham khảo bài giảng.

Bài 3: Trừu tượng hóa Đóng gói Mục tiêu học ❖ Tìm hiểu chất, vai trị trừu tượng hóa ▪ Khái niệm, góc nhìn, so sánh lớp đối tượng ❖ Tìm hiểu Đóng gói ▪ Khái niệm đóng gói, che giấu liệu ▪ Chỉ định truy cập ▪ Phương thức getter/setter ❖ Tìm hiểu cách xây dựng lớp, gói ▪ Xây dựng lớp Java ▪ Quản lý lớp với package ▪ Biểu diễn đối tượng, lớp, gói UML Nội dung Trừu trượng hóa Xây dựng lớp Đóng gói che giấu liệu Nội dung Trừu trượng hóa Xây dựng lớp Đóng gói che giấu liệu 1.1 Trừu tượng hóa ❖ Là nguyên lý lập trình HĐT ❖ Là trình loại bỏ thơng tin quan trọng giữ lại thơng tin quan trọng, có ý nghĩa ❖ loại trừu tượng hóa ▪ Trừu tượng hóa điều khiển ▪ Trừu tượng hóa liệu Đa hình Thừa kế Đóng gói Trừu tượng hóa Hướng đối tượng 1.1 Trừu tượng hóa (2) ❖ Trừu tượng hóa điều khiển: ▪ Sử dụng chương trình (subprogram) luồng điều khiển (control flow) ▪ Ví dụ: a := (1 + 2) * • Nếu khơng có trừu tượng hóa điều khiển, LTV phải tất ghi, bước tính tốn mức nhị phân… ❖ Trừu tượng hóa liệu: ▪ Xử lý liệu theo cách khác tùy toán Trừu tượng hóa liệu ❖ Trừu tượng hóa liệu cách nhìn cách biểu diễn thực thể bao gồm thuộc tính liên quan ngữ cảnh ❖ Dựa vào đặc điểm, thuộc tính để phân biệt thực thể khác ngữ cảnh ❖ Góc nhìn khác (bài tốn khác nhau) đặc điểm, thuộc tính dùng để trừu tượng hóa khác Ví dụ: Điện thoại Nokia ❖ Những thơng tin "đối tượng" này? ▪ Tất điện thoại Nokia ▪ Có loại nắp trượt, có loại nắp gập, có loại dạng bar ▪ Một số điện thoại dòng doanh nhân, số dòng âm nhạc, 3G… ▪ Bàn phím loại tiêu chuẩn, QWERTY khơng có bàn phím ▪ Màu sắc, chất liệu, kích cỡ… khác ▪ v.v… ❖ Tùy tốn, “trích rút” lấy thơng tin quan trọng, phù hợp Ví dụ: Điện thoại Nokia (2) ❖ Các toán khác nhau, u cầu mơ tả tính chất khác điện thoại Liên quan cơng việc Liên quan trị chơi Liên quan âm nhạc Liên quan 3G Ví dụ: Điện thoại Nokia (3) ❖ Có thể trừu tượng hóa nhiều mức 10 Biểu diễn UML (1/3) ❖ Lớp (class) biểu diễn hình chữ nhật với thành phần: Professor ▪ Tên lớp ▪ Thuộc tính ▪ Phương thức - name - employeeID : UniqueId - hireDate - status - discipline - maxLoad + submitFinalGrade() + acceptCourseOffering() + setMaxLoad() + takeSabbatical() + teachClass() 30 Biểu diễn UML (2/3) ❖ Đối tượng: biểu diễn tên đối tượng:tên lớp, giá trị thuộc tính :Student Student - name - address - studentID - dateOfBirth - name = “M Modano” - address = “123 Main St.” - studentID = - dateOfBirth = “03/10/1967” Objects sv2:Student Class - name = “D Hatcher” - address = “456 Oak Ln.” - studentID = - dateOfBirth = “12/11/1969” 31 Biểu diễn UML (3/3) ❖ Biểu diễn gói UML 32 Nội dung Trừu trượng hóa Xây dựng lớp Đóng gói che giấu liệu 33 Đóng gói – Encapsulation (1/3) ❖ Là nguyên lý lập trình HĐT ❖ Dữ liệu/thuộc tính hành vi/phương thức đóng gói lớp Đa hình Thừa kế Đóng gói Trừu tượng hóa Hướng đối tượng 34 Đóng gói (2/3) ❖ Một đối tượng thực thể đóng gói với mục đích: ▪ Cung cấp tập dịch vụ định ▪ Đối tượng đóng gói xem hộp đen – công việc bên ẩn so với client ▪ Dù thay đổi thiết kế/mã nguồn bên giao diện bên ngồi khơng bị thay đổi theo Input Don’t know how it works, but it works! Output 35 Đóng gói (3/3) ❖ Sau đóng gói, đối tượng có hai khung nhìn: ▪ Bên trong: Chi tiết thuộc tính phương thức lớp tương ứng với đối tượng ▪ Bên ngoài: Các dịch vụ mà đối tượng cung cấp cách đối tượng tương tác với phần cịn lại hệ thống Client Methods Data 36 Che giấu liệu ❖ Sử dụng phạm vi truy cập để che giấu liệu: tránh thay đổi trái phép làm sai lệch liệu ❖ Dữ liệu che giấu bên lớp cách gán phạm vi truy cập private Dữ liệu truy cập từ phương thức bên lớp ❖ Các đối tượng khác muốn truy nhập vào liệu riêng tư phải thông qua phương thức lớp có phạm vi truy cập public 37 Che giấu liệu (2) ❖ Để truy cập chỉnh sửa giá trị liệu, lớp cần phải cung cấp phương thức ▪ Accessor (getter): Trả giá trị thuộc tính (dữ liệu) ▪ Mutator (setter): Thay đổi giá trị thuộc tính ▪ Thường getX setX, X tên thuộc tính 38 Phương thức Get ❖ Các phương thức truy vấn Get phương thức dùng để hỏi giá trị thành viên liệu đối tượng ❖ Có nhiều loại câu hỏi truy vấn có thể: ▪ truy vấn đơn giản (“giá trị x bao nhiêu?”) ▪ truy vấn điều kiện (“thành viên x có lớn 10 không?”) ▪ truy vấn dẫn xuất (“tổng giá trị thành viên x y bao nhiêu?”) ❖ Đặc điểm quan trọng phương thức truy vấn khơng nên thay đổi trạng thái đối tượng ▪ không thay đổi giá trị thành viên liệu 39 Phương thức Set ❖ Các phương thức thiết lập Set phương thức dùng để thay đổi giá trị thành viên liệu ❖ Ưu điểm việc sử dụng phương thức setter kiểm sốt tính hợp lệ thành phần liệu ▪ Kiểm tra giá trị đầu vào trước gán vào thuộc tính 40 Ví dụ: phương thức get, set class Student{ private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } } 41 Ví dụ: phương thức get, set (2) class Student{ private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } } class Manager{ private Student[] students; public initialize() { students = new Student[10]; students[0] = new Student(); //students[0].name = “Hung”; error students[0].setName(“Hung”); } } 42 Bài tập ❖ Bài 1: Viết khai báo gói chứa hai lớp: lớp hình vng, lớp hình trịn Viết khai báo lớp hình vng, lớp hình trịn thuộc tính thích hợp, phương thức get/set thích hợp ❖ Bài 2: Viết khai báo lớp Vector gồm thành phần với phương thức cộng/trừ vector, nhân với số, nhân vô hướng vector 43 Bài tập ❖ Bài Viết mã nguồn cho lớp NhanVien hình bên biết: ▪ Lương = Lương * Hệ số lương ▪ Phương thức inTTin() hiển thị thông tin đối tượng NhanVien tương ứng ▪ Phương thức tangLuong(double) tăng hệ số lương lên lượng giá trị tham số double truyền vào Nếu điều làm cho lương nhân viên > lương tối đa cho phép khơng cho phép thay đổi, in thông báo trả false, ngược lại trả true ❖ Viết phương thức get set cho thuộc tính lớp NhanVien NhanVien -tenNhanVien: String -luongCoBan: double -heSoLuong: double +LUONG_MAX: double +tangLuong(double):boolean +tinhLuong(): double +inTTin() 44 ... trượng hóa Xây dựng lớp Đóng gói che giấu liệu 33 Đóng gói – Encapsulation (1 /3) ❖ Là nguyên lý lập trình HĐT ❖ Dữ liệu/thuộc tính hành vi/phương thức đóng gói lớp Đa hình Thừa kế Đóng gói Trừu tượng. .. hình Thừa kế Đóng gói Trừu tượng hóa Hướng đối tượng 34 Đóng gói (2 /3) ❖ Một đối tượng thực thể đóng gói với mục đích: ▪ Cung cấp tập dịch vụ định ▪ Đối tượng đóng gói xem hộp đen – công việc bên... chung đối tượng Mỗi đối tượng có lớp xác định liệu (thuộc tính) hành vi (phương thức) Dữ liệu đối tượng khác khác Một lớp trừu tượng hóa tập đối tượng Đối tượng thể (instance) lớp 14 Lớp vs Đối tượng

Ngày đăng: 26/01/2023, 17:46

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan