-
Thông tin
-
Quiz
Lập trình hướng cấu trúc, lập trình hướng đối tượng là gì? môn Kỹ năng giao tiếp | Học viện Nông nghiệp Việt Nam
Tư tưởng chính của LTCT là chia chương trình thành các chươngtrình con và các module. Mỗi hàm thực hiện một nhiệm vụ xác định nào đó, còn mỗi module bao gồm 1 số hàm liên quan..Tài liệu giúp bạn tham khảo ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!
Kỹ năng giao tiếp (HVNN) 24 tài liệu
Học viện Nông nghiệp Việt Nam 1.7 K tài liệu
Lập trình hướng cấu trúc, lập trình hướng đối tượng là gì? môn Kỹ năng giao tiếp | Học viện Nông nghiệp Việt Nam
Tư tưởng chính của LTCT là chia chương trình thành các chươngtrình con và các module. Mỗi hàm thực hiện một nhiệm vụ xác định nào đó, còn mỗi module bao gồm 1 số hàm liên quan..Tài liệu giúp bạn tham khảo ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!
Môn: Kỹ năng giao tiếp (HVNN) 24 tài liệu
Trường: Học viện Nông nghiệp Việt Nam 1.7 K tài liệu
Thông tin:
Tác giả:






Tài liệu khác của Học viện Nông nghiệp Việt Nam
Preview text:
lOMoAR cPSD| 48599919
1. Lập trình hướng cấu trúc, lập trình hướng đối tượng là gì? Hãy cho biết những hạn chế
chính của lập trình cấu trúc và giải thích tại sao có hạn chế này, cho biết nguyên nhân
chính dẫn đến hạn chế này là gì?
- Tư tưởng chính của LTCT là chia chương trình thành các chương trình con và các module.
Mỗi hàm thực hiện một nhiệm vụ xác định nào đó, còn mỗi module bao gồm 1 số hàm liên quan. - Mô hình :
- Trong mô hình LTCT dữ liệu để dùng chung, tất cả hàm đều có toàn quyền truy nhập dữ liệu. * Các hạn chế chính: -
Nguy cơ hỏng, mất dữ liệu là rất lớn vì dữ liệu dùng chung, tất cả các hàm có toàn
quyền truy nhập dữ liệu, các hàm lại viết bởi nhiều người lập trình khác nhau. -
Khi dữ liệu thay đổi thì các hàm cũng phải thay đổi theo. Với số lượng hàm lớn thì
phải mất rất nhiều thời gian và công sức. -
LTCT khó thiết kế chương trình, việc chia chương trình thành các hàm sao cho đúng
và hợp lí là rất khó vì không có căn cứ cơ sở rõ ràng.
Nguyên nhân chính dẫn đến hạn chế này: dữ liệu không được coi trọng, dữ liệu để dùng
chung và cho tất cả các hàm toàn quyền truy nhập dữ liệu.
2. Lập trình hướng đối tượng là gì? Giải thích tại sao lập trình hướng đối tượng lại khắc
phục được tất cả hạn chế của lập trình cấu trúc?
- LTHĐT là chia chương trình thành các đối tượng, đối tượng là một thực thể chương trình
kết hợp cả dữ liệu và các hàm thao tác trên dữ liệu đó. - Mô hình :
+ Trong mô hình LTHĐT, dữ liệu không để dùng chung mà được đóng gói vào trong các đối
tượng cùng với các hàm thành viên.
+ Chỉ có hàm thành viên nằm trong đối tượng mới có quyền truy nhập dữ liệu của đối tượng
không phải tất cả các hàm.
+ Các đối tượng trong chương trình có thể trao đổi thông tin dữ liệu với nhau. lOMoAR cPSD| 48599919
Giải thích tại sao lập trình hướng đối tượng lại khắc phục được tất cả hạn chế của lập trình cấu trúc? -
Trong LTHĐT nguy cơ mất dữ liệu là hầu như không có vì dữ liệu không để dùng
chung và được đóng gói vào trong đối tượng, chỉ có các hàm thành viên nằm trong đối
tượng mới có quyền truy nhập vào dữ liệu.
Các hàm trong đối tượng thường do 1 hoặc 1 số người lập trình chuyên trách thực hiện,
nguy cơ hỏng mất dữ liệu là hầu như không có. -
Trong LTHĐT, khi dữ liệu thay đổi không phải viết lại tất cả các hàm mà chỉ viết lại các
hàm có dữ liệu thay đổi.
Việc này thực hiện nhanh mà không ảnh hưởng đến các phần khác của chương trình. -
LTHĐT vô cùng dễ thiết kế chương trình vì việc chia chương trình thành các đối
tượng là có căn cứ, cơ sở rõ ràng là dựa vào các đối tượng thực tế. Chỉ cần phát hiện có bao
nhiêu chương trình thực tế là có bây nhiêu chương trình đối tượng. Mỗi đối tượng thực tế
trở thành một đối tượng chương trình.
3. Trình bày những hiểu biết cơ bản về lập trình hướng đối tượng? - LTHĐT là gì + Tư tưởng + Mô hình -
Học LTHĐT là học cách đóng gói dữ liệu và hàm thành các đối tượng chương trình
(đóng gói cho đúng, hợp lí). -
Hướng đối tượng là phải xem thiết kế chương trình như thế nào chứ không đi vào
chi tiết từng lệnh. Cụ thể là các chương trình HĐT phải được tổ chức xung quanh các đối tượng.
4.Lớp, đối tượng là gì, mối quan hệ giữa lớp và đối tượng, lấy ví dụ thực tế để làm sáng tỏ
lớp, đối tượng, mối quan hệ giữa lớp và đối tượng? - Đối tượng :
+ Là thành phần chương trình chứa các dữ liệu và các hàm thao tác dữ liệu trên đối tượng. - Lớp :
+ Là 1 bản mô tả về 1 nhóm đối tượng tương tự nhau, nó xác định trong đối tượng của lớp có dữ liệu và hàm gì. lOMoAR cPSD| 48599919
* Mối quan hệ giữa lớp và đối tượng
- Đối tượng là một thể hiện của lớp, cụ thể hóa hiện thực của lớp, lớp mô tả như thế nào thì
đối tượng hình thành kiểu đấy. Lớp có trước đối tượng có sau, muốn có đối tượng thì phải có lớp.
- Ví dụ: Lớp như bản vẽ thiết kế ngôi nhà
Đối tượng như ngôi nhà được xây lên từ bản vẽ thiết kế. Bản vẽ thiết kế có trước
ngôi nhà có sau. Muốn có ngôi nhà thì phải có bản vẽ thiết kế
6. Sự kế thừa được thể hiện trong Lập trình hướng đối tượng như thế nào. Ý nghĩa của sự
kế thừa trong thiết kế hướng đối tượng. Khi nào ta đưa vào thiết kế sự kế thừa?
- Sự kế thừa thể hiện ở việc 1 lớp đi kế thừa đặc điểm của lớp khác. Lớp cho kế thừa đgl lớp
cơ sở, lớp đi kế thừa đgl lớp dẫn xuất. Lớp dẫn xuất có tất cả các đặc điểm của lớp cơ sở
ngoài ra còn thêm vào những đặc điểm mới của riêng nó. - Mô hình :
Trong mô hình kế thừa, lớp dẫn xuất có được đặc điểm A,B của lớp cơ sở, ngoài ra
còn có đặc điểm riêng của nó là C
-Ý/n: Sự kế thừa cho phép SD lại nhưng SD lại có tính phát triển thêm, bởi vậy đem lại lợi ích
to lớn trong phát triển phần mềm giúp tiết kiệm tgian và công sức của người lập trình.
- Sự kế thừa mô phỏng mqh loại giữa cấc đối tượng trong thực tế bởi vậy khi phát hiện giữa
các đối tượng trong thực tế có mqh loại thì ta phải đưa sự kế thừa vào trong thiết kế.
7. Trong LTHDT đa hình là gì ? Trình bày về các loại đa hình.
- Đa hình là 1 lời gọi hàm, có thể gọi đến nhiều hàm khác nhau. Có 2 loại :
+ Đa hình tĩnh: Việc kết nối lời gọi hàm với hàm đc thực hiện tại thời điểm biên dịch chương
trình. Kết nối này là cố định không thay đổi đc, vì vậy nó đgl kết nối tĩnh.
+ Đa hình động: Việc kết nối lời gọi hàm với hàm đc thực hiện tại thời điểm chạy chương
trình. Kết nối này có thể thay đổi đc, vì vậy nó đgl kết nối động. -Mô hình :
8 . Tính đóng gói thông tin. -
Trong LTHDT, các DL và hàm đc đóng gói vào trong đối tượng. Trong đối tượng DL
đc ẩn đi, bảo vệ không cho bên ngoài nhìn thấy. lOMoAR cPSD| 48599919 -
Ngược lại, các hàm TV của đối tượng phải công bố công khai cho bên ngoài biết để
SD tương tác với đối tượng. Mọi tương tác với đối tượng bên ngoài phải thông qua các
hàm TV , bởi vật hàm TV là giao diện của đối tượng.
Nguyên tắc của LTHDT : DL ẩn đi, hàm công khai.
9. Các đối tượng tương tác với nhau bằng các nào ? Trình bày cách thức tt và cho VD ?
- Các đối tượng tt với nhau bằng cách truyền thông điệp. Truyền thông điệp tới 1 đối tượng
là gọi hàm TV gắn với đối tượng đó theo phương pháp tên đối tượng chấm tên hàm
VD : Đối tượng có tên là HCN trong đối tượng có hàm tinhDT() HCN.tinhDT() .
10. Trình bày các bước thực hiện thiết kế HĐT (LTHĐT)
- B1 : Tạo ra lớp : Khai báo lớp + Khai báo biến + Khai báo hàm TV
-B2 : SD lớp : Tạo đối tượng của lớp và tương tác với đối tượng hoặc cho các đối tượng tương tác với nhau.
Câu 12: Phân biệt biến, hàm của lớp và đối tượng? (...)
Câu 13: Chồng hàm là gì? Ý nghĩa? Trình biên dịch xử lí như thế nào khi gặp lời gọi hàm chồng?
- Chồng hàm là cho nhiều hàm khác nhau có tên giống nhau, đối số bắt buộc phải khác.
- Ý nghĩa: chồng hàm giúp người lập trình không phải đặt, nhớ nhiều tên các hàm có chức
năng tương tự nhau nên đặt tên giống nhau.
Câu 14: Chồng toán tử là gì? Ý nghĩa (lợi X)?
- Chồng toán tử là sử dụng các toán tử đã có để tác động lên các đối tượng của lớp do ta tạo ra.
- Để chồng toán tử cho một lớp ta phải viết hàm trên chồng toán tử cho lớp đó.
- Hàm thành viên chồng toán tử giống các hàm thành viên khác nó được đặt bằng “Operator ( tên toán tử)” - Ý nghĩa: lOMoAR cPSD| 48599919
+ Rút gọn lời gọi hàm chỉ còn toán tử + Hiểu
ra bản chất của mọi toán tử đều là hàm
Câu 15: Hàm bạn là gì? Ý nghĩa?
- Hàm bạn là hàm thông thường, không phải hàm thành viên, không nằm trong đối tượng.
Nó có quyền truy nhập vào biến của đối tượng như hàm thành viên bên trong đối tượng.
- Để cho 1 hàm thông thường làm bạn hàm thành viên thì ta khai báo lớp với từ khóa friend đứng trước. - Ý nghĩa:
+ Giải quyết vấn đề bên trái khi chồng toán tử nhập xuất. Cho phép đối tượng nằm bên phải toán tử nhập xuất.
+ Hàm bạn là cầu nối giữa các lớp, từ hàm bạn có thể truy nhập dữ liệu các lớp đối tượng khác.
=> Kết luận: Hàm bạn phá vỡ nghiêm trọng nguyên tắc LTHĐT tuyệt đối không nên dùng hàm
bạn nếu không thực sự cần thiết.
Câu 16: Hàm tạo, hàm hủy là gì? Khi nào phải viết hàm tạo, hàm hủy?
- Hàm tạo, hàm hủy là hàm thành viên, giống như các hàm thành viên khác nhưng nó đặc
biệt hơn ở những điểm sau:
+ Không cần khai báo định nghĩa vẫn có là do trình biên dịch thêm vào lớp khi biên dịch chương trình.
+ Hàm tạo, hàm hủy tự động thực hiện không cần lời gọi hàm.
+ Hàm tạo có tên hàm trùng với tên lớp, hàm hủy có tên hàm chứa kí tự ~
+ Không có kiểu trả về kể cả kiểu void.
17. Trình bày các đk cần phải có để cài đặt đa hình động (4ĐK) - Phải có sự kế thừa
- Phải có sự trùng hàm, giữa các lớp dẫn xuất và lớp cơ sở phải có các hàm trùng nhau (là
các hàm có tên và đối số giống nhau)
- Phải có hàm ảo, cụ thể là hàm trùng ở lớp cơ sở phải là hàm ảo. Hàm ảo là hàm TV đc khai
báo trong lớp với từ khóa virtual đằng trước.
- Phải có con trỏ lớp cơ sở và phải gọi hàm trùng qua con trỏ lớp cơ sở. Lời gọi hàm trùng
qua con trỏ là đa hình động. lOMoAR cPSD| 48599919
18 . Hàm ảo là gì? Ý nghĩa ?
- Là hàm TV nhưng có từ khóa virtual đằng trc. Hàm ảo đc SD trong đa động
19 . Trình bày các ứng dụng chính của đa hình động.
- Dùng mảng con trỏ lớp cơ sở tới các đối tượng của các lớp dẫn xuất khác nhau
- Phân lập các công việc của LTHDT
20. Lớp trừu tượng là gì ? Dùng để lgi ? Cách cài đặt.
- Lớp trừu tượng là lớp chung, tổng quát mà việc tạo đối tượng từ nó không có ý nghĩa gì
- Lớp trừu tượng thường đc dùng làm lớp cơ sở cho các lớp khác kế thừa để cài đặt đa hình động
- Để cài đặt lớp trừu tượng trong C++ thì chỉ cần trong lớp đó có ít nhất 1 hàm ảo thuần túy.
Hàm ảo thuần túy là 1 hàm ảo mà khi khai báo có thêm kí hiệu =0.