Chương 1 trình bày những vấn để sau: r Thao luận vê cách tiếp cận hướng đối tượng, những nhược điêm cua lập trinh truyến thong và các đặc điẻm cua lập trinh hướng đối tượng. > Các khái niệm cơ sơ cua phương pháp hưởng đối lượng: • Đoi tượng • Lớp • Trừu lượng hóa dữ liệu và bao gói thông tin • Kế thừa • Tương ứng bội • Liên kết động • Truyẽn thông báo > Các bước cần thiết đế thiết kế chương trình theo hướng đổi tượng > Các ưu điẽm cùa ìập trình hướng đổi tượng > Các ngôn ngữ hướng đối tượng > Một số ứng dụng cùa lập trình hướng đối tượng 9 1. Tiếp cận hướng đổi tượng Trong thế giói thực, xung quanh chúng ta là những đối tượng, đó là các thực thể có mối quan hệ với nhau. Ví dụ các phòng trong một công ty kinh doanh được xem như những đối tượng.
Các phòng ở đây có thể là: phòng quản lý, phòng bán hàng, phòng kế toán, phòng tiếp thị,. Mỗi phòng ngoài những cán bộ đàm nhiệm những công việc cụ thề, còn có những dữ liệu riêng như thông tin về nhân viên, doanh số bán hàng, hoặc các dừ liệu khác có liên quan đến bộ phận đó. Việc phân chia các phòng chức năng trong công ty sẽ tạo điều kiện dễ dàng cho việc quản lý các hoạt động. Mỗi nhân viên trong phòng sê điều khiển và xử lý dữ liệu của phòng đó.
Ví dụ phòng kế toán phụ trách về lương bổng nhân viên trong công ty. Nếu bạn đang ở bộ phận tiếp thị và cần tìm thông tin chi tiết về lương của đơn vị minh thi sẽ gửi yêu cầu về phòng kế toán. Với cách làm này bạn được đảm bảo là chi có nhân viên của bộ phận kế toán được quyền truy cập dữ liệu và cung cấp thông tín cho bạn. Điều này cũng cho thấy rằng, không có người nào thuộc bộ phận khác có thể truy cập và thay đổi dữ liệu của bộ phận kế toán.
Khái niệm như thế về đối tượng hầu như có thể được mở rộng đối với mọi lĩnh vực trong đời sống xã hội và hơn nữa - đối với việc tổ chức chương trình. Mọi ứng dụng có the được định nghĩa như một tập các thực thể - hoặc các đối tượng, sao cho quá trình tái tạo những suy nghĩ của chúng ta là gần sát nhất về thế giới thực. Những nhược điểm cùa lập ừ ình hướng thù tục Cách tiếp cận lập trinh truyền thống là lập trinh hướng thủ tục (LTHTT). Theo cách tiếp cận này thi một hệ thống phần mềm được xem như là dãy các công việc cần thực hiện như đọc dữ liệu, tính toán, xử lý, lập báo cáo và in ấn kết quả V.
Mỗi công việc đó sẽ được thực hiện bời một số hàm nhất định. Như vậy trọng tâm của cách tiếp cận này là các hàm chức nàng. LTHTT sử dụng kỹ thuật phân rã hàm chức năng theo cách tiếp cận trên xuống (top-down) để tạo ra cấu trúc phân cấp. Các ngôn ngữ lập trình bậc cao như COBOL, FORTRAN, PASCAL, c , V., là những ngôn ngữ lập trình hướng thủ tục.
Những nhược điểm chính của LTHTT là: > Chương trinh khó kiểm soát và khó khăn trong việc bổ sung, nâng cấp chương trình. Chương trình được xây dựng theo cách tiếp cận hướng thủ tục thực chất là danh sách các câu lệnh mà theo đó máy tính cần thực hiện. Danh sách các lệnh đó được tổ chức thành từng nhóm theo đơn vị cấu trúc của ngôn ngừ lập trinh và được gọi là hàm/thủ tục. Trong chương trinh có nhiều hàm/thủ tục, thường thi có nhiều thành phần dữ liệu quan trọng sẽ được khai báo tổng thể (global) để các hàm/thủ tục có thể truy nhập, đọc và làm thay đổi giá trị của biến tổng thể.
Điều này sẽ làm cho chương trình rất khó kiểm soát, nhất là đối với các chương trình lớn, phức tạp thì vấn đề càng trờ nên khó khăn hơn. Khi ta muốn thay đổi, bổ sung cấu trúc dữ liệu dùng chung cho một số hàm/thủ tục thì phai thay đổi hầu như tất cả các hàm/thủ tục liên quan đến dữ liệu đó. > Mô hinh được xây dựng theo cách tiếp cận hướng thủ tục (TCHTT) không mô tả được đầy đủ, trung thực hệ thống trong thực tế. > Phương pháp TCHTT đặt trọng tâm vào hàm là hướng tói hoạt động sẽ không thực sự tương ứng với các thực thể trong hệ thống của thế giới thực.
Đặc điêm lập trình hưmig đối tượng Lập trình hướng đối tượng (Object Oriented Programming - OOP) là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng thuật giải, xây dựng chương trinh. Đối tượng được xây dựng trên cơ sở gắn cấu trúc dữ liệu với các phương thức (các hàm/thù tục) sẽ thể hiện được đúng cách mà chúng ta suy nghĩ, bao quát về thế giới thực. Lập trình hướng đối tượng (LTHĐT) cho p h é p ta k ê t h ợ p n h ữ n g tri th ứ c b a o q u á t v ề các q u á trìn h với n h ữ n g khái n iệm trừu tượng được sử dụng trong máy tính. Điểm căn bản của phương pháp LTHĐT là thiết kế chương trình xoay quanh dữ liệu của hệ thống.
Nghĩa là các thao tác xử lý của hệ thống được gắn liền với dữ liệu và như vậy khi có sự thay đổi của cấu trúc dữ liệu thì chi ãnh hưởng đến một số ít các phương thức xử lý liên quan. LTHĐT không cho phép dữ liệu chuyển động tự do trong hệ thống. Dữ liệu được gan chặt với từng phương thức thành các vùng riêng mà các phương thức đó tác động lên và nó được báo vệ để cấm việc truy nhập tùy tiện từ bên 11 ngoài. LTHĐT cho phép phân tich bài toán thành tập các thực thể được aọi là các đối tượng và sau đó xây dựng các dữ liệu cùng với các phương thức xung quanh các đối tượng đó.
Tóm lại LTHĐT có những đặc tính chủ yếu như sau: 1. Tập trung vào dữ liệu thay cho các phương thức. Chương trinh được chia thành các lớp đối tượng. Các cấu trúc dữ liệu được thiết kế sao cho đặc tả được các đối tượng 4.
Các phương thức xác định trên các vùng dữ liệu của đối tượng được gắn với nhau trên cấu trúc dữ liệu đó 5. Dữ liệu được bao bọc, che giấu và không cho phép các thành phần bên ngoài truy nhập tự do. Các đối tượng trao đổi với nhau thông qua các phương thức. Dữ liệu và các phương thức mới có thể dễ dàng bổ sung vào đối tượng nào đó khi cần thiết.
8 Chương trinh được thiết kế theo cách tiếp cận bottom-up (duới - lên). Các khái niệm cơ bản cùa lập trình hướng đối tưọng Những khái niệm cơ bàn trong LTHĐT bao gồm: Đối tượng; Lóp; Trừu tượng hóa dữ liệu, bao gói thông tin; Ke thừa; Tương ứng bội; Liên kết động; Truyền th ò n g báo 1. Đối tượììg Trong thế giới thực, khái niệm đối tượng được hiểu như là một thực thể, nó có thể là người, vật hoặc một bảng dữ liệu cần xử lý trong chương trình,. Trong LTHĐT thì đối tượng là biến thể hiện của lớp.
Lớp Lớp là một khái niệm mới trong LTHĐT so với kỹ thuật LTHTT. Nó là một bản mẫu mô tả các thông tin cấu trúc dữ liệu và các thao tác hợp lệ của các 12 phần tử dữ liệu. Khi một phần tử dữ liệu được khai báo là phần tử của một lớp thi nó được gọi là đoi tượng Các hàm được định nghĩa hợp lệ trong một lớp được gọi là các phương thức (method) và chúng là các hàm duy nhất có thể xử lý dữ liệu của các đối tượng của lớp đó. Chẳng hạn, chúng ta xét lớp HENH_CN bao gồm các thuộc tính: (x l,y l) toạ độ góc trên bên trái, d, r là chiều dài và chiều rộng của hình chữ nhật (HCN).
Các phương thức nhập số liệu cho HCN, hàm tính diện tích, chu vi và hàm hiển thị. Lớp HINH_CN có thể được mô tả như sau: H IN H C N Thuộc tính : X1,y 1 d,r Phưong thức: Nhập_sl Diện tích Chu vi Hiển thị Hình 1. Mô ta lóp HINH CN 1. T rừ u tuỊ/rig h ó a d ữ liệ u và b a o g ó i íỉtủtig tin Trừu tượng hóa là cách biểu diễn những đặc tính chính và bỏ qua những chi tiết nhỏ hoặc những giải thích.
Khi xây dựng các lớp, ta phải sừ dụng khái niệm trừu tượng hóa. Ví dụ ta có thể định nghĩa một lớp để mô tả các đối tượng trong không gian hình học bao gồm các thuộc tính trừu tượng như là kích thước, hình dáng, màu sắc và các phương thức xác định trên các thuộc tính này. Việc đóng gói dữ liệu và các phương thức vào một đơn vị cấu trúc lớp được xem như một nguyên tắc bao gói thông tin. Dữ liệu được tổ chức sao cho thế giới bên ngoài (các đối tượng ờ lớp khác) không truy nhập vào, mà chỉ cho phép các phương thức trong cùng lớp hoặc trong những lớp có quan hệ kế thừa với nhau mới được quyền truy nhập.
Chính các phương thức của lớp sẽ đóng vai ữò như là giao diện giữa dữ liệu của đối tượng và phần còn lại của chương trình. Nguyên tắc bao gói dữ liệu để ngân cấm sự truy nhập trực tiếp trong lập trinh được gọi là sự che giấu thông tin. Kế thừa Kế thừa là quá trình mà các đối tượng cùa lớp này được quyền sử dụng một số tính chất của các đối tượng của lớp khác. Sự kế thừa cho phép ta định nghĩa một lớp mới trên cơ sỡ các lớp đã tồn tại.
Lớp mới này, ngoài những thành phần được kế thừa, sẽ có thêm những thuộc tính và các hàm mới. Nguyên ]ý kế thừa hỗ ơợ cho việc tạo ra cấu trúc phân cấp các lớp. Ví dụ: Xây dựng một tập các lớp mô tả cho thư viện các ấn phẩm. Có hai kiểu ấn phẩm: tạp chí và sách.
Chúng ta tạo một ấn phẩm tổng quát bằng cách định nghĩa các thành phần dữ liệu tương ứng với số trang, mã số tra tra cứu, ngày tháng xuất bản, bản quyền và nhà xuất bản. Các ấn phẩm có thể được lấy ra, cất đi và đọc. Đó là các phương thức thực hiện ữên một ẩn phẩm. Tiếp theo ta định nghĩa hai lớp dẫn xuất tên là tạp chí và sách.
Tạp chí có tên, số kỳ phát hành và chứa nhiều bài của các tác giả khác nhau. Các thành phần dữ liệu tương ứng với các yếu tố này được đặt vào định nghĩa của lớp tạp chí. Tạp chí cũng cần có một phương thức nữa đó là đặt mua.