Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

25 534 0
Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

Đ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

Chương LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mục tiêu Kết thúc chương, học viên có thể:           Định nghĩa Lập trình hướng Đối tượng (Object-oriented Programming) Nhận thức Trừu tượng hóa Dữ liệu (Data Abstraction) Định nghĩa Lớp (Class) Định nghĩa Đối tượng (Object) Nhận thức khác biệt Lớp Đối tượng Nhận thức cần thiết Thiết lập (Construction) Hủy (Destruction) Định nghĩa tính Bền vững (Persistence) Hiểu biết tính Thừa kế (Inheritance) Định nghĩa tính Đa hình (Polymorphism) Liệt kê thuận lợi phương pháp hướng Đối tượng 1.1 Giới thiệu Lập trình hướng Đối tượng (Object-oriented Programming) Lập trình hướng Đối tượng (OOP) phương pháp thiết kế phát triển phần mềm Những ngôn ngữ OOP không bao gồm cú pháp trình biên dịch (compiler) mà cịn có mơi trường phát triển tồn diện Mơi trường bao gồm thư viện thiết kế tốt, thuận lợi cho việc sử dụng đối tượng Đối với ngôn ngữ lập trình hỗ trợ OOP việc triển khai kỹ thuật lập trình hướng đối tượng dễ dàng Kỹ thuật lập trình hướng đối tượng cải tiến việc phát triển hệ thống phần mềm Kỹ thuật đề cao nhân tố chức (fucntionality) mối quan hệ liệu OOP phương thức tư để giải vấn đề máy tính Để đạt kết quả, lập trình viên phải nắn vấn đề thành thực thể quen thuộc với máy tính Cách tiếp cận hướng đối tượng cung cấp giải pháp toàn vẹn để giải vấn đề Hãy xem xét tình cần triển khai thành hệ thống máy vi tính: việc mua bán xe Vấn đề vi tính hóa việc mua bán xe bao gồm gì? Những yếu tố rõ ràng liên quan đến việc mua bán xe là: Chương 1: Lập Trình Hướng Đối Tượng 1) Các kiểu xe (model) 2) Nhân viên bán hàng 3) Khách hàng Những hoạt động liên quan đến việc mua bán: 1) Nhân viên bán hàng đưa khách hàng tham quan phòng trưng bày 2) Khách hàng chọn lựa xe 3) Khách hàng đặt hóa đơn 4) Khách hàng trả tiền 5) Chiếc xe trao cho khách hàng Mỗi vấn đề chia thành nhiều yếu tố, gọi Đối tượng (Objects) Thực thể (Entities) Chẳng hạn ví dụ trên, khách hàng, xe nhân viên bán hàng đối tượng thực thể Lập trình viên ln cố gắng tạo kịch (scenarios) thật quen thuộc với tình đời sống thực Bước thứ đường hướng làm cho máy tính liên kết với đối tượng giới thực Tuy nhiên, máy tính cỗ máy Nó thực cơng việc lập trình mà thơi Vì thế, trách nhiệm lập trình viên cung cấp cho máy tính thơng tin theo cách thức mà nhận thức thực thể nhận thức Đó lãnh vực kỹ thuật hướng đối tượng Chúng ta sử dụng kỹ thuật hướng đối tượng để ánh xạ thực thể gặp phải đời sống thực thành thực thể tương tự máy tính Phát triển phần mềm theo kỹ thuật lập trình hướng đối tượng có khả giảm thiểu lẫn lộn thường xảy hệ thống lãnh vực ứng dụng Lập trình hướng đối tượng đề cập đến liệu thủ tục xử lý liệu theo quan điểm đối tượng Lập trình hướng đối tượng xem xét liệu thực thể đơn vị độc lập, với chất riêng đặc tính thực thể Bây khảo sát hạn từ ‘đối tượng’ (object), ‘dữ liệu’ (data) ‘phương thức’ (method) Có nhiều loại đối tượng khác Chúng ta xem phận khác quan đối tượng Điển hình quan có phận liên quan đến việc quản trị, đến việc kinh doanh, đến việc kế toán, đến việc tiếp thị … Mỗi phận có nhân riêng, nhân trao cho trách nhiệm rõ ràng Mỗi phận Core Java có liệu riêng chẳng hạn thông tin cá nhân, bảng kiểm kê, thể thức kinh doanh, liệu liên quan đến chức phận Rõ ràng quan chia thành nhiều phận việc quản trị nhân hoạt động doanh nghiệp dễ dàng Nhân quan điều khiển xử lý liệu liên quan đến phận Chẳng hạn phận kế toán chịu trách nhiệm lương bổng quan Nếu người đơn vị tiếp thị cần chi tiết liên quan đến lương bổng đơn vị mình, người cần liên hệ với phận kế toán Một người có thẩm quyền phận kế tốn cung cấp thông tin cần biết, thông tin chia sẻ Một người khơng có thẩm quyền từ phận khác khơng thể truy cập liệu, thay đổi làm hư hỏng liệu Ví dụ minh chứng đối tượng hữu dụng việc phân cấp tổ chức liệu Hình 1.1 Minh họa cấu trúc quan điển hình Phịng Nhân Phịng Kế tốn Phịng Kinh doanh Hình 1.1 Khái niệm đối tượng mở rộng đến hầu hết lãnh vực đời sống, nữa, đến giới lập trình Bất kỳ ứng dụng định nghĩa theo hạn từ thực thể đối tượng để tạo tiến trình xử lý mơ theo tiến trình xử lý mà người nghĩ Phương pháp giải ‘top-down’ (từ xuống) gọi ‘lập trình hướng cấu trúc’ (structured programming) Nó xác định chức chương trình chức phân thành đơn vị nhỏ mức độ thấp Bằng kỹ thuật này, chương trình cấu trúc theo hệ thống phân cấp module Mỗi module có đầu vào riêng đầu riêng Trong module, điều khiển có chiều hướng xuống theo cấu trúc khơng có chiều hướng lên Phương pháp OOP cố gắng quản lý việc thừa kế phức tạp vấn đề đời thực Để làm việc này, phương thức OOP che giấu vài thơng tin bên Chương 1: Lập Trình Hướng Đối Tượng đối tượng OOP tập trung trước hết liệu Rồi gắn kết phương thức thao tác liệu, việc xem phần thừa kế việc định nghĩa liệu Bảng 1.1 minh họa khác biệt hai phương pháp: Phương pháp Top-Down OOP Chúng ta xây dựng khách Chúng ta xây dựng tòa nhà 10 sạn tầng với dãy phịng trung bình, sang trọng, phòng họp lớn Chúng ta thiết kế tầng lầu, Chúng ta xây dựng khách sạn với phòng phòng họp thành phần Bảng 1.1 Một ví dụ hai phương pháp giải OOP Structured 1.2 Trừu tượng hóa liệu (Data Abstraction) Khi lập trình viên phải phát triển chương trình ứng dụng khơng có nghĩa người viết mã cho ứng dụng Trước hết, người phải nghiên cứu ứng dụng xác định thành phần tạo nên ứng dụng Kế tiếp, người phải xác định thông tin cần thiết thành phần Hãy khảo sát chương trình ứng dụng cho việc mua bán xe nói Chương trình phải xuất hóa đơn cho xe bán cho khách hàng Để xuất hóa đơn, cần thơng tin chi tiết khách hàng Vậy bước thứ xác định đặc tính khách hàng Một vài đặc tính gắn kết với khách hàng là:      Tên Địa Tuổi Chiều cao Màu tóc Từ danh sách kể trên, xác định đặc tính thiết yếu ứng dụng Bởi đề cập đến khách hàng mua xe, chi tiết thiết yếu là:  Tên  Địa Còn chi tiết khác (chiều cao, màu tóc …) khơng quan trọng ứng dụng Core Java Tuy nhiên, phát triển ứng dụng hỗ trợ cho việc điều tra tội phạm thơng tin chẳng hạn màu tóc thiết yếu Bên cạnh chi tiết khách hàng, thông tin sau cần thiết:  Kiểu xe bán  Nhân viên bán xe Bên cạnh đặc tính khách hàng, xe nhân viên bán hàng, cần liệt kê hành động thực Công việc xuất hóa đơn địi hỏi hành động sau:      Nhập tên khách hàng Nhập địa khách hàng Nhập kiểu xe Nhập tên nhân viên bán xe Xuất hóa đơn với định dạng địi hỏi Khung thơng tin bên cho thấy thuộc tính hành động liên quan đến hóa đơn: Các thuộc tính Tên khách hàng Địa khách hàng Kiểu xe bán Nhân viên bán xe Các hành động Nhập tên Nhập địa Nhập kiểu xe Nhập tên nhân viên bán xe Xuất hóa đơn Định nghĩa Sự trừu tượng hóa liệu tiến trình xác định nhóm thuộc tính hành Chương 1: Lập Trình Hướng Đối Tượng động liên quan đến thực thể đặc thù, xét mối tương quan với ứng dụng phát triển Tiếp theo, muốn ứng dụng tính tốn tiền hoa hồng cho nhân viên bán hàng Những thuộc tính liên kết với nhân viên bán hàng có tương quan với ứng dụng là:  Tên  Số lượng xe bán  Tiền hoa hồng Những hành động địi buộc cơng việc là:  Nhập tên nhân viên bán xe  Nhập số lượng xe bán  Tính tiền hoa hồng kiếm Những thuộc tính Tên Số lượng xe bán Tiền hoa hồng Những hành động Nhập tên Nhập số lượng xe bán Tính tiền hoa hồng Như thế, việc trừu tượng hóa liệu tra đặt câu hỏi ‘Đâu thuộc tính hành động cần thiết cho vấn đề đặt ra?’ 1.2.1 Những thuận lợi việc Trừu tượng hóa Những thuận lợi việc Trừu tượng hóa là:  Tập trung vào vấn đề  Xác định đặc tính thiết yếu hành động đòi hỏi  Giảm thiểu chi tiết khơng cần thiết Core Java Việc trừu tượng hóa liệu cần thiết, khơng thể mơ tất hành động thuộc tính thực thể Vấn đề mấu chốt tập trung đến hành vi cốt yếu áp dụng chúng ứng dụng Chẳng hạn khách hàng nhân viên bán hàng thực hành động sau:  Người lại  Người nói chuyện Tuy nhiên, hành động khơng liên quan đến ứng dụng Việc trừu tượng hóa liệu loại bỏ chúng 1.3 Lớp (Class) Trong ứng dụng mua bán xe, xác định thuộc tính hành động cần có để xuất hóa đơn cho khách hàng Các hành động thuộc tính chung cho khách hàng mua xe Ví thể, chúng nhóm lại thực thể đơn gọi ‘lớp’ Hãy khảo sát lớp có tên ‘khách hàng’ Lớp bao gồm thuộc tính hành động đòi hỏi khách hàng Lớp Khách hàng Tên khách hàng Địa khách hàng Kiểu xe bán Nhân viên bán xe Nhập tên Nhập địa Nhập kiểu xe bán Nhập tên nhân viên bán xe Xuất hóa đơn Định nghĩa Một lớp định nghĩa thực thể theo thuộc tính hành động chung Hoặc Chương 1: Lập Trình Hướng Đối Tượng Những thuộc tính hành động chung thực thể nhóm lại để tạo nên đơn vị gọi lớp Hoặc Một lớp xác định cấp chủng loại thực thể giống Một lớp mơ hình khái niệm thực thể Nó mang tính cách tổng qt khơng mang tính cách đặc thù Khi định nghĩa lớp, muốn phát biểu lớp phải có tập hợp thuộc tính hành động riêng Chẳng hạn định nghĩa lớp đây: Lớp Con người Tên Chiều cao Màu tóc Viết Nói Lớp định nghĩa thực thể ‘Con người’ Mọi thực thể thuộc kiểu ‘Con người’ có đặc tính hành động định nghĩa Một lớp định nghĩa, biết thuộc tính hành động thực thể ‘trơng giống’ lớp Vì thế, tự chất lớp nguyên mẫu (prototype) Một ví dụ khác lớp liên quan đến việc mua bán xe sau: Lớp Nhân viên bán hàng Tên Số lượng xe bán Tiền hoa hồng Nhập tên Nhập số lượng xe bán Tính tiền hoa hồng Lớp định nghĩa thuộc tính hành động đặc trưng cho nhân viên bán xe 1.4 Đối tượng (Object) Core Java Một lớp nguyên mẫu phác họa thuộc tính hành động khả thể thực thể Để sử dụng thực thể mà lớp định nghĩa, phải tạo ‘đối tượng’ từ lớp Lớp khái niệm, đối tượng mẫu thực định nghĩa lớp Hãy khảo sát lớp ‘Khách hàng’ định nghĩa Lớp định nghĩa thuộc tính hành động gắn liền với khách hàng Khi người mua xe cửa hàng, cửa hàng có khách hàng Vào thời điểm ấy, đối tượng giống lớp ‘Khách hàng’ tạo Đối tượng phải có giá trị thực thuộc tính ‘Tên’, ‘Địa chỉ’, ‘Kiểu xe’ … Chẳng hạn khách hàng có tên ‘Mark’, sống ‘London’ mua xe kiểu ‘Honda Civic’ từ nhân viên bán hàng tên ‘Tom’ Như thế, ‘Mark’ đối tượng kiểu ‘Khách hàng’ Định nghĩa: Một đối tượng trường hợp lớp Một đối tượng thực thể cụ thể (thông thường bạn sờ chạm, xem thấy cảm nhận) Kể từ lúc đối tượng hữu, thuộc tính giá trị xác định, hành động định nghĩa cho đối tượng thực thi Trong đối tượng, khía cạnh sau xác định rõ:  Tình trạng (state)  Thái độ (behavior)  Chân tính (identity) Hình 1.2 trình bày hai đối tượng đời thực Con người Xe Tên: Jack Tuổi: 28 Trọng lượng: 65 kgs Kiểu: Ferrari Màu: Đỏ Năm: 1995 Hành động: Đi Nói Suy nghĩ Hành động: Khởi động Ngưng Chuyển động Hình 1.2: Một đối tượng Con người đối tượng Xe Chương 1: Lập Trình Hướng Đối Tượng Mỗi đối tượng có đặc tính riêng mơ tả đối tượng gì, hành động Chẳng hạn thuộc tính đối tượng ‘Con người’ là:  Tên  Tuổi  Trọng lượng Những thuộc tính đối tượng ‘Xe hơi’ là:  Màu sắc  Kiểu xe  Năm Một đối tượng thực số hành động Một xe có khả thực hành động sau:  Khởi động  Ngưng  Chuyển động Để chuyển đổi đối tượng lập trình đối tượng đời thực, cần phải kết hợp thuộc tính hành động đối tượng 1.4.1 Thuộc tính Chúng ta xác định thuộc tính hành động để định nghĩa lớp Một thuộc tính gán cho giá trị, chúng mô tả đối tượng Hãy khảo sát lớp sau: Các thuộc tính lớp Khách hàng Tên khách hàng Địa khách hàng Kiểu xe bán 10 Core Java Nhân viên bán xe Khi thuộc tính ‘Tên’ gán cho giá trị ‘Mark’ mơ tả đối tượng xác định tạo từ lớp ‘Khách hàng’ Định nghĩa Một thuộc tính đặc tính mơ tả đối tượng Như thế, thuộc tính nắm giữ giá trị liệu đối tượng, chúng định nghĩa đối tượng đặc thù Bởi lớp nguyên mẫu thuộc tính lớp khơng thể nắm giữ giá trị Một thuộc tính gán giá trị sau đối tượng dựa lớp tạo Để lưu giữ chi tiết khách hàng, trường hợp (đối tượng) lớp ‘Khách hàng’ phải tạo Các thuộc tính đối tượng hữu đối tượng tạo Mọi đối tượng lớp phải có thuộc tính Khảo sát ví dụ sau: Các thuộc tính lớp Con người Tên Chiều cao Màu tóc = = = Đối tượng tạo từ lớp Con người Mark ft in Black 1.4.2 Hoạt động (Operation) Các hành động khả thi, định nghĩa lớp, gọi ‘các hoạt động’ Định nghĩa Một hoạt động dịch vụ đòi hỏi đối tượng Các hoạt động xác định hành động đòi hỏi đối tượng tạo từ Chương 1: Lập Trình Hướng Đối Tượng 11 lớp Chẳng hạn đòi hỏi hoạt động ‘Mua xe khác’ đối tượng tạo từ lớp ‘Khách hàng’ Một lớp nguyên mẫu Vì thế, lớp hoạt động định nghĩa Còn việc áp dụng hoạt động xảy nơi đối tượng riêng rẽ Chẳng hạn hoạt động ‘Nhập Tên’ mà lớp “Khách hàng’ định nghĩa thực nơi đối tượng Tập hợp hoạt động yêu cầu cho tất đối tượng lớp 1.4.3 Phương thức (Method) Các hoạt động định nghĩa hành động khả thi yêu cầu đối tượng Một phương thức thực thi thực tế hoạt động Định nghĩa Phương thức xác định cách thức hoạt động yêu cầu thực thi Các phương thức xác định cách thức thao tác liệu đối tượng Bởi phương thức thực thi thực tế hoạt động, áp dụng cho đối tượng Một phương thức thuật tốn bước (step-by-step) xác định điều thực hoạt động yêu cầu Hãy khảo sát hoạt động chung thực thể thuộc loại ‘Con người’: Đi, Nói Chỉ đối tượng cụ thể loại ‘Con người’ tạo hành động ‘Đi’, ‘Nói’ thực thi 1.4.4 Thông điệp (Message) Để yêu cầu hoạt động cụ thể thực hiện, thơng điệp gởi tới đối tượng, thông điệp định nghĩa hoạt động Định nghĩa Một thông điệp lời yêu cầu hoạt động Khi đối tượng nhận thơng điệp, thực phương thức tương ứng 12 Core Java Chẳng hạn, đối tượng tạo từ lớp ‘Khách hàng’ để nhập tên người sử dụng Khi đối tượng nhận thông điệp, tìm thực thi phương thức ‘Nhập tên’ Trong trường hợp công ty, phận coi đối tượng Những thông tin chuyển tới đón nhận từ phận (hoặc qua thông báo liên phận, qua thị miệng) tạo nên thông điệp đối tượng Những thị chuyển dịch thành lời gọi hàm chương trình Mức lương? Phịng Kinh doanh Phịng Kế tốn $2000 $2000 Hình 1.3 Các đối tượng gởi thông điệp cho Trong hình 1.3, ‘Kinh doanh’ ‘Kế tốn’ hai phận khác công ty Hai phận coi hai đối tượng khác Thông tin truyền đón nhận phận tạo nên thông điệp đối tượng 1.4.5 Sự kiện (Event) Một kiện việc xảy cho đối tượng thời điểm Để đáp ứng lại kiện ấy, đối tượng thực nhiều phương thức Nói cách khác, kiện tác nhân mà đối tượng gây cho đối tượng khác Chẳng hạn click chuột trái nút Để hiểu rõ kiện, khảo sát ví dụ sau từ đời thực: ‘Một người thét lên bị thọc vật nhọn’ ‘Thọc’ kiện gây phản ứng ‘thét lên’ Trong máy tính, người sử dụng nhấn nút bàn phím kiện chung Sự phản hồi kiện việc hiển thị ký tự tương ứng hình Chương 1: Lập Trình Hướng Đối Tượng 13 1.5 Lớp Đối tượng Có khác biệt thực lớp đối tượng Cần nhận thức rõ khác biệt Một lớp định nghĩa thực thể, đối tượng trường hợp thực thể Đối tượng mơ hình thực, lớp mơ hình khái niệm - định nghĩa tất thuộc tính phương thức đòi hỏi đối tượng Tất đối tượng thuộc lớp có thuộc tính phương thức Một lớp nguyên mẫu đối tượng Nó xác định hành động khả thi thuộc tính cần thiết cho nhóm đối tượng đặc thù 1.6 Thiết lập (Construction) Hủy (Destruction) 1.6.1 Thiết lập Một lớp cung cấp định nghĩa thuộc tính phương thức khả thi Các thuộc tính phương thức truy cập đối tượng dựa lớp tạo Khi đối tượng tạo, thuộc tính trở nên thực gán giá trị Tương tự, phương thức định nghĩa áp dụng Định nghĩa Thiết lập tiến trình thực hóa đối tượng Hàm thiết lập phương thức đặc biệt phải gọi trước sử dụng phương thức lớp Hàm Thiết lập khởi tạo thuộc tính, cấp phát nhớ máy tính cần thiết Mỗi lớp có hàm thiết lập Khảo sát lại trường hợp cửa hàng bán xe Ngay từ lúc đầu định nghĩa lớp Cho đến khách hàng mua xe cửa hàng đối tượng giống lớp ‘Khách hàng’ tạo 14 Core Java Khi đối tượng tạo, số khoảng trống nhớ cấp phát cho thuộc tính để lưu trữ giá trị gán cho thuộc tính (‘Tên’, ‘Địa chỉ’ …) Hàm thiết lập thực việc cấp phát Vào lúc này, thuộc tính phương thức đối tượng sẵn sàng để sử dụng Tương tự trường hợp học sinh nhập học trường học Khi học sinh nhập học, vài hành động thực để nhận học sinh vào trường Đó là:  Xếp lớp cho học sinh  Ghi tên học sinh vào danh sách  Xếp chỗ ngồi Đây hành động đồng loạt thực lúc bắt nhập học Chúng tương tự với hành động mà hàm thiết lập đối tượng thực 1.6.2 Hủy Khi đối tượng khơng cịn cần thiết bị hủy bỏ Sẽ lãng phí tài nguyên, chẳng hạn nhớ, tiếp tục đối tượng tồn khơng cịn cần thiết Định nghĩa Hàm Hủy phương thức đặc biệt dùng để hủy bỏ đối tượng Tiến trình Hủy tiêu hủy đối tượng giải phóng khoảng trống nhớ mà hàm thiết lập cấp phát cho Hàm Hủy triệt tiêu khả truy cập đến đối tượng Một đối tượng bị hủy thuộc tính khơng thể truy cập, khơng phương thức thực thi Chẳng hạn, trường hợp bán xe hơi, nhân viên bán hàng bỏ nghề, chi tiết người khơng cịn liên hệ Vì thế, đối tượng tương ứng bị hủy Điều giải phóng nhớ cấp phát cho nhân viên bán hàng Khoảng trống tái sử dụng Hãy xem xét ví dụ trường học Khi học sinh học, tên học sinh bị loại khỏi danh sách, khoảng trống giải phóng tái cấp phát Chương 1: Lập Trình Hướng Đối Tượng 15 Các hành động đồng loạt tương tự với công việc hàm hủy đối tượng 1.7 Tính Bền vững (Persistence) Hãy khảo sát trường hợp bán xe Những chi tiết khách hàng lưu trữ xe phân phối.Việc trì liệu cần thiết liệu chỉnh sửa hủy bỏ thức Định nghĩa Tính Bền vững khả lưu trữ liệu đối tượng đối tượng không tồn Cửa hàng bán xe lưu trữ chi tiết khách hàng vào file Những chi tiết tồn file chúng bị hủy, thân file bị hủy Chúng ta đụng chạm tính bền vững ngày Hãy xem việc sáng tác thơ Bài thơ liệu tồn tâm trí nhà thơ Bao lâu nhà thơ cịn tồn lâu thơ cịn tồn Nếu thơ muốn tồn sau nhà thơ qua đời phải viết giấy Bài thơ viết giấy tạo nên bền vững Bài thơ tồn văn cịn trì Bài thơ khơng cịn tồn tờ giấy bị xé rách, chữ nghĩa bị xóa 1.8 Tính Đóng gói liệu Tiến trình trừu tượng hóa liệu hỗ trợ cho việc xác định thuộc tính phương thức thiết yếu Thông thường, đối tượng sử dụng thuộc tính phương thức khơng địi hỏi người sử dụng đối tượng Chẳng hạn trường hợp lớp ‘Khách hàng’ Lớp có phương thức xuất hóa đơn Giả sử hóa đơn xuất, chi tiết in hóa đơn ngày phân phối Tuy nhiên khơng biết thuộc tính qua xác định thơng tin Ngày phân phối phát sinh bên đối tượng, hiển thị hóa đơn Như người sử dụng không nhận thức cách thức mà ngày phân phối hiển thị 16 Core Java Ngày phân phối xử lý theo cách sau:  Đó giá trị tính tốn - Chẳng hạn, 15 ngày kể từ ngày đặt hàng  Đó giá trị cố định – Xe phân phối vào ngày mùng tháng Đối tượng sử dụng thuộc tính phương thức mang tính nội Bởi thuộc tính phương thức che khuất khỏi tầm nhìn Các đối tượng khác người sử dụng khơng nhận thức thuộc tính / phương thức có tồn hay khơng Tiến trình che giấu thuộc tính, phương thức, chi tiết việc thi hành gọi ‘đóng gói’ (encapsulation) Định nghĩa Đóng gói tiến trình che giấu việc thực thi chi tiết đối tượng người sử dụng đối tượng Việc đóng gói phân tách khía cạnh truy cập từ bên ngồi với khía cạnh sử dụng nội đối tượng Điểm thuận lợi việc đóng gói tạo thuộc tính hay phương thức cần thiết để đáp ứng địi hỏi cơng việc xây dựng lớp Mặt khác, thuộc tính / phương thức truy cập từ bên ngồi lớp trơng thấy Một ví dụ khác việc đóng gói lớp ‘Nhân viên bán hàng’ định nghĩa Khi phương thức tính tiền hoa hồng thực thi, người sử dụng khơng biết chi tiết việc tính tốn Tất họ biết tổng số tiền hoa hồng mà họ phải trả cho nhân viên bán hàng Một trường hợp đóng gói mà gặp đời sống ngày việc giao dịch kinh doanh cửa hàng Khách hàng yêu cầu sản phẩm X Họ trao cho sản phẩm X, họ phải trả tiền cho sản phẩm Sau khách hàng yêu cầu sản phẩm, người bán hàng thực hành động sau:  Kiểm tra mặt hàng kệ hàng  Giảm số lượng mặt hàng bảng kiểm kê sau bán Tuy nhiên, khách hàng chi tiết 1.9 Tính thừa kế Chương 1: Lập Trình Hướng Đối Tượng 17 Hãy khảo sát lớp sau: Lớp Sinh viên Tên Địa Điểm môn Điểm môn Nhập tên Nhập địa Nhập điểm Tính tổng điểm Lớp Nhân viên Tên Địa Lương Chức vụ Nhập tên Nhập địa Nhập chức vụ Tính lương Lớp Khách hàng Tên Địa Kiểu xe bán Nhập tên Nhập địa Nhập kiểu xe Xuất hóa đơn Trong tất ba lớp, thấy có vài thuộc tính hoạt động chung Chúng ta muốn nhóm thuộc tính hoạt động lại, định nghĩa chúng lớp ‘Người’ Lớp Người Tên Địa Nhập tên Nhập địa Ba lớp ‘Sinh viên’, ‘Nhân viên’ ‘Khách hàng’ tạo nên lớp ‘Người’ Nói cách khác, ba lớp có tất thuộc tính phương thức lớp ‘Người’, ngồi chúng cịn có thuộc tính phương thức riêng Chúng ta cần phải định nghĩa lớp ‘Người’ sử dụng định nghĩa lớp ‘Sinh viên’, ‘Nhân viên’ ‘Khách hàng’ Chúng ta xây dựng lớp ‘Người’ với thuộc tính hoạt động trình bày hình Kế tiếp, xây dựng lớp ‘Khách hàng’ bao gồm lớp ‘Người’ cộng với thuộc tính phương thức riêng Chúng ta định nghĩa lớp ‘Sinh viên’ ‘Nhân viên’ theo cách thức Như thế, ba lớp ‘Khách hàng’, ‘Sinh viên’ ‘Nhân viên’ chia sẻ thuộc tính phương thức mà lớp ‘Người’ cung cấp Lớp Sinh viên 18 Lớp Nhân viên Lớp Khách hàng Core Java Điểm mơn Điểm mơn Nhập điểm tính tổng điểm Lương Chức vụ Nhập chức vụ Tính lương Kiểu xe bán Nhập kiểu xe Xuất hóa đơn Theo ngôn ngữ hướng đối tượng, lớp ‘Khách hàng’ gọi thừa kế lớp ‘Người’ Định nghĩa: Tính thừa kế cho phép lớp chia sẻ thuộc tính phương thức định nghĩa nhiều lớp khác Có hai khái niệm quan trọng khác liên kết với tính thừa kế Lớp ‘Khách hàng’ lớp ‘Người’ cộng thêm khác Như thế, lớp ‘Khách hàng’ có tất thuộc tính phương thức định nghĩa lớp ‘Người’ cộng với thuộc tính hoạt động riêng Trong ví dụ này, lớp ‘Khách hàng’ gọi ‘lớp con’ (subclass) Định nghĩa: Lớp thừa hưởng từ lớp khác gọi Subclass Trong ví dụ trên, lớp ‘Người’ coi ‘lớp trên’ (superclass) Định nghĩa: Một Superclass lớp mà đặc tính lớp khác thừa hưởng Hãy xem xét ví dụ lớp ‘Các động vật’ hình 1.4 ‘Các động vật’ lớp mà lớp khác kế thừa Chúng ta có dãy lớp trung gian – ‘Cơn trùng’, ‘Hữu nhũ’, ‘Bị sát’, ‘Lưỡng cư’ - mà dãy lớp kế thừa Các lớp ‘Côn trùng’, ‘Hữu nhũ’, ‘Bò sát’, ‘Lưỡng cư’ lớp lớp ‘Các động vật’ Như thế, lớp có tất thuộc tính hoạt động lớp ‘Các động vật’, cộng thêm thuộc tính phương thức riêng chúng Lớp ‘Hữu nhũ’ lớp mà lớp ‘Con người’ ‘Khác người’ thừa kế Như thế, Các lớp lớp ‘Con người’ ‘Khác người’động vật lớp ‘Hữu nhũ’ Côn trùng Hữu nhũ Chương 1: Lập Trình Hướng Đối Tượng Con người Khác người Bị sát Lưỡng cư 19 Hình 1.4 Tính thừa kế 1.9.1 Tính Đa Thừa kế Trong tất ví dụ trên, lớp thừa kế từ lớp Ngay ví dụ thừa kế loại phương tiện di chuyển, lớp có lớp cha Trường hợp gọi ‘thừa kế đơn’ (single inheritance) Trong ‘đa thừa kế’, lớp thừa kế từ hai hay nhiều lớp cha Hãy khảo sát ví dụ sau: Lớp Đường thẳng Khởi điểm Điểm tận Vẽ đường thẳng + Lớp Đường trịn Bán kính Tâm điểm Vẽ đường trịn Lớp Hình ảnh + Hình ảnh Vẽ hình ảnh Lớp Vẽ hình = Nhận hình vẽ Vẽ hình Trong hình trên, xây dụng lớp ‘Vẽ hình’, lớp thừa hưởng ba lớp: ‘Đường thẳng’, ‘Đường tròn’, ‘Hình ảnh’ Như lớp ‘Vẽ hình’ kết hợp chức ba lớp thêm vào chức định nghĩa bên Lớp ‘Vẽ hình’ ví dụ tính đa thừa kế Có thể sử dụng tính đa thừa kế để xây dựng lớp mới, lớp dẫn xuất chức từ vài lớp khác Như thế, xét theo góc cạnh người sử dụng lớp này, cần lớp mà cung cấp tất chức Như vậy, họ không cần phải sử dụng nhiều đối tượng khác 20 Core Java Sự thuận lợi quan trọng tính thừa kế thúc đẩy việc tái sử dụng mã chương trình Trong ví dụ trên, có ba lớp ‘Đường thẳng’, ‘Đường trịn’ ‘Hình ảnh’ Giả thiết ba người khác xây dựng ba lớp riêng biệt Bây giờ, người sử dụng cần xây dựng lớp để vẽ đường thẳng, vẽ đường trịn hiển thị hình ảnh Vì họ tìm kiếm xem có lớp đáp ứng tất yêu cầu Nếu có lớp cung cấp chức thỏa yêu cầu người sử dụng thừa kế lớp để tạo lớp Giờ người sử dụng cịn phải viết mã chương trình cho đặc tính chưa có sau tiến trình thừa kế Người sử dụng sử dụng ba lớp Tuy nhiên, thừa kế cung cấp bó chức hỗn độn lớp 1.10 Tính Đa hình Trong chương trình có cấu trúc (a structured program), phương thức ứng dụng cho đối tượng Chẳng hạn xét toán tử ‘Cộng’ Toán tử tính tổng hai số nguyên Khi truyền hai giá trị hiển thị Chúng ta khơng thể có loại tốn tử ‘Cộng’ để tính tổng hai giá trị văn (text) ‘Hello!’ ‘How are you?’ để có chuỗi văn kết ‘Hello! How are you?’ Trong hệ thống hướng đối tượng tình mơ tả khả thể Định nghĩa Tính đa hình cho phép phương thức có tác động khác nhiều loại đối tượng khác Với tính đa hình, phương thức ứng dụng cho đối tượng thuộc lớp khác đưa đến kết khác Bản chất việc phương thức bao gồm số lượng tham số Tính đa hình đặc tính quan trọng hệ thống hướng đối tượng Một ví dụ khác Hình thể thức hiển thị Tùy thuộc lớp tượng tác động, phương thức Lớp: phương Các vào đối hiển thị chuỗi, vẽ đường thẳng, hiển thị hình ảnh Hãy Các phương khảo sát hình sau: thức: Vẽ Di chuyển Khởi tạo Chương 1: Lập Trình Hướng Đối Tượng Hình 1.5: Lớp ‘Hình thể’ lớp 21 Hình cho thấy ‘Vẽ’ phương thức chia sẻ lớp lớp ‘Hình thể’ Tuy nhiên, phương thức Vẽ ứng dụng cho hình hộp khác với hình êlip Tính đa hình hỗ trợ tính đóng gói Xét mức độ người sử dụng, họ cần phương thức ‘Vẽ’ lớp ‘Hình thể’ Cịn cách thức mà phương thức ‘Vẽ’ thực thi cho trường hợp khác họ khơng cần biết 1.11 Những thuận lợi Phương pháp hướng Đối tượng Lập trình hướng đối tượng đòi hỏi chuyển hướng quan trọng tư lập trình viên Phương pháp làm cho tốc độ phát triển chương trình nhanh hơn, sử dụng cách đắn phương pháp cải tiến việc trì, việc tái sử dụng việc đánh giá phần mềm Những điểm thuận lợi phương pháp hướng đối tượng là:  Phương pháp tiến hành tiến trình phân tích, thiết kế phát triển vấn đề khuôn khổ khái niệm thuật ngữ thuộc lãnh vực ứng dụng Vì thế, có tương hợp cao việc phát triển ứng dụng vấn đề thực tế  Chẳng hạn trường hợp bán xe hơi, giai đoạn việc phân tích, thiết kế phát triển ứng dụng, ln ln có tiếng nói khách hàng, nhân viên bán hàng …  Phương pháp hỗ trợ việc chia sẻ bên ứng dụng 22 Core Java  Phương pháp hỗ trợ việc tái sử dụng đối tượng ứng dụng phát triển Đây thuận lợi quan trọng xét khía cạnh giảm thiểu chi phí có ý nghĩa lâu dài  Chẳng hạn hành vi khách hàng mơ hình hóa ứng dụng sử dụng lại cho ứng dụng liên hệ có bao gồm mơ hình khách hàng  Phương pháp giảm thiểu lỗi vấn đề liên quan đến việc bảo trì ứng dụng khả tái sử dụng đối tượng  Phương pháp tăng tốc tiến trình thiết kế phát triển, lần kết việc tái sử dụng đối tượng Chương 1: Lập Trình Hướng Đối Tượng 23 Tóm tắt học  Lập trình hướng Đối tượng cách tư để giải vấn đề với máy vi tính Thay nỗ lực đưa vấn đề vào khn khổ quen thuộc với máy vi tính, phương pháp hướng đối tượng tìm kiếm giải pháp tồn vẹn cho vấn đề  Sự trừu tượng hóa liệu tiến trình xác định nhóm thuộc tính phương thức liên quan đến thực thể đặc thù, tương quan với ứng dụng  Một lớp định nghĩa thực thể theo thuộc tính phương thức chung  Một đối tượng trường hợp lớp  Một lớp định nghĩa thực thể, đối tượng thực thể thực  Tiến trình thực hóa đối tượng gọi Thiết lập (Construction)  Tiến trình hủy bỏ đối tượng gọi Hủy (Destruction)  Tính bền vững khả lưu trữ liệu đối tượng vượt thời gian tồn đối tượng  Việc đóng gói tiến trình che giấu việc thực thi chi tiết đối tượng người sử dụng đối tượng  Tính thừa kế chế cho phép lớp chis sẻ thuộc tính phương thức định nghĩa nhiều lớp khác  Tính đa hình thuộc tính cho phép phương thức có tác động khác nhiều đối tượng khác  Phương pháp hướng đối tượng đưa tiến trình phân tích, thiết kế phát triển ứng dụng khuôn khổ khái niệm thuật ngữ thuộc lãnh vực ứng dụng 24 Core Java Kiểm tra tiến Sự trừu tượng hóa liệu đồng nghĩa với che giấu liệu Đúng/Sai Định nghĩa Trừu tượng hóa liệu Việc đóng gói liệu che giấu chi tiết thực thi đối tượng khác Đúng/Sai Tính đa hình cho phép tạo đối tượng khác với tên Đúng/Sai Mỗi đối tượng có _ xác định rõ Tất đối tượng lớp có tập hợp thuộc tính Đúng/Sai Một đối tượng định nghĩa thực thể, lớp thực thể cụ thể Đúng/Sai Định nghĩa tính Đa hình Bài tập Thiết kế thành phần hành động khách hàng thực giao dịch ATM (Automatic Teller Machine) Liệt kê thuộc tính phương thức cần có để vẽ hình đa giác Chương 1: Lập Trình Hướng Đối Tượng 25 ... ứng hình Chương 1: Lập Trình Hướng Đối Tượng 13 1. 5 Lớp Đối tượng Có khác biệt thực lớp đối tượng Cần nhận thức rõ khác biệt Một lớp định nghĩa thực thể, đối tượng trường hợp thực thể Đối tượng. .. tái sử dụng đối tượng  Phương pháp tăng tốc tiến trình thiết kế phát triển, lần kết việc tái sử dụng đối tượng Chương 1: Lập Trình Hướng Đối Tượng 23 Tóm tắt học  Lập trình hướng Đối tượng cách... khơng cần biết 1. 11 Những thuận lợi Phương pháp hướng Đối tượng Lập trình hướng đối tượng địi hỏi chuyển hướng quan trọng tư lập trình viên Phương pháp làm cho tốc độ phát triển chương trình nhanh

