1. Trang chủ
  2. » Cao đẳng - Đại học

Slide lập trình hướng đối tượng đại học bách khoa hà nội chương 3 trừu tượng hóa và đóng gói

45 21 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 1,3 MB

Nội dung

BỘ MÔN CÔNG NGHỆ PHẦN MỀM VIỆN CNTT & TT TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI IT3100 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 03 Trừu tượng hóa Đóng gói CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung Trừu trượng hóa Đóng gói Xây dựng lớp gói CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/ Trừu tượng hóa CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Trừu tượng hóa Đa hình Thừa kế Đóng gói • Trừu tượng hóa điều khiển • Trừu tượng hóa liệu Trừu tượng hóa • Là nguyên lý lập trình HĐT • Là q trình loại bỏ thơng tin quan trọng giữ lại thông tin quan trọng, có ý nghĩa với tốn Hướng đối tượng • loại trừu tượng hóa CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Trừu tượng hóa (2) • Trừu tượng hóa điều khiển: • Bằng cách 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 tốn CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.2 Trừu tượng hóa liệu – Góc nhìn • 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ: Điện thoại Nokia (2) • Các tố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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ: Điện thoại Nokia (3) • Có thể trừu tượng hóa nhiều mức 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.1.3 Khai báo Phương thức • Khai báo: tương tự khai báo hàm • Cú pháp phamViTruyCap kiểuTrảVề tênPhươngThức (ds tham số) { // Nội dung phương thức } • Ví dụ boolean 31 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.1.3 Khai báo Phương thức (2) • Mỗi phương thức phải có chữ ký riêng, phân biệt phương thức, gồm: • Tên phương thức • Số lượng tham số kiểu chúng 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.1.3 Khai báo Phương thức (3) • Khi phương thức trả giá trị đối tượng bắt buộc phải có câu lệnh return để trả điều khiển cho đối tượng gọi phương thức • Nếu phương thức khơng trả giá trị (void) không cần câu lệnh return • Có thể có nhiều lệnh return phương thức; câu lệnh mà chương trình gặp thực thi 33 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ - Khai báo phương thức Public boolean checkOdd(int i) { if (i %2 ==0) return true; else return false; } Public boolean checkOdd(int i) { return true; return false; //error } 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ - Khai báo lớp class BankAccount { private String owner; private double balance; public boolean debit(double amount){ if (amount > balance) return false; else { balance -= amount; return true; } } public void credit(double amount){ balance += amount; } } 35 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.1.4 Phạm vi truy cập thuộc tính/phương thức • Phạm vi truy cập thuộc tính/phương thức • public: Thuộc tính phương thức truy cập từ đâu, kể bên ngồi lớp, ngồi gói chứa lớp • khơng có định: Thuộc tính phương thức truy cập từ bên package chứa lớp • private: Thuộc tính phương thức truy cập phạm vi lớp • protected: Thuộc tính phương thức truy cập phạm vi lớp từ lớp kế thừa lớp 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.2 Xây dựng gói • Các lớp nhóm lại thành package • Package bao gồm tập hợp lớp có quan hệ logic với • Gói (package) giống thư mục giúp: • Tổ chức xác định vị trí lớp dễ dàng sử dụng lớp cách phù hợp • Tránh cho việc đặt tên lớp bị xung đột (trùng tên) • Các package khác chứa lớp có tên • Bảo vệ lớp, liệu phương thức mức rộng so với mối quan hệ lớp • Cịn gọi khơng gian tên (namespace) số ngơn ngữ lập trình (C++…) 37 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.2 Xây dựng gói • Một số package có sẵn Java: java.lang, javax.swing, java.io… • Package ta tự đặt • Cách dấu “.” • Quy ước sử dụng ký tự thường để đặt tên package • Tên gói phải viết file mã nguồn • Chỉ phép có câu khai báo gói file mã nguồn, khai báo áp dụng cho tất liệu file • Một gói đặt gói khác • Phân cách dấu • Ví dụ package trungtt.oop.k59; 38 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.2.1 Khai báo gói • Cú pháp khai báo: package tenpackage; chi_dinh_truy_cap class TenLop { // Than lop } • chi_dinh_truy_cap: • public: Lớp truy cập từ đâu, kể bên ngồi package chứa lớp • Khơng định: Lớp truy cập từ bên package chứa lớp package oop.k52.cnpm; public class Student { … } CuuDuongThanCong.com https://fb.com/tailieudientucntt 39 3.3 Biểu diễn UML • 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() 40 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.3 Biểu diễn UML (2) • Đố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 - name = “D Hatcher” - address = “456 Oak Ln.” - studentID = - dateOfBirth = “12/11/1969” Class 41 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.3 Biểu diễn UML (3) • Biểu diễn gói UML UML 1.5 UML 2.0 42 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập NhanVien -tenNhanVien: String -luongCoBan: double • 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 -heSoLuong: double +LUONG_MAX: double +tangLuong(double):b oolean +tinhLuong(): double +inTTin() • 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 44 CuuDuongThanCong.com https://fb.com/tailieudientucntt 45 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... https://fb.com/tailieudientucntt 1/ Trừu tượng hóa CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Trừu tượng hóa Đa hình Thừa kế Đóng gói • Trừu tượng hóa điều khiển • Trừu tượng hóa liệu Trừu tượng hóa • Là... (Class) cách phân loại đối tượng dựa đặc điểm chung đối tượng • Lớp kết q trình trừu tượng hóa liệu • Lớp định nghĩa kiểu liệu mới, trừu tượng hóa tập đối tượng • Một đối tượng gọi thể lớp • Lớp... tính phương thức 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)

Ngày đăng: 06/07/2021, 16:43

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN