1
TC 208 :: 01/12/2009 Đề thi Lập trình hướng đối tượng (OOP) CNPM K51 Câu 1: Trình bày tư tưởng nguyên lý đóng gói trong OOP. Phân tích chi tiết nhng li ích mà nguyên lý này đem lại. Câu 2 : So sánh 2 khái nim lp trừu tượng và giao diện. Phân tích điểm mạnh điểm yếu khi sdụng 2 kĩ thuật trên. Câu 3 : Mô tngn gn mi quan hgiữa đối tượng và lp, giữa các đối tượng vi nhau. Chrõ skhác bit gia 2 ngôn ngJava & C++ trong vic quản lý đối tượng. Câu 4 : Hãy nêu các trường hp lp trình tại đó hàm thiết lp sao chép (copy constructor ) tđộng được triu gi. Phân tích vấn đề rò rbnhcó thxy ra khi lp trình cho hàm thiết lp sao chép. Java có vấn đề này không ? Gii thích. Câu 5 : Gista cn viết chương trình mô phỏng hoạt động ca các con vt trong 1 ngôi nhà ( house ) bao gồm : người, nhn, cá, mèo. Một động vt (animal ) nói chung được đặc trưng bởi schân ( 0 -8 ), đều có thđi (walk) (trcá ), ăn (eat ) và chết ( die ).Các con vật cũng là vật nuôi ( pet ) trngười và nhn. Mi vt nuôi đều có tên và có thchơi đùa (play) trong nhà. Riêng người có khnăng đọc báo ( readpaper) và theo dõi 1 con vt bt kì ( watch ). Chú ý là trong 1 ngôi nhà ta có thbsung, loi b( do rời đi hay chết ) các nhân vt nói trên nhưng giới hn schân là 120. a) Thiết kế biểu đồ lp và gii thích ngn gọn : đối tượng nào ( thuc lp ) kết tp ( quan hhas –a ) các đối tượng khác, lp nào là lp kế tha ( quan his a ) các lp khác. b) Hãy viết mã cài đặt vi ngôn ngtùy chn ( Java, C++ ) cho lp ( giao din ) House, Animal, Pet, Spider, Cat ( các lp còn lại như đã được cài đặt ). Ti chương trình chính tạo ra các đối tượng và kích hoạt các phương thức để in ra : - Tng schân đang có trong nhà. - Tng svật nuôi đang chơi, nhện đang đi … Chú ý : Việc cài đặt mỗi phương thức ( trcác phương thức get, set ) đơn giản là thông báo đối tượng đó đang làm gì. VD : đang ăn, đang đi, không đi nhưng đang bơi, đọc báo, xem .. Đề 1

OOP1_K51

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: OOP1_K51

TC – 208 :: 01/12/2009

Đề thi Lập trình hướng đối tượng (OOP) – CNPM K51

Câu 1: Trình bày tư tưởng nguyên lý đóng gói trong OOP. Phân tích chi tiết những lợi

ích mà nguyên lý này đem lại.

Câu 2 : So sánh 2 khái niệm lớp trừu tượng và giao diện. Phân tích điểm mạnh điểm yếu

khi sử dụng 2 kĩ thuật trên.

Câu 3 : Mô tả ngắn gọn mối quan hệ giữa đối tượng và lớp, giữa các đối tượng với nhau.

Chỉ rõ sự khác biệt giữa 2 ngôn ngữ Java & C++ trong việc quản lý đối tượng.

Câu 4 : Hãy nêu các trường hợp lập trình tại đó hàm thiết lập sao chép (copy constructor

) tự động được triệu gọi. Phân tích vấn đề rò rỉ bộ nhớ có thể xảy ra khi lập trình cho hàm

thiết lập sao chép. Java có vấn đề này không ? Giải thích.

Câu 5 : Giả sử ta cần viết chương trình mô phỏng hoạt động của các con vật trong 1 ngôi

nhà ( house ) bao gồm : người, nhện, cá, mèo. Một động vật (animal ) nói chung được

đặc trưng bởi số chân ( 0 -8 ), đều có thể đi (walk) (trừ cá ), ăn (eat ) và chết ( die ).Các

con vật cũng là vật nuôi ( pet ) trừ người và nhện. Mỗi vật nuôi đều có tên và có thể chơi

đùa (play) trong nhà.

Riêng người có khả năng đọc báo ( readpaper) và theo dõi 1 con vật bất kì ( watch ). Chú

ý là trong 1 ngôi nhà ta có thể bổ sung, loại bỏ ( do rời đi hay chết ) các nhân vật nói trên

nhưng giới hạn số chân là 120.

a) Thiết kế biểu đồ lớp và giải thích ngắn gọn : đối tượng nào ( thuộc lớp ) kết tập (

quan hệ has –a ) các đối tượng khác, lớp nào là lớp kế thừa ( quan hệ is a ) các lớp

khác.

b) Hãy viết mã cài đặt với ngôn ngữ tùy chọn ( Java, C++ ) cho lớp ( giao diện )

House, Animal, Pet, Spider, Cat ( các lớp còn lại như đã được cài đặt ). Tại

chương trình chính tạo ra các đối tượng và kích hoạt các phương thức để in ra :

- Tổng số chân đang có trong nhà.

- Tống số vật nuôi đang chơi, nhện đang đi …

Chú ý : Việc cài đặt mỗi phương thức ( trừ các phương thức get, set ) đơn giản là thông

báo đối tượng đó đang làm gì. VD : đang ăn, đang đi, không đi nhưng đang bơi, đọc báo,

xem ..

Đề 1