Ngày đăng: 26/01/2014, 06:20

Hình ảnh liên quan

có những dữ liệu riêng chẳng hạn như thông tin cá nhân, bảng kiểm kê, những thể thức kinh doanh, hoặc bất kỳ dữ liệu nào liên quan đến chức năng của bộ phận đó - Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

c.

ó những dữ liệu riêng chẳng hạn như thông tin cá nhân, bảng kiểm kê, những thể thức kinh doanh, hoặc bất kỳ dữ liệu nào liên quan đến chức năng của bộ phận đó Xem tại trang 3 của tài liệu.
1.4 Đối tượng (Object) - Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

1.4.

Đối tượng (Object) Xem tại trang 8 của tài liệu.
Hình 1.2 trình bày hai đối tượng đời thực. - Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

Hình 1.2.

trình bày hai đối tượng đời thực Xem tại trang 9 của tài liệu.
Trong hình 1.3, ‘Kinh doanh’ và ‘Kế toán’ là hai bộ phận khác nhau trong một công ty. Hai bộ phận này được coi là hai đối tượng khác nhau - Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

rong.

hình 1.3, ‘Kinh doanh’ và ‘Kế toán’ là hai bộ phận khác nhau trong một công ty. Hai bộ phận này được coi là hai đối tượng khác nhau Xem tại trang 13 của tài liệu.
Hãy xem xét ví dụ về lớp ‘Các động vật’ ở hình 1.4. ‘Các động vật’ là lớp trên cùng mà các lớp khác kế thừa - Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

