Yêu cầu mọi thông tin sao chép từ blog này phải được ghi rõ đầy đủ: Thông tin được sao chép từ "http://www.dangngochoangthanh.blogspot.com".

Cool wallpaper http://www.fancymessage.com

EMOJI KEYBOARD PRO http://emojiselector.com

THƯ VIỆN HÌNH ĐỘNG FLASH ANIMATION: http://flashanimationlibrary.blogspot.ru/

Hệ thống học trực tuyến đang được phát triển và sẽ đưa vào sử dụng vào cuối năm nay. Hãy xem qua một số demo của Học Trực Tuyến.


HỌC TRỰC TUYẾN ĐÃ CUNG CẤP PHIÊN BẢN TRUY CẬP QUA MOBILE http://dangngochoangthanh.blogspot.com/?m=1

XEM KÊNH HỌC TRỰC TUYẾN TRÊN YOUTUBE



Search on This Blog

Saturday, September 11, 2010

Lịch sử hình thành

Trước khi kĩ thuật lập trình hướng đối tượng ra đời, con người đã trải qua các thời kì lập trình tuyến tính, lập trình hướng thủ tục.
  1. Lập trình tuyến tính
Máy tính đầu tiên được lập trình bằng mã nhị phân, sử dụng các công tắc cơ khí để nạp chương trình. Cùng với sự xuất hiện của các thiết bị lưu  trữ lớn và bộ nhớ máy tính có dung lượng lớn, nên các ngôn ngữ lập trình cấp cao bắt đầu xuất hiện. Các ngôn ngữ lập trình này được thiết kế làm cho công việc lập trình trở nên đơn giản hơn. Các chương trình ban đầu chủ yếu liên quan đến tính toán, chúng tương đối ngắn. Chúng chủ yếu chạy theo các dòng lệnh một cách tuần tự, dòng trước chạy trước, dòng sau chạy sau.
Nhược điểm:
  • Nếu ta cần sử dụng một đoạn lệnh nào đó nhiều lần, thì ta phải sao chép nó nhiều lần.
  • Không có khả năng kiểm soát phạm vi nhìn thấy của biến.
  • Chương trình dài dòng, khó hiểu, khó nâng cấp.
  1. Lập trình hướng thủ tục
Với những nhược điểm trên, đòi hỏi có một ngôn ngữ lập trình mới thay thế. Đó chính là nguyên nhân ra đời của ngôn ngữ lập trình hướng thủ tục.
Về bản chất, chương trình được chia nhỏ thành các modul (đơn vị chương trình). Mỗi đơn vị chương trình chứa các hàm hay thủ tục (nên gọi là hướng thủ tục). Tuy tách rời thành các modul riêng biệt, nhưng ngôn ngữ lập trình hướng thủ tục vẫn đảm bảo thông tin thông suốt giữa các modul nhờ vào cơ chế hoạt động của hàm, cơ chế truyền theo tham biến và tham trị. Với lập trình hướng thủ tục, một chương trình lớn có thể được chia nhỏ thành các modul, để mỗi lập trình viên có thể đảm nhận. Tiêu biểu trong số này là C, Pascal.
Nhược điểm:
  • Các hàm và thủ tục thường gắn kết với nhau, nếu muốn nâng cấp chương trình, thường phải chỉnh sửa tất cả các hàm và thủ tục liên quan.
  • Không phù hợp với xu thế hiện đại vì không mô tả được thực thể trong cuộc sống thực.
  1. Lập trình hướng đối tượng
Với xu thế hiện đại, ngôn ngữ lập trình hướng đối tượng đã ra đời. Cơ sở của lập trình hướng đối tượng là đối tượng. Đối tượng là sự thể hiện của một thực thể trong thế giới thực. Một thực thể trong thế giới thực thường có: các đặc trưng và các hành động. Ví dụ: con người trong thế giới thực có các đặc trưng như  – tên gọi, tuổi, màu tóc, màu mắt, màu da… và các hành động như – ăn, nói, chạy, nhảy… Cách thức lập trình này mô tả một cách chính xác các sự vật, con người trong thế giới thực.
Bây giờ, ta sẽ xét một vài ví dụ để cho thấy sự cần thiết của lập trình hướng đối tượng.
1. Bạn muốn xây dựng một chương trình quản lý sinh viên. Khi đó, bạn cần lưu trữ các thông tin liên quan đến đối tượng sinh viên này: họ tên sinh viên, mã số sinh viên, ngày tháng năm sinh, quê quán, điểm các môn, điểm tổng kết,…. và rất nhiều thông tin khác liên quan. Sau khi kết thúc năm học, sinh viên sẽ nhận được đánh giá kết quả học tập của mình. Chúng ta cần có phương thức tiếp nhận kết quả để sinh viên đó có thể phản ứng lại với những gì mà mình nhận được, họ phải thực hiện các hành động học tập, tham gia vào các hoạt động của trường, của khoa… đó là những hành động mà mỗi sinh viên cần thực hiện.
2. Chúng ta sẽ điểm qua một số tính năng trong chương trình soạn thảo văn bản Word của Microsoft. Chúng ta sẽ thảo luận về các đối tượng Drawing trong Word. Mỗi đối tượng đều có các thuộc tính: màu viền, dạng đường viền, kích thước viền, màu sắc viền, màu nền, có văn bản hay không trong đối tượng drawing…Khi chúng ta biến đổi hình dạng của mỗi đối tượng: kéo giãn, làm lệch xiêng, quay vòng… chúng ta cần đưa ra một thông điệp để các đối tượng hình thể này thay đổi theo. Các hành động này thuộc quyền sở hữu của đối tượng.
Trong hai ví dụ minh họa trên, bạn thấy rằng hướng tiếp cận theo lập trình hướng đối tượng là rất gần gũi với cuộc sống thực. Chúng ta không quan tâm đến những khía cạnh không cần thiết của đối tượng, chúng ta chỉ tập trung vào các đặc trưng và các hành động của đối tượng. Kể từ thời điểm này trở đi, chúng ta sẽ gọi các đặc trưng của đối tượng là các thuộc tính thành viên của đối tượng đó (hoặc dữ liệu thành viên, biến thành viên của đối tượng) và các hành động của đối tượng là các phương thức thành viên (hay hàm thành viên) của đối tượng. Các cách gọi dữ liệu thành viên, thuộc tính thành viên, biến thành viên hay thuộc tính (tương ứng phương thức thành viên, hàm thành viên, phương thức) là không có sự phân biệt. Tôi chỉ đưa ra nhiều cách gọi khác nhau để bạn có thể quen khi tham khảo các giáo trình khác nhau. Bởi lẽ, nhiều giáo trình chọn lựa các cách gọi khác nhau. Cách cách gọi này cũng tùy thuộc vào ngôn ngữ lập trình (trong C++ thông thường người ta sử dụng khái niệm dữ liệu thành viên – member data hoặc biến thành viên – member variable và hàm thành viên – member function, trong khi đó, các ngôn ngữ như Java, Delphi hay C# lại sử dụng khái niệm phương thức – method và thuộc tính – property). Khái niệm thành viên sẽ áp dụng cho cả dữ liệu thành viên lẫn hàm thành viên.
Phương châm của lập trình hướng thủ tục theo giáo sư Niklaus Wirth
Chương trình = Cấu trúc dữ liệu + Giải thuật
Còn phương châm của lập trình hướng đối tượng là
Chương trình = Đối tượng + Dữ liệu
Tiêu biểu trong số này là C++, Java, C#, Delphi, Python…

No comments:

Post a Comment