VicoTas
Câu hỏi
avatar thanhngan909
25/05/2013 20:28

có ai giúp em với!lập trình hướng cấu trúc và hướng đối tượng khác gì nhau,có quan hệ với nhau như thế nào



Danh sách câu trả lời (1)
avatar tuyet_nhi 25/05/2013 20:28
Lập trinh truyền thống là lập trình cấu trúc hay lập trình hướng thủ tục.

Những ngôn ngữ lập trình truyền thống như: Pascal, C, Foxpro.. được gọi chung là ngôn ngữ lập trình hướng thủ tục. Theo cách tiếp cận hướng thủ tục thì 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ả...Mỗi công việc đó sẽ dược thực hiện bởi một hàm hay thủ tục 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. Nói rõ hơn theo cách tiếp cận này, chương trình được tổ chức thành các chương trình con. Mỗi chương trình con đảm nhận xử lý một công việc nhỏ trong toàn bộ hệ thống. Mỗi chương trình con này lại có thể chia nhỏ thành các chương trình con nhỏ hơn. Quá trình phân chia như vậy tiếp tục diễn ra cho đến khi các chương trình con nhận được đủ đơn giản. Người ta gọi đó là quá trình làm mịn dần.
Khi tập trung vào trọng tâm phát triển các hàm thì chúng ta lại ít chú ý đến dữ liệu ( Nghĩa là lập trình hướng thủ tục thì dữ liệu không được coi trọng) những cái mà các hàm sử dụng để thực hiện công việc của mình.
Cái gì sẽ xẩy ra đối với dữ liệu và gắn dữ liệu với các hàm như thế nào? Trong chương trình có nhiều hàm, thường thì có nhiều thành phần dữ liệu quan trọng sẽ được khai báo tổng thể để cho nhiều hàm có thể truy nhập, đọc và làm thay đổi giá trị của biến tổng thể. Ngoài ra mỗi hàm có thể có các vùng dữ liệu riêng.
Để liên kết giữa các hàm thành một đơn vị chương trình thông qua biến toàn cục.

Điều này có nghĩa là nhiều hàm có thể truy nhập, sử dụng dữ liệu chung , làm thay đổi giá trị của chúng và vì vậy 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.
Điều gì sẽ xẩy ra nếu như chúng ta muốn thay đổi, bổ xung cấu trúc dữ liệu của biến toàn cục. Đó là phải viết lại hầu như toàn bộ các hàm có liên quan...
Tóm lại những đặc tính chính của phương pháp lập trình hướng thủ tục là:
+ Tập chung vào công việc cần thực hiện (thuật toán)
+ Chương trình lớn được chia thành các hàm nhỏ hơn
+ Phần lớn các hàm sử dụng dữ liệu chung
+ Dữ liêu trong hệ thống được chuyển động từ hàm này sang hàm khác.
+ Hàm biến đổi dữ liệu từ dạng này sang dạng khác
+ Sử dụng cách tiếp cận top-down trong thiết kế chương trình


Phong cách của phương pháp lập trình hướng đối tượng (OOP - Object Oriented Programming) là tập chung vào dữ liệu. Theo cách tiếp cận này thì một câu hỏi thường được đặt ra là dữ liệu nào thì được các phương thức(hay các hàm) nào xử lý và người ta đem gói tất cả dữ liệu và các phương thức có liên quan với nhau thành một nhóm giống như một lọ thuốc bao giờ cũng có hai thứ: Các viên thuốc(dữ liệu) và tờ giấy trên đó ghi cách dùng các viên thuốc đó(phương thức). Hai thứ đó gộp lại thành một kiểu dữ liệu gọi là dữ liệu đối tượng(Object). Lập trình có sử dụng kiểu dữ liệu loại này gọi là lập trình hướng đối tượng.
Lập trình hướng đối tượng đặt trọng tâm vào đối tượng. Yếu tố quan trong quá trình phát triển chương trình và không cho phép dữ liệu biến động tự do trong hệ thống. Trong một đối tương dữ liệu gắn chặt với các hàm thành viên thành các vùng riêng mà chỉ có các hàm đó tác động nên và cấm các hàm bên ngoài truy nhập tới tuỳ tiện.
Lập trình hướng đối tượng cho phép phân tích bài toán thành các thực thể được gọi là đối tượng và sau đó xây dựng các dữ liệu cùng các hàm xung quanh các đối tượng đó.
Các đối tựng có thể tác động, trao đổi thông tin với nhau thông qua cơ chế thông báo(mesage) thông qua các phương thưc(hàm).

Lập trình hướng đối tượng có các đặc tính sau:
+ Tập chung vào dữ liệu thay cho các hàm
+ Chương trình được chia thành các đối tượng
+ Cấu trúc dữ liệu được thiết kế sao cho đặc tả được đối tượng gắn với cấu trúc dữ liệu đó.
+ Dữ liệu được đóng gói lại, được che giấu và không cho phép các hàm ngoại lai truy nhập tự do.
+ Các đối tượng tác động và trao đổi thông tin với nhau qua các hàm.
+ Có thể dẽ dàng bổ sung dữ liệu và các hàm mới vào đối tượng nào đó khi cần thiết.
+ Chương trình được thiết kế theo cách tiếp cận từ dưới lên(bottom- up).
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Lập trình
nophoto Trong HĐH linux mới có cần cài phần mềm C++ không?

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

nophoto Muốn quay lại trong Regedit???

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

nophoto Có ai biết trang nào hỗ trợ học lập trình C++ nhỉ?

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

nophoto Program Files

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

Chip chip Để viết chương trình và sau đó có thể update được thì phải làm thế nào hả các bạn??

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

nophoto Hỏi về hàm đồ họa GDI trong VS C++?

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

nophoto Có ai biết về datagridview giúp mình với?

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

nophoto Xin hỏi anh chị có phần mềm nào quản lý điểm truy nhập Internet công cộng không? Cảm ơn anh chị nhiều!

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

nophoto Tôi tải phần mềm này về máy thì khi dùng yahoo máy tính bị out liên tục. Khi chưa dùng phần mềm này thì không có hiện tượng như vậy. Xin cho biết nguy

Đăng lúc: 20:28 - 25/05/2013 trong Lập trình

Mạnh Linh Phương pháp nào để thủ tiêu số 0 trong Excel? Ai biết giúp mình nhá!

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

nophoto Ngôn ngữ nào để lập trình cho tương lai? Ai biết chỉ cho tôi với!

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

vietnamconnection Ai có ebook học Visual basic 6.0 cho mình xin với !!!

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

Đức Cảnh Ai có Skin Blog Opera để làm html ko?

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

Mạnh Linh hỏi về turbo pascal

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

nophoto Giúp mình cài boland C++??

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

nophoto Tiêu Chí Tuyển Dụng Trong Ngành Công Nghệ Thông Tin, Các công ty tin học đang tuyển dụng theo các tiêu chí nào

Đăng lúc: 17:12 - 03/07/2013 trong Lập trình

Manh Linh Cách phân loại kiểu ngôn ngữ và tư duy lập trình?

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

nophoto Rss nghĩa là gì?

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

nophoto Khi tạo 1 from Input chỉ điền đc số??

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

nophoto Các bạn có thể cho mình biết các bước để tạo một Website bằng PHP được không??

Đăng lúc: 20:27 - 25/05/2013 trong Lập trình

Rao vặt Siêu Vip