y.

xem xét ví dụ về lớp ‘Các động vật’ ở hình 1.4. ‘Các động vật’ là lớp trên cùng mà các lớp khác kế thừa Xem tại trang 19 của tài liệu.
Hình 1.4 Tính thừa kế 1.9.1 Tính Đa Thừa kế - Tài liệu Chương 1 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG docx

Hình 1.4.

Tính thừa kế 1.9.1 Tính Đa Thừa kế Xem tại trang 20 của tài liệu.

Từ khóa liên quan

Mục lục

  • Chương 1

  • LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

    • Mục tiêu

      • OOP

      • Bảng 1.1 Một ví dụ về hai phương pháp giải quyết OOP và Structured

        • Định nghĩa

        • Định nghĩa

        • Định nghĩa: Một đối tượng là một trường hợp của một lớp.

        • Định nghĩa

        • Định nghĩa

        • Định nghĩa

        • Định nghĩa

        • Định nghĩa

        • Định nghĩa

        • Định nghĩa

        • Định nghĩa: Tính thừa kế cho phép một lớp chia sẻ các thuộc tính và các phương thức được định nghĩa trong một hoặc nhiều lớp khác.

        • Định nghĩa: Lớp thừa hưởng từ một lớp khác được gọi là Subclass.

        • Định nghĩa: Một Superclass là một lớp mà các đặc tính của nó được một lớp khác thừa hưởng.

        • Hình 1.4 Tính thừa kế

          • Định nghĩa

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

Tài liệu liên quan