Tài liệu lập trình hướng đối tượng

12 1.5K 9
Tài liệu lập trình hướng đối tượng

Đ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

Tài liệu lập trình hướng đối tượng

Chương Lập trình hướng đối tượng Chương giới thiệu khái niệm lập trình hướng đối tượng Các khái niệm lớp, đối tượng, thuộc tính, phương thức, thơng điệp, quan hệ chúng thảo luận phần Thêm vào trình bày đặc điểm quan trọng lập trình hướng đối tượng tính bao gói, tính thừa kế, tính đa hình, nhằm giúp người học có nhìn tổng qt lập trình hướng đối tượng 6.1 Giới thiệu Hướng đối tượng (object orientation) cung cấp kiểu để xây dựng phần mềm Trong kiểu này, đối tượng (object) lớp (class) khối xây dựng phương thức (method), thông điệp (message), thừa kế (inheritance) cung cấp chế chủ yếu Lập trình hướng đối tượng (OOP- Object-Oriented Programming) cách tư mới, tiếp cận hướng đối tượng để giải vấn đề máy tính Thuật ngữ OOP ngày trở nên thông dụng lĩnh vực công nghệ thơng tin Khái niệm 6.1 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 dựa kiến trúc lớp đối tượng Nếu bạn chưa sử dụng ngôn ngữ OOP trước tiên bạn nên nắm vững khái niệm OOP viết chương trình Bạn cần hiểu đối tượng (object) gì, lớp (class) gì, chúng có quan hệ với nào, làm để đối tượng trao đổi thông điệp (message) với nhau, vâng OOP tập hợp kỹ thuật quan trọng mà dùng để làm cho việc triển khai chương trình hiệu Q trình tiến hóa OOP sau: Lập trình tuyến tính Lập trình có cấu trúc Sự trừu tượng hóa liệu Lập trình hướng đối tượng Chương 6: Lập trình hướng đối tượng 76 6.2 Trừu tượng hóa (Abstraction) Trừu tượng hóa kỹ thuật trình bày đặc điểm cần thiết vấn đề mà khơng trình bày chi tiết cụ thể hay lời giải thích phức tạp vấn đề Hay nói khác kỹ thuật tập trung vào thứ cần thiết phớt lờ thứ khơng cần thiết Ví dụ thơng tin sau đặc tính gắn kết với người: Tên Tuổi Địa Chiều cao Màu tóc Giả sử ta cần phát triển ứng dụng khách hàng mua sắm hàng hóa chi tiết thiết yếu tên, địa chi tiết khác (tuổi, chiều cao, màu tóc, ) khơng quan trọng ứng dụng 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 chiều cao màu tóc thiết yếu Sự trừu tượng hóa khơng ngừng phát triển ngơn ngữ lập trình, mức liệu thủ tục Trong OOP, việc nâng lên mức cao – mức đối tượng Sự trừu tượng hóa phân thành trừu tượng hóa liệu trừu tượng hóa chương trình Khái niệm 6.2 Trừu tượng hóa liệu (data abstraction) tiến trình xác định nhóm thuộc tính hành động liên quan đến thực thể đặc thù ứng dụng phát triển Trừu tượng hóa chương trình (program abstraction) trừu tượng hóa liệu mà làm cho dịch vụ thay đổi theo liệu 6.3 Đối tượng (object) Các đối tượng chìa khóa để hiểu kỹ thuật hướng đối tượng Bạn nhìn xung quanh thấy nhiều đối tượng giới thực như: chó, bàn, vở, viết, tivi, xe Trong hệ thống hướng đối tượng, thứ đối tượng Một bảng tính, bảng tính, biểu đồ, bảng báo cáo, số hay số điện thoại, tập tin, thư mục, máy in, câu từ, chí ký tự, tất chúng ví dụ đối tượng Rõ ràng viết chương trình hướng đối tượng có nghĩa xây dựng mơ hình Chương 6: Lập trình hướng đối tượng 77 vài phận giới thực Tuy nhiên đối tượng biểu diễn hay mơ hình máy tính Một đối tượng giới thực thực thể cụ thể mà thông thường bạn sờ, nhìn thấy hay cảm nhận Tất đối tượng giới thực có trạng thái (state) hành động (behaviour) Ví dụ: Con chó Xe đạp Trạng thái Tên Màu Giống Vui sướng Bánh Bàn đạp Dây xích Bánh xe Hành động Sủa Vẫy tai Chạy Ăn Tăng tốc Giảm tốc Chuyển bánh Các đối tượng phần mềm (software object) dùng để biểu diễn đối tượng giới thực Chúng mơ hình sau đối tượng giới thực có trạng thái hành động Giống đối tượng giới thực, đối tượng phần mềm có trạng thái hành động Một đối tượng phần mềm có biến (variable) hay trạng thái (state) mà thường gọi thuộc tính (attribute; property) để trì trạng thái phương thức (method) để thực hành động Thuộc tính hạng mục liệu đặt tên định danh (identifier) phương thức chức kết hợp với đối tượng chứa OOP thường sử dụng hai thuật ngữ mà sau Java sử dụng thuộc tính (attribute) phương thức (method) để đặc tả tương ứng cho trạng thái (state) hay biến (variable) hành động (behavior) Tuy nhiên C++ lại sử dụng hai thuật ngữ liệu thành viên (member data) hàm thành viên (member function) thay cho thuật ngữ Xét cách đặc biệt, đối tượng riêng rẽ khơng hữu dụng Một chương trình hướng đối tượng thường gồm có hai hay nhiều đối tượng phần mềm tương tác lẫn tương tác đối tượng trong giới thực Khái niệm 6.3 Đối tượng (object) thực thể phần mềm bao bọc thuộc tính phương thức liên quan Kể từ đây, giáo trình sử dụng thuật ngữ đối tượng (object) để đối tượng phần mềm Hình 6.1 minh họa đối tượng phần mềm: Chương 6: Lập trình hướng đối tượng 78 Hình 6.1 Một đối tượng phần mềm Mọi thứ mà đối tượng phần mềm biết (trạng thái) làm (hành động) thể qua thuộc tính phương thức Một đối tượng phần mềm mô cho xe đạp có thuộc tính để xác định trạng thái xe đạp như: tốc độ 10 km giờ, nhịp bàn đạp 90 vòng phút, bánh bánh thứ Các thuộc tính thơng thường xem thuộc tính thể (instance attribute) chúng chứa đựng trạng thái cho đối tượng xe đạp cụ thể Trong kỹ thuật hướng đối tượng đối tượng cụ thể gọi thể (instance) Khái niệm 6.4 Một đối tượng cụ thể gọi thể (instance) Hình 6.2 minh họa xe đạp mơ đối tượng phần mềm: Hình 6.2 Đối tượng phần mềm xe đạp Đối tượng xe đạp phần mềm có phương thức để thắng lại, tăng nhịp đạp chuyển đổi bánh Nó khơng có phương thức để thay đổi tốc độ tốc độ xe đạp tình từ hai yếu tố số vòng quay bánh Những phương thức thông thường biết phương thước thể (instance method) chúng tác động hay thay đổi trạng thái đối tượng cụ thể Chương 6: Lập trình hướng đối tượng 79 6.4 Lớp (Class) Trong giới thực thơng thường có nhiều loại đối tượng loại Chẳng hạn xe đạp bạn hàng tỉ xe đạp giới Tương tự, chương trình hướng đối tượng có nhiều đối tượng loại chia sẻ đặc điểm chung Sử dụng thuật ngữ hướng đối tượng, nói xe đạp bạn thể lớp xe đạp Các xe đạp có vài trạng thái chung (bánh tại, số vòng quay tại, hai bánh xe) hành động (chuyển bánh răng, giảm tốc) Tuy nhiên, trạng thái xe đạp độc lập khác với trạng thái xe đạp khác Trước tạo xe đạp, nhà sản xuất thường thiết lập bảng thiết kế (blueprint) mô tả đặc điểm yếu tố xe đạp Sau hàng loạt xe đạp tạo từ thiết kế Không hiệu tạo thiết kế cho xe đạp sản xuất Trong phần mềm hướng đối tượng có nhiều đối tượng loại chia sẻ đặc điểm chung là: hình chữ nhật, mẫu tin nhân viên, đoạn phim, … Giống nhà sản xuất xe đạp, bạn tạo bảng thiết kế cho đối tượng Một bảng thiết kế phần mềm cho đối tượng gọi lớp (class) Khái niệm 6.5 Lớp (class) thiết kế (blueprint) hay mẫu ban đầu (prototype) định nghĩa thuộc tính phương thức chung cho tất đối tượng loại Một đối tượng thể cụ thể lớp Trở lại ví dụ xe đạp thấy lớp Xedap bảng thiết kế cho hàng loạt đối tượng xe đạp tạo Mỗi đối tượng xe đạp thể lớp Xedap trạng thái khác với đối tượng xe đạp khác Ví dụ xe đạp bánh thứ khác bánh thứ Lớp Xedap khai báo thuộc tính thể cần thiết để chứa đựng bánh tại, số vòng quay tại, cho đối tượng xe đạp Lớp Xedap khai báo cung cấp thi công cho phương thức thể phép người xe đạp chuyển đổi bánh răng, phanh lại, chuyển đổi số vịng quay, Hình 6.3 Chương 6: Lập trình hướng đối tượng 80 Hình 6.3 Khai báo cho lớp Xedap Sau bạn tạo lớp xe đạp, bạn tạo đối tượng xe đạp từ lớp Khi bạn tạo thể lớp, hệ thống cấp phát đủ nhớ cho đối tượng tất thuộc tính thể Mỗi thể có vùng nhớ riêng cho thuộc tính thể Hình 6.4 minh họa hai đối tượng xe đạp khác tạo từ lớp Xedap: Hình 6.4 Hai đối tượng lớp Xedap Ngồi thuộc tính thể hiện, lớp định nghĩa thuộc tính lớp (class attribute) Một thuộc tính lớp chứa đựng thông tin mà chia sẻ tất thể lớp Ví dụ, tất xe đạp có số lượng bánh Trong trường hợp này, định nghĩa thuộc tính thể để giữ số lượng bánh khơng hiệu tất vùng nhớ thuộc tính thể giữ giá trị Trong trường hợp bạn định nghĩa thuộc tính lớp để chứa đựng số lượng bánh xe đạp.Tất thể lớp Xedap chia thuộc tính Một lớp khai báo phương thức lớp (class methods) Bạn triệu gọi phương thức lớp trực tiếp từ lớp ngược lại bạn phải triệu gọi phương thức thể từ thể cụ thể Chương 6: Lập trình hướng đối tượng 81 Hình 6.5 Lớp thể lớp Khái niệm 6.6 Thuộc tính lớp (class attribute) hạng mục liệu liên kết với lớp cụ thể mà không liên kết với thể lớp Nó định nghĩa bên định nghĩa lớp chia sẻ tất thể lớp Phương thức lớp (class method) phương thức triệu gọi mà không tham khảo tới đối tượng Tất phương thức lớp ảnh hưởng đến tồn lớp khơng ảnh hưởng đến lớp riêng rẽ 6.5 Thuộc tính (Attribute) Các thuộc tính trình bày trạng thái đối tượng Các thuộc tính nắm giữ giá trị liệu đối tượng, chúng định nghĩa đối tượng đặc thù Khái niệm 6.7 Thuộc tính (attribute) liệu trình bày đặc điểm đối tượng Một thuộc tính gán giá trị sau đối tượng dựa lớp tạo Một thuộc tính gán giá trị chúng mô tả đối tượng Mọi đối tượng lớp phải có thuộc tính giá trị thuộc tính khác Một thuộc tính đối tượng nhận giá trị khác thời điểm khác Chương 6: Lập trình hướng đối tượng 82 6.6 Phương thức (Method) Các phương thức thực thi hoạt động đối tượng Các phương thức nhân tố làm thay đổi thuộc tính đối tượng Khái niệm 6.8 Phương thức (method) có liên quan tới thứ mà đối tượng làm Một phương thức đáp ứng chức tác động lên liệu đối tượng (thuộc tính) Các phương thức xác định cách thức hoạt động đối tượng thực thi đối tượng cụ thể tạo ra.Ví dụ, hoạt động chung đối tượng thuộc lớp Chó sủa, vẫy tai, chạy, ăn Tuy nhiên, đối tượng cụ thể thuộc lớp Chó tạo phương thức sủa, vẫy tai, chạy, ăn thực thi Các phương thức mang lại cách nhìn khác đối tượng Khi bạn nhìn vào đối tượng Cửa vào bên môi trường bạn (môi trường giới thực), cách đơn giản bạn thấy đối tượng bất động khơng có khả suy nghỉ Trong tiếp cận hướng đối tượng cho phát triển hệ thống, Cửa vào liên kết tới phương thức giả sử thực Ví dụ, Cửa vào mở, đóng, khóa, mở khóa Tất phương thức gắn kết với đối tượng Cửa vào thực Cửa vào đối tượng khác 6.7 Thơng điệp (Message) Một chương trình hay ứng dụng lớn thường chứa nhiều đối tượng khác Các đối tượng phần mềm tương tác giao tiếp với cách gởi thông điệp (message) Khi đối tượng A muốn đối tượng B thực phương thức đối tượng B đối tượng A gởi thơng điệp tới đối tượng B Ví dụ đối tượng người xe đạp muốn đối tượng xe đạp thực phương thức chuyển đổi bánh đối tượng người xe đạp cần phải gởi thông điệp tới đối tượng xe đạp Đôi đối tượng nhận cần thông tin nhiều để biết xác thực cơng việc Ví dụ bạn chuyển bánh xe đạp bạn bạn phải rõ bánh mà bạn muốn chuyển Các thông tin truyền kèm theo thông điệp gọi tham số (parameter) Chương 6: Lập trình hướng đối tượng 83 Một thơng điệp gồm có: Đối tượng nhận thơng điệp Tên phương thức thực Các tham số mà phương thức cần Khái niệm 6.9 Một thông điệp (message) lời yêu cầu hoạt động Một thông điệp truyền đối tượng triệu gọi hay nhiều phương thức đối tượng khác để yêu cầu thông tin Khi đối tượng nhận thơng điệp, thực phương thức tương ứng Ví dụ đối tượng xe đạp nhận thơng điệp chuyển đổi bánh thực việc tìm kiếm phương thức chuyển đổi bánh tương ứng thực theo yêu cầu thông điệp mà nhận 6.8 Tính bao gói (Encapsulation) Trong đối tượng xe đạp, giá trị thuộc tính chuyển đổi phương thức Phương thức changeGear() chuyển đổi giá trị thuộc tính currentGear Thuộc tính speed chuyển đổi phương thức changeGear() changRpm() Trong OOP thuộc tính trung tâm, hạt nhân đối tượng Các phương thức bao quanh che giấu hạt nhân đối tượng từ đối tượng khác chương trình.Việc bao gói thuộc tính đối tượng bên che chở phương thức gọi đóng gói (encapsulation) đóng gói liệu Đặc tính đóng gói liệu ý tưởng nhà thiết hệ thống hướng đối tượng Tuy nhiên, việc áp dụng thực tế khơng hồn tồn Vì lý thực tế mà đối tượng cần phải phơi bày vài thuộc tính che giấu vài phương thức Tùy thuộc vào ngôn ngữ lập trình hướng đối tượng khác nhau, có điều khiển truy xuất liệu khác Khái niệm 6.10 Đóng gói (encapsulation) tiến trình che giấu việc thực thi chi tiết đối tượng Một đối tượng có giao diện chung cho đối tượng khác sử dụng để giao tiếp với Do đặc tính đóng gói mà chi tiết như: trạng thái Chương 6: Lập trình hướng đối tượng 84 lưu trữ hay hành động thi cơng che giấu từ đối tượng khác Điều có nghĩa chi tiết riêng đối tượng chuyển đổi mà hồn tồn khơng ảnh hưởng tới đối tượng khác có liên hệ với Ví dụ, người xe đạp khơng cần biết xác chế chuyển bánh xe đạp thực làm việc sử dụng Điều gọi che giấu thông tin Khái niệm 6.11 Che giấu thông tin (information hiding) việc ẩn chi tiết thiết kế hay thi công từ đối tượng khác 6.9 Tính thừa kế (Inheritance) Hệ thống hướng đối tượng cho phép lớp định nghĩa kế thừa từ lớp khác Ví dụ, lớp xe đạp leo núi xe đạp đua lớp (subclass) lớp xe đạp Như ta nói lớp xe đạp lớp cha (superclass) lớp xe đạp leo núi xe đạp đua Khái niệm 6.12 Thừa kế (inheritance) nghĩa hành động (phương thức) thuộc tính định nghĩa lớp thừa kế sử dụng lại lớp khác Khái niệm 6.13 Lớp cha (superclass) lớp có thuộc tính hay hành động thừa hưởng hay nhiều lớp khác Lớp (subclass) lớp thừa hưởng vài đặc tính chung lớp cha thêm vào đặc tính riêng khác Các lớp thừa kế thuộc tính hành động từ lớp cha chúng Ví dụ, xe đạp leo núi khơng có bánh răng, số vịng quay phút tốc độ giống xe đạp khác mà cịn có thêm vài loại bánh mà cần thêm thuộc tính gearRange (loại bánh răng) Các lớp định nghĩa lại phương thức thừa kế để cung cấp thi công riêng biệt cho phương thức Ví dụ, xe đạp leo núi cần phương thức đặc biệt để chuyển đổi bánh Chương 6: Lập trình hướng đối tượng 85 Các lớp cung cấp phiên đặc biệt lớp cha mà không cần phải định nghĩa lại lớp hồn tồn Ở đây, mã lớp cha sử dụng lại nhiều lần 6.10.Tính đa hình (Polymorphism) Một khái niệm quan trọng khác có liên quan mật thiết với truyền thơng điệp đa hình (polymorphism) Với đa hình, hành động (phương thức) ứng dụng cho đối tượng thuộc lớp khác đưa đến kết khác Khái niệm 6.14 Đa hình (polymorphism) nghĩa “nhiều hình thức”, hành động tên thực khác đối tượng/các lớp khác Chúng ta xem xét đối tượng Cửa Sổ Cửa Cái Cả hai đối tượng có hành động chung thực đóng Nhưng đối tượng Cửa Cái thực hành động khác với cách mà đối tượng Cửa Sổ thực hành động Cửa Cái khép cánh cửa lại Cửa Sổ hạ cửa xuống Thật vậy, hành động đóng thực hai hình thức khác Một ví dụ khác hành động hiển thị Tùy thuộc vào đối tượng tác động, hành động hiển thị chuỗi, vẽ đường thẳng, hiển thị hình Đa hình có liên quan tới việc truyền thông điệp Đối tượng yêu cầu cần biết hành động để yêu cầu yêu cầu từ đối tượng Tuy nhiên đối tượng yêu cầu không cần lo lắng hành động hoàn thành Bài tập cuối chương 6.1 Trình bày định nghĩa thuật ngữ: Lập trình hướng đối tượng Trừu tượng hóa Đối tượng Lớp Thuộc tính Phương thức Thơng điệp Chương 6: Lập trình hướng đối tượng 86 6.2 Phân biệt khác lớp đối tượng, thuộc tính giá trị, thơng điệp truyền thơng điệp 6.3 Trình bày đặc điểm OOP 6.4 Những lợi ích có thơng qua thừa kế bao gói 6.5 Những thuộc tính phương thức máy giặt 6.6 Những thuộc tính phương thức xe 6.7 Những thuộc tính phương thức hình trịn 6.8 Chỉ đối tượng hệ thống rút tiền tự động ATM 6.9 Chỉ lớp kế thừa từ lớp điện thoại, xe hơi, động vật Chương 6: Lập trình hướng đối tượng 87 ... Khi đối tượng A muốn đối tượng B thực phương thức đối tượng B đối tượng A gởi thông điệp tới đối tượng B Ví dụ đối tượng người xe đạp muốn đối tượng xe đạp thực phương thức chuyển đổi bánh đối tượng. .. dụng thuật ngữ đối tượng (object) để đối tượng phần mềm Hình 6.1 minh họa đối tượng phần mềm: Chương 6: Lập trình hướng đối tượng 78 Hình 6.1 Một đối tượng phần mềm Mọi thứ mà đối tượng phần mềm... ràng viết chương trình hướng đối tượng có nghĩa xây dựng mơ hình Chương 6: Lập trình hướng đối tượng 77 vài phận giới thực Tuy nhiên đối tượng biểu diễn hay mơ hình máy tính Một đối tượng giới thực

Ngày đăng: 16/08/2012, 09:39

Hình ảnh liên quan

để chỉ một đối tượng phần mềm. Hình 6.1 làm ột minh họa của một đối tượng phần mềm:  - Tài liệu lập trình hướng đối tượng

ch.

ỉ một đối tượng phần mềm. Hình 6.1 làm ột minh họa của một đối tượng phần mềm: Xem tại trang 3 của tài liệu.
Hình 6.1 Một đối tượng phần mềm - Tài liệu lập trình hướng đối tượng

Hình 6.1.

Một đối tượng phần mềm Xem tại trang 4 của tài liệu.
có vùng nhớ riêng cho các thuộc tính thể hiện của nó. Hình 6.4 minh họa hai - Tài liệu lập trình hướng đối tượng

c.

ó vùng nhớ riêng cho các thuộc tính thể hiện của nó. Hình 6.4 minh họa hai Xem tại trang 6 của tài liệu.
Hình 6.3 Khai báo cho lớp Xedap - Tài liệu lập trình hướng đối tượng

Hình 6.3.

Khai báo cho lớp Xedap Xem tại trang 6 của tài liệu.
Hình 6.5 Lớp và thể hiện của lớp - Tài liệu lập trình hướng đối tượng

Hình 6.5.

Lớp và thể hiện của lớp Xem tại trang 7 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan