Đề Cương ôn tập Môn: Lập trình hướng đối tượng | Trường Đại học CÔNG NGHỆ THÔNG TIN, ĐHQG-TPHCM

Một định nghĩa trừu tượng hơn về kế thừa: là một đặc điểm của ngôn ngữ hướng đối tượng dùng để biểu diễn mối quan hệ đặc biệt hoá – tổng quát hoá giữa các lớp.
Bài tập giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao

ĐẠ Þ Þ ÞI H C QU C GIA THÀNH PH H CHÍ MINH
ĐẠ I H C CÔNG NGH THÔNG TIN
- - -
ú
ú
ú
úú - - -
û
û
û
ûû
ĐÀ P C¯¡NG ÔN TÀ
Môn: OOP L ập trình h°ớ ối t°ợng đ ng
Đặng Minh Tun 20522106 HTTT2020
TuanDM-HTTT2020
2
N฀฀i dung
CÂU 1. .......................................................................................................................................................... 4
[2013-2014] ............................................................................................................................................... 4
Gi i: ...................................................................................................................................................... 4
[2014-2015] ............................................................................................................................................... 6
Gi i: ...................................................................................................................................................... 6
[2015-2016] ............................................................................................................................................... 7
Gi i: ...................................................................................................................................................... 8
[2016-2017] ............................................................................................................................................. 10
Gi i: .................................................................................................................................................... 11
[2017-2018] ............................................................................................................................................. 16
Gi i: .................................................................................................................................................... 16
[2018-2019] ............................................................................................................................................. 18
Gi i: .................................................................................................................................................... 18
[2019-2020] ............................................................................................................................................. 20
Gi i: .................................................................................................................................................... 20
CÂU 2. ........................................................................................................................................................ 23
[2013-2014] ............................................................................................................................................. 23
Gi i: .................................................................................................................................................... 26
[2014-2015] ............................................................................................................................................. 28
Gi i: .................................................................................................................................................... 28
[2015-2016] ............................................................................................................................................. 29
Gi i: .................................................................................................................................................... 30
[2016-2017] ............................................................................................................................................. 33
Gi i: .................................................................................................................................................... 34
[2017-2018] ............................................................................................................................................. 38
Gi i: .................................................................................................................................................... 38
[2018-2019] ............................................................................................................................................. 42
Gi i: .................................................................................................................................................... 42
[2019-2020] ............................................................................................................................................. 47
TuanDM-HTTT2020
3
Gi i: .................................................................................................................................................... 47
CÂU 3. ........................................................................................................................................................ 50
[2013-2014] ............................................................................................................................................. 50
Gi i: .................................................................................................................................................... 51
[2014-2015] ............................................................................................................................................. 57
Gi i: .................................................................................................................................................... 58
[2015-2016] ............................................................................................................................................. 62
Gi i: .................................................................................................................................................... 66
[2016-2017] ............................................................................................................................................. 76
Gi i: .................................................................................................................................................... 82
[2017-2018] ............................................................................................................................................. 96
Gi i: .................................................................................................................................................... 99
[2018-2019] ........................................................................................................................................... 107
Gi i: .................................................................................................................................................. 111
[2019-2020] ........................................................................................................................................... 117
Gi i: .................................................................................................................................................. 118
TuanDM-HTTT2020
4
CÂU 1.
[2013-2014]
HK1
a. Phân bitc ph m vi truy c p private, protected, public và cho d
minh h a.
b. Nêu khái ni m v s k ế th a và nh m c ững °u điể a kế th a trong vi c l p
trình. Cho ví d minh h a.
HK2
a. Nêu khái ni m Constructor và Destructor. Phân bi t Constructor m nh ặc đị
và Constructor khác.
b. Phân bi tc ki u k th a ế private, protected, public.
Gii:
HK1
a.
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
TuanDM-HTTT2020
5
- K th a public: L p con k th a public tế ế l p cha thìc thành ph n protected c a
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
- K th a private: L p con k th a private t l p cha tc thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
b.
- Khái ni m:
K th nh¿ tha trong l p trìnhÁ ch 1 lp th ừa h°ởng li ng thu c nh,
ph°¢ng thức t 1 l p khác và s d ụng chúng nh° là của bn thân mình.
Một định nghĩa trừu t°ợng h¡n v k th a: mế ột đặc điểm c a ngôn ng ng đối
t°ợng dùng để biu di n m i quan h đặc bi t hoá t ng quát hoá gi a các l p.
- m: ¯u điể
Cho phép xây d ng 1 l p m i t l ớp đã có.
L p m i gi là lp con (subclass) hay lp d n xu¿ t (derived class).
Lớp đã có gi lp cha (superclass) hay lớp c¢ sở (base class).
Cho phép chia s c thông tin chung nh m i s d ng th i giúp ta ụng và đ ß
d dàngng cp, d dàng b o trì.
Định nghĩa sự t°¡ng thích giữa c l p, nh ß đó ta th chuy n ki u t động.
HK2
a.
- Khái ni m:
Ph°¢ng thức khi t o (Constructor) một ph°¡ng thức đặc biệt đ°ợc g i t động
ti th c t o. c m kh i t o nhi m v kh i t o thông tin ßi điểm đối t°ợng đ°ợ á á
ban đầu cho các đối t°ợng thuc v lớp ngay khi đối t°ợng đ°ợc khai báo.
Ph°¢ng thức ph y (Destructor) nhi m v d n d ẹp <xác chết= của đối t°ợng
khi đối t°ợng <đi bán muối=. Nói một cách khác, ph°¡ng thức phá h y nhi m v
thu hi l i t t c các tài nguyên đã cấp phát cho đối t°ợng khi đối t°ợng h t ph m vi ế
hoạt động.
- Constructor mặc định khác vi các Constructor khác á các điểm:
TuanDM-HTTT2020
6
Không tham s u vào. đầ
b.
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
- K th a public: Lế p con k th a public t l p cha tc thành ph n protected c a ế
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
- K th a private: L p con k th a private t l p cha thì c thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
_________________________________
[2014-2015]
HK2
Phân bi t các ki u k th a private, protected, public ế (2 điểm)
Gii:
HK2
TuanDM-HTTT2020
7
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
- K th a public: Lế p con k th a public t l p cha tc thành ph n protected c a ế
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
- K th a private: L p con k th a private t l p cha thì c thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
_________________________________
[2015-2016]
HK2
a. Phân bitc ki u k th a private, protected, public. ế (1 điểm)
b. Trình bày các đặc điểm quan tr ng c a l ập trình h°ớng đối ng. (1 điểm)
HK3
a. Định nghĩa constructor (ph°¡ng thức khái to) default constructor
(ph°¡ng thức khái to m nh) ặc đị (1 điểm)
b. Phân bi tc ki u k th a private, protected, public ế (1 điểm)
TuanDM-HTTT2020
8
Gii:
HK2
a.
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
- K th a public: Lế p con k th a public t l p cha tc thành ph n protected c a ế
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
- K th a private: L p con k th a private t l p cha thì c thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
b.
- Tr ng hóa Abstraction Cách nhìn ki quát a v m t t i ng ừu t°ợ ập các đố t°ợ
có chung các đặc điểm đ°ợc quan tâm (và b qua nh ng chi ti t kng c n thi t). ế ế
- Encapsulation Nhóm nh ng gì liên quan v i nhauom m t, Đóng gói để
sau y th ng m g ột cái tên để ọi đế ục đóng góin. Vd: các m/ th t c câu
lệnh, các đối t°ợng đóng gói dữ liu c a chúng và các th t c có liên quan.
TuanDM-HTTT2020
9
- Th a k - Inheritance cho phép m t l c c thu c tính và thao tác c a ế ớp D có đ°ợ
lớp C, nh° thểc thuộc tính và thao tác đó đã đ°ợc định nghĩa tại lp D. Cho phép
cài đặt nhiu quan h gi ữa các đối t°ợng: Đặc bit hóa T ng quát hóa.
- cho phép m t tên thao c ho c thu c tính có Đa hình Polymorphism Là chế
th đ°ợc định nghĩa t ều cài đặi nhiu lp th nhi t khác nhau ti mi lp
trong các lớp đó.
HK3
a.
Ph°¢ng thức kh i t o (Constructor) một ph°¡ng thức đặc biệt đ°ợc g i t động
ti th c t o. c kh i t o nhi m v kh i t o ßi điểm đối t°ợng đ°ợ Các ph°¡ng th á á
thông tin ban đầu cho các đối t°ợng thu c v l p ngay khi đốiợng đ°c khai báo.
Ph°¢ng thứ ặc địc khi to m nh (Default Constructor) là c thi t l p ph°¡ng thứ ế
c thông tin ng thu c v l p b ng giá tr m nh. Khi ban đầu cho đối t°ợ ng nh ặc đị
s d ng m t constructor, n u không g tr kh i t i dùng cung c p ế á ạo nào do ng°ß
đ°ợc truy n cho constructory, thì constructor m nh s ặc đị đ°ợc gi.
b.
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
- K th a public: Lế p con k th a public t l p cha tc thành ph n protected c a ế
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
TuanDM-HTTT2020
10
- K th a private: L p con k th a private t l p cha thì c thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
_________________________________
[2016-2017]
HK1
a. Nêu khái ni m v s kế th a và nh m cững °u điể a kế th a trong vic lp
trình. Cho ví d minh h a. (2 điểm)
b. Xét đoạn ch°¡ng trình sau:
class A{
A(int i);
};
void main(){
A a1;
A b2(5);
}
y cho biết đoạn ch°¡ng trình trên có li x y ra hay không? N u có hãy gi i ế
thích và ch rach s a l i. (1 đim)
HK2
a. Trình y khái nim ca l tr ng (abstract class). L ớp sá ừu t°ợ ớp
trừu t°ợng đ°ợc cài đặt trong C++ nh° thế nào? (1 điểm)
b. Xét đoạn ch°¡ng trình sau:
TuanDM-HTTT2020
11
#include <iostream>
using namespace std;
class Array{
int A[100];
int n;
public:
Array(int n)
{
//....
}
//....
};
void main()
{
Array M1;
Array M2(10);
cout<<M.A[3];
}
Cho biết đoạn ch°¡ng trình trên khi biên dịch li xy ra hay kng? N u ế
l i, y ch ra c l a l th c thi c. ỗi đó sử ỗi để ch°¡ng trình thể đ°ợ
(1.5 m) điể
HK3
a. Phân bit private, protected, public. (1 điểm)
b. Trình bày v constructor. (1 điểm)
Gii:
HK1
a.
- Khái ni m:
K th nh¿ tha trong l p trìnhÁ ch 1 lp th ừa ng li ng thu c nh,
ph°¢ng thức t 1 l p khác và s d ụng chúng nh° là của bn thân mình.
Một định nghĩa trừu t°ợng h¡n v k th a: mế ột đặc điểm c a ngôn ng ng đối
t°ợng dùng để biu di n m i quan h đặc bi t hoá t ng quát hoá gi a các l p.
- m: ¯u điể
Cho phép xây d ng 1 l p m i t l ớp đã có.
L p m i gi là lp con (subclass) hay lp d n xu¿ t (derived class).
Lớp đã có gi lp cha (superclass) hay lớp c¢ s (base class).
TuanDM-HTTT2020
12
Cho phép chia s c thông tin chung nh m i s d ng th i giúp ta ụng và đ ß
d dàngng cp, d dàng b o trì.
Định nghĩa sự t°¡ng thích giữa c l p, nh ß đó ta thể chuy n ki u t động.
b.
- i x y ra vì thi u t khóa d n xu t ( Đoạn ch°¡ng trình trên có lỗ ế á đây là public để
cho hàm tnh phn trong th truy xu t c trong hàm main), thi u các hàm đ°ợ ế
khái to ( hàm kh i t o m ặc định hàm kh i t đầo nhÁn tham s u vào) bên
trong l p.
- S a:
class A{
public:
A(){
}
A(int i){
}
};
void main(){
A a1;
A b2(5);
}
HK2
a.
Lớp trừu t°ợng (Abstract Class): l p ít nh ất 1 ph°¡ng thức đ°ợc khai
báo là hàm thu n o (pure virtual), m thu n nh m t hàm ảođ°ợc xác đị
virtual có kết thúc khai báo hàm là <= 0=.
d : virtual double tinhChuVi () = 0;
Trong tr°ß ớp c¡ sá ừu t°ợ các ph°¡ng thứng hp l tr ng tt c c là thun o
thì đ°ợc gi là interface (giao di n).
TuanDM-HTTT2020
13
class Xe
{
private:
string id;
string loai;
double gia_tien;
public:
virtual void Nhap() = 0;
virtual double TinhGiatien() = 0;
};
b.
- Đoạn ch°¡ng trình trên có lỗi xy ra vì:
Sai dòng A a; Array M1; vì ch°a có ph°¡ng thức khái t o m nh. ặc đị
Sai dòng cout<<M.A[3]; c khai o ng M, m c khai h°a đối t°ợ ảng A đ°ợ
báo bên ngoài t ka d n xu t public nên nó không th truy xu c trong ất đ°ợ
hàm main.
- S a:
#include <iostream>
using namespace std;
class Array{
public:
int A[100];
int n;
Array()
TuanDM-HTTT2020
14
{
}
Array(int n)
{
//....
}
//....
};
void main()
{
Array M1;
Array M2(10);
Array M;
cout<<M.A[3];
}
HK3
a.
TuanDM-HTTT2020
15
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
- K th a public: Lế p con k th a public t l p cha tc thành ph n protected c a ế
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
- K th a private: L p con k th a private t l p cha thì c thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
b.
Ph°¢ng thức thi t l p (Constructor)¿ Á một ph°¡ng thức đặc biệt đ°ợc g i t động
ti th c t o. Các c thi t l p nhi m v thi t l p ßi điểm đối t°ợng đ°ợ ph°¡ng thứ ế ế
thông tin ban đầu cho các đối t°ợng thu c v l p ngay khi đốiợng đ°c khai báo.
Đặc điểm:
tên trùng v i tên l p.
Không ki u d li u tr v .
Đ°ợc t độ ng gi th c hin ngay khi một đối t°ợng đ°c khai báo.
th có nhi ều ph°¡ng thức thiết l p trong 1 l p.
Trong mt quá trình s ng c ủa đốing thì ch có 1 l n duy nh t m t ph°¡ng
thc thiết lp đ°c gi th c hi ện mà thôi, đó là khi đối t°ợng ra đßi.
Các ph°¡ng thức thiết lp ca lp thuộc nhóm các ph°¡ng thức khái to.
TuanDM-HTTT2020
16
_________________________________
[2017-2018]
HK1
a. Phân bitc ph m vi truy c p private, protected và public. (1 điểm)
b. Cho biết ý nghĩa và mục đích của các hàm get/set trong m t l p. (1 điểm)
HK2
a.m thu n o là gì? L p tr u t°ợng gì? Cho ví d minh h a. (1 điểm)
b. Hãy nêu các đặc điểm quan trng c a l ập trình h°ớng đối t°ợng. (1 điểm)
Gii:
HK1
a.
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
- K th a public: Lế p con k th a public t l p cha tc thành ph n protected c a ế
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
- K th a private: L p con k th a private t l p cha thì c thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
TuanDM-HTTT2020
17
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
b.
Hàm get: truy v n d li u private t i ng c giá tr c thành viên d các đố t°ợ (đọ
li u) . Đặc điểm quan tr ng c ủa ph°¡ng thức truy v n là nó không nên thay đổi tr ng
thái hi n t i c ủa đối t°ợng.
Hàm set: cp nh t d li u private t các đối t°ợng (ghi giá tr cho các thành viên d
li u) . Ph°¡ng thứ ật th°ßng đ thay đổ ủa đối t°ợc cp nh i trng thái c ng bng ch
sửa đổi mt ho c nhi u thành viên d li u c ủa đối t°ợng đó.
HK2
a.
Hàm thu n o (Ph°¢ng thức o thu n tuý) ý nghĩa cho việc t ch ức đồ pn
cp các l a s n ch tr ng cho các l n vào v i phiên ớp, nó đóng vai trò ch ớp con đi
bn phù hợp. Ph°¡ng thức o thuần tuý là ph°¡ng thức o khôngn i dung, đ°ợc
khai báo v i t khóa virtual và đ°c gán giá tr =0.
Khi lớp có ph°¡ng thức o thun tuý, l p tr thành l tr ng. L á ớp c¡ sá ừu t°ợ ớp c¡ sá
trừu t°ợng không có đối t°ợng nào thu c chính nó.
class Shape //Abstract
{
public :
//Pure virtual Function
virtual void draw() = 0;
}
Trong d trên, các hàm thành ph n trong l c o thu n tuý ớp Shape là ph°¡ng th
và l p Shape là l tr ng. b m không th t ng ớp ừu t°ợ ảo đả ạo đ°ợc đối t°ợ
thuc lp Shape.
b.
- Tr ng a Abstraction: ch nhìn ki quát a v m t t ng ừu t°ợ ập các đối t°ợ
có chung các đặc điểm đ°ợc quan tâm (và b qua nh ng chi ti t kng c n thi t). ế ế
TuanDM-HTTT2020
18
- Encapsulation: Nhóm nhĐóng gói – ng gì có liên quan v i nhau vào làm m ột, để
sau y th ng m g ột cái tên để ọi đế ục đóng gói các câun. Vd: các m/ th t
lệnh, các đối t°ợng đóng gói dữ liu c a chúng và các th t c có liên quan.
- Th a k - Inheritance: Cho phép m ế t lp D có đ°ợc các thu cnh và thaoc c a
lớp C, nh° thểc thuộc tính và thao tác đó đã đ°ợc định nghĩa tại lp D. Cho phép
cài đặt nhiu quan h gi ữa các đối t°ợng: Đặc bit hóa T ng quát hóa
- Polymorphism: cho phép m t tên thaoc ho c thu c tính có Đa hình – Là c¡ chế
th đ°ợc định nghĩa t ều cài đặi nhiu lp th nhi t khác nhau ti mi lp
trong các lớp đó.
_________________________________
[2018-2019]
HK1
a. Phân bi t khái ni m l ng trong l ng. ớp đối t°ợ ập trình h°ớng đối t°ợ (1
điểm)
b. Trình bày khái niệm đa hình trong ập trình h°ớng đối t°ợl ng (1 đim). Cho
ví d . (0.5 điểm)
HK2
a. Phân bit khái ni m overload (t i ch ồng) và override (ghi đè). (1 điểm)
b. Phân bi tc ki u k th a private, protected và public. ế (1 điểm)
Gii:
HK1
a.
L p là m t mô t tr ng c ng ng bừu t°ợ ủa nhóm các đối t°ợ n ch c ất, ng°ợ
li mi m t đối t°ợng là m t th hi n c th cho nh ng t tr ừu t°ợng đó.
L p i ta thi t k và l p trình. ế ế Đối t°ợng cái ta t o (t m t l p) t i th i ß
gian ch y.
b.
Đa hình: Là hi ng thu c các l p kc nhau kh u ện t°ợng các đối t°ợ năng hiể
cùng một thông điệp theo các cách khác nhau.
TuanDM-HTTT2020
19
d : Nh c ng m ận đ°ợ ột thông điệp <nhảy=, m t con kangaroo m t con cóc
nhy theo hai ki có hành vi này ểu khác nhau: chúng cùng có hành vi <nhảy= nh°ng
có n i dung khác nhau.
HK2
a.
Override
Overload
Khái
nim
m t ột tính năng cho phép m
lp con ho c l p con cung c p m t
trin khai c th c a m ột ph°¡ng
thức đã đ°ợc cung cp bái mt
trong các l p siêu ho c c l p cha
ca nó. i ch kc, n u l p con ế
cung c p trình tri n khai c th
ca ph°¡ng thức đã đ°ợc cung
cp b i m t trong c l p cha c a á
nó, thì đó là ghi đè ph°¡ng thứ c.
Np ch n ồng ph°¡ng thức đ¡n gi
c trùng tên vài ph°¡ng thứ
nh°ng khác nhau v i s đố . Cài
chng ph°¡ng thức cho phép ta
to nhi u phiên b n c a m t
ph°¡ng thức, mi phiên bn chp
nhn m đốt danh sách i s khác
nhau, nh m t o thu n l i cho vi c
gọi ph°¡ng thức.
Hành vi
Thay đổi nh vi hin ti ca
ph°¡ng th c.
Thêm ho c m r ng cho nh vi á
ca ph°¡ng thức.
Đa hình
Th hiện tính đa hình tại run time.
Th hiện tính đa hình tại compile
Danh
sách
tham s
Danh ch tham s ph i gi ng
nhau.
Danh sách tham s khác nhau (s
l°ợng, th t , ki u d li u)
Giá tr
tr vÁ
Kiu tr v b t buc ph i gi ng
nhau.
Kiu tr v có th khác nhau.
Phm vi
Xy ra gi a 2 class quan h k ế
tha
Xy ra trong ph m vi ng 1 class.
b.
TuanDM-HTTT2020
20
- Thành ph n private l p cha thì không truy xu c l á ất đ°ợ á p con
- K th a public: Lế p con k th a public t l p cha tc thành ph n protected c a ế
lp cha tr thành protected c a l p con, c thành ph n public c a l p cha tr thành á á
public c a l p con.
- K th a private: L p con k th a private t l p cha thì c thành ph n protected ế ế
và public c a l p cha trá thành private c a l p con.
- K th a protected: L p con k th a protected t l p cha thì c thành ph n ế ế
protected và public c a l p cha tr thành protected c a l p con. á
_________________________________
[2019-2020]
HK2
a. Hãy trình y nh m cững đặc điể ủa tính đóng gói (encapsulation) lp trình
h°ớng đối t°ợng. Tr°ß ạm nh đóng gói? Cho ng hp o thì th vi ph
d minh h a. (1 điểm)
b. y trình y nh m c a k thững °u điể ế a trong vic l i ập trình h°ớng đố
t°ợng và cho ví d minh h a. (1 điểm)
Gii:
a.
| 1/122

Preview text:

ĐẠI H C Q Þ U C GIA THÀNH P Þ H Þ H CHÍ MINH ĐẠI H C CÔNG NG H THÔNG TIN
- - - ú  û û - - -
ĐÀ C¯¡NG ÔN TÀP Môn: OOP – Lập trình h°ớng ố đ i t°ợng
Đặng Minh Tuấn – 20522106 – HTTT2020 TuanDM-HTTT2020 N฀฀i dung
CÂU 1. .......................................................................................................................................................... 4
[2013-2014] ............................................................................................................................................... 4 Gi i
: ...................................................................................................................................................... 4
[2014-2015] ............................................................................................................................................... 6 Gi i
: ...................................................................................................................................................... 6
[2015-2016] ............................................................................................................................................... 7 Gi i
: ...................................................................................................................................................... 8
[2016-2017] ............................................................................................................................................. 10 Gi i
: .................................................................................................................................................... 11
[2017-2018] ............................................................................................................................................. 16 Gi i
: .................................................................................................................................................... 16
[2018-2019] ............................................................................................................................................. 18 Gi i
: .................................................................................................................................................... 18
[2019-2020] ............................................................................................................................................. 20 Gi i
: .................................................................................................................................................... 20
CÂU 2. ........................................................................................................................................................ 23
[2013-2014] ............................................................................................................................................. 23 Gi i
: .................................................................................................................................................... 26
[2014-2015] ............................................................................................................................................. 28 Gi i
: .................................................................................................................................................... 28
[2015-2016] ............................................................................................................................................. 29 Gi i
: .................................................................................................................................................... 30
[2016-2017] ............................................................................................................................................. 33 Gi i
: .................................................................................................................................................... 34
[2017-2018] ............................................................................................................................................. 38 Gi i
: .................................................................................................................................................... 38
[2018-2019] ............................................................................................................................................. 42 Gi i
: .................................................................................................................................................... 42
[2019-2020] ............................................................................................................................................. 47 2 TuanDM-HTTT2020 Gi i
: .................................................................................................................................................... 47
CÂU 3. ........................................................................................................................................................ 50
[2013-2014] ............................................................................................................................................. 50 Gi i
: .................................................................................................................................................... 51
[2014-2015] ............................................................................................................................................. 57 Gi i
: .................................................................................................................................................... 58
[2015-2016] ............................................................................................................................................. 62 Gi i
: .................................................................................................................................................... 66
[2016-2017] ............................................................................................................................................. 76 Gi i
: .................................................................................................................................................... 82
[2017-2018] ............................................................................................................................................. 96 Gi i
: .................................................................................................................................................... 99
[2018-2019] ........................................................................................................................................... 107 Gi i
: .................................................................................................................................................. 111
[2019-2020] ........................................................................................................................................... 117 Gi i
: .................................................................................................................................................. 118 3 TuanDM-HTTT2020 CÂU 1. [2013-2014] HK1
a. Phân biệt các phạm vi truy cập private, protected, public và cho ví dụ minh h a ọ .
b. Nêu khái niệm về s ự kế th a
ừ và những °u điểm của kế th a ừ trong việc lập
trình. Cho ví dụ minh họa. HK2
a. Nêu khái niệm Constructor và Destructor. Phân biệt Constructor mặc định và Constructor khác.
b. Phân biệt các kiểu kế th a
private, protected, public. Gii: HK1 a.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con 4 TuanDM-HTTT2020 - Kế th a
ừ public: Lớp con kế th a
ừ public từ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b. - Khái niệm:
K¿ tha trong lÁp trình là cách 1 lớp có thể thừa h°ởng li nhng thuc tính,
ph°¢ng thức t 1 l p khác và s
ử dụng chúng nh° là của bản thân mình.
Một định nghĩa trừu t°ợng h¡n về kế th a
ừ : là một đặc điểm của ngôn ng ữ h°ớng đối
t°ợng dùng để biểu diễn m i
ố quan hệ đặc bit hoá t ng quát hoá gi a ữ các lớp. - ¯u điểm: • Cho phép xây d n ự g 1 lớp mới t ừ lớp đã có.
▪ Lớp mới gọi là lp con (subclass) hay lp d¿n xut (derived class).
▪ Lớp đã có gọi là lp cha (superclass) hay lớp c¢ sở (base class).
• Cho phép chia sẻ các thông tin chung nhằm tái s ử dụng và đ n ồ g thßi giúp ta
dễ dàng nâng cấp, dễ dàng bảo trì.
• Định nghĩa sự t°¡ng thích giữa các lớp, nhß đó ta có thể chuyển kiểu t ự động. HK2 a. - Khái niệm:
Ph°¢ng thức khi t o
(Constructor) là một ph°¡ng thức đặc biệt đ°ợc gọi t ự động
tại thßi điểm đối t°ợng đ°ợc tạo. Các hàm khái tạo có nhiệm v ụ khái tạo thông tin
ban đầu cho các đối t°ợng thuộc về lớp ngay khi đối t°ợng đ°ợc khai báo.
Ph°¢ng thức phá h y
(Destructor) có nhiệm vụ d n
ọ dẹp khi đối t°ợng <đi bán muối=. Nói một cách khác, ph°¡ng thức phá h y ủ có nhiệm vụ
thu hồi lại tất cả các tài nguyên đã cấp phát cho đối t°ợng khi đối t°ợng hết phạm vi hoạt động.
- Constructor mặc định khác với các Constructor khác á các điểm: 5 TuanDM-HTTT2020
• Không có tham số đầu vào. • … b.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2014-2015] HK2
Phân biệt các kiểu kế th a
ừ private, protected, public (2 điểm) Gii: HK2 6 TuanDM-HTTT2020
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2015-2016] HK2
a. Phân biệt các kiểu kế th a
ừ private, protected, public. (1 điểm )
b. Trình bày các đặc điểm quan tr n ọ g c a
ủ lập trình h°ớng đối t°ợng. (1 điểm) HK3
a. Định nghĩa constructor (ph°¡ng thức khái tạo) và default constructor
(ph°¡ng thức khái tạo mặc định) (1 điểm )
b. Phân biệt các kiểu kế th a
ừ private, protected, public (1 điểm) 7 TuanDM-HTTT2020 Gii: HK2 a.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b.
- Trừu t°ợng hóa – Abstraction Cách nhìn khái quát hóa về một tập các đ i ố t°ợng
có chung các đặc điểm đ°ợc quan tâm (và bỏ qua nh n
ữ g chi tiết không cần thiết). - Đóng gói – Encapsulation Nhóm nh n
ữ g gì có liên quan với nhau vào làm m t ộ , để
sau này có thể dùng một cái tên để gọi đến. Vd: các hàm/ thủ tục đóng gói các câu
lệnh, các đối t°ợng đóng gói dữ liệu của chúng và các thủ tục có liên quan. 8 TuanDM-HTTT2020 - Th a
ừ kế - Inheritance cho phép m t
ộ lớp D có đ°ợc các thuộc tính và thao tác của
lớp C, nh° thể các thuộc tính và thao tác đó đã đ°ợc định nghĩa tại lớp D. Cho phép
cài đặt nhiều quan hệ giữa các đối t°ợng: Đặc biệt hóa – T n ổ g quát hóa.
- Đa hình – Polymorphism Là c¡ chế cho phép m t
ộ tên thao tác hoặc thuộc tính có
thể đ°ợc định nghĩa tại nhiều lớp và có thể có nhiều cài đặt khác nhau tại mỗi lớp trong các lớp đó. HK3 a. Ph°¢ng thức kh i t o
(Constructor) là một ph°¡ng thức đặc biệt đ°ợc gọi t ự động
tại thßi điểm đối t°ợng đ°ợc tạo. Các ph°¡ng th c
ứ khái tạo có nhiệm vụ khái tạo
thông tin ban đầu cho các đối t°ợng thuộc về lớp ngay khi đối t°ợng đ°ợc khai báo.
Ph°¢ng thức khi to mặc định (Default Constructor) là ph°¡ng th c ứ thiết lập
các thông tin ban đầu cho đối t°ợng thuộc về lớp bằng nh n
ữ g giá trị mặc định. Khi sử d n ụ g m t
ộ constructor, nếu không có giá trị khái tạo nào do ng°ßi dùng cung cấp
đ°ợc truyền cho constructor này, thì constructor mặc định sẽ đ°ợc gọi. b.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. 9 TuanDM-HTTT2020 - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2016-2017] HK1
a. Nêu khái niệm về sự kế t ừ
h a và những °u điểm của kế t ừ h a trong việc lập
trình. Cho ví dụ minh họa. (2 điểm)
b. Xét đoạn ch°¡ng trình sau: class A{ A(int i); }; void main(){ A a1; A b2(5); }
Hãy cho biết đoạn ch°¡ng trình trên có lỗi xảy ra hay không? Nếu có hãy giải thích và chỉ ra cách s a ử l i ỗ . (1 điểm) HK2
a. Trình bày khái niệm của lớp c¡ sá trừu t°ợng (abstract class). Lớp c¡ sá
trừu t°ợng đ°ợc cài đặt trong C++ nh° thế nào? (1 điểm)
b. Xét đoạn ch°¡ng trình sau: 10 TuanDM-HTTT2020 #include void main() using namespace std; { class Array{ Array M1; int A[100]; Array M2(10); int n; cout<public: } Array(int n) { //.... } //.... };
Cho biết đoạn ch°¡ng trình trên khi biên dịch có lỗi xảy ra hay không? Nếu
có lỗi, hãy chỉ ra các lỗi đó và s a
ử lỗi để ch°¡ng trình có thể th c ự thi đ°ợc. (1.5 điểm) HK3
a. Phân biệt private, protected, public. (1 điểm)
b. Trình bày về constructor. (1 điểm) Gii: HK1 a. - Khái niệm:
K¿ tha trong lÁp trình là cách 1 lớp có thể thừa h°ởng li nhng thuc tính,
ph°¢ng thức t 1 l p khác và s
ử dụng chúng nh° là của bản thân mình.
Một định nghĩa trừu t°ợng h¡n về kế th a
ừ : là một đặc điểm của ngôn ng ữ h°ớng đối
t°ợng dùng để biểu diễn m i
ố quan hệ đặc bit hoá t ng quát hoá gi a ữ các lớp. - ¯u điểm: • Cho phép xây d n ự g 1 lớp mới t ừ lớp đã có.
▪ Lớp mới gọi là lp con (subclass) hay lp d¿n xut (derived class).
▪ Lớp đã có gọi là lp cha (superclass) hay lớp c¢ sở (base class). 11 TuanDM-HTTT2020
• Cho phép chia sẻ các thông tin chung nhằm tái s ử dụng và đ n ồ g thßi giúp ta
dễ dàng nâng cấp, dễ dàng bảo trì.
• Định nghĩa sự t°¡ng thích giữa các lớp, nhß đó ta có thể chuyển kiểu t ự động. b.
- Đoạn ch°¡ng trình trên có lỗi xảy ra vì thiếu t
ừ khóa dẫn xuất (á đây là public để
cho hàm thành phần trong nó có thể truy xuất đ°ợc trong hàm main), thiếu các hàm khái tạo (hàm kh i
to mặc địn h hàm kh i
to nhÁn tham s đầu vào) bên trong lớp. - S a ử : class A{ public: A(){ } A(int i){ } }; void main(){ A a1; A b2(5); } HK2 a.
• Lớp c¡ sá trừu t°ợng (Abstract Class): lớp có ít nhất 1 ph°¡ng thức đ°ợc khai
báo là hàm thuần ảo (pure virtual), hàm thuần ảođ°ợc xác định là một hàm
virtual có kết thúc khai báo hàm là <= 0=. Ví d :
ụ virtual double tinhChuVi () = 0;
• Trong tr°ßng hợp lớp c¡ sá trừu t°ợng có tất cả các ph°¡ng thức là thuần ảo
thì đ°ợc gọi là interface (giao diện). 12 TuanDM-HTTT2020 class Xe { private: string id; string loai; double gia_tien; public: virtual void Nhap() = 0;
virtual double TinhGiatien() = 0; }; b.
- Đoạn ch°¡ng trình trên có lỗi xảy ra vì:
• Sai dòng A a; Array M1; vì ch°a có ph°¡ng thức khái tạo mặc định.
• Sai dòng cout<báo bên ngoài t
ừ khóa dẫn xuất public nên nó không thể truy xuất đ°ợc trong hàm main. - S a ử : #include using namespace std; class Array{ public: int A[100]; int n; Array() 13 TuanDM-HTTT2020 { } Array(int n) { //.... } //.... }; void main() { Array M1; Array M2(10); Array M; cout<} HK3 a. 14 TuanDM-HTTT2020
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b. Ph°¢ng thức thi t ¿ l p
Á (Constructor) là một ph°¡ng thức đặc biệt đ°ợc gọi t ự động
tại thßi điểm đối t°ợng đ°ợc tạo. Các ph°¡ng th c
ứ thiết lập có nhiệm vụ thiết lập
thông tin ban đầu cho các đối t°ợng thuộc về lớp ngay khi đối t°ợng đ°ợc khai báo. Đặc điểm:
• Có tên trùng với tên lớp. • Không có kiểu d ữ liệu trả về. • Đ°ợc t ự động gọi t ự
h c hiện ngay khi một đối t°ợng đ°ợc khai báo.
• Có thể có nhiều ph°¡ng thức thiết lập trong 1 lớp.
• Trong một quá trình sống của đối t°ợng thì chỉ có 1 lần duy nhất một ph°¡ng
thức thiết lập đ°ợc gọi th c
ự hiện mà thôi, đó là khi đối t°ợng ra đßi.
• Các ph°¡ng thức thiết lập của lớp thuộc nhóm các ph°¡ng thức khái tạo. 15 TuanDM-HTTT2020
_________________________________ [2017-2018] HK1
a. Phân biệt các phạm vi truy cập private, protected và public. (1 điểm )
b. Cho biết ý nghĩa và mục đích của các hàm get/set trong m t ộ lớp. (1 điểm) HK2 a. Hàm thuần ả
o là gì? Lớp trừu t°ợng là gì? Cho ví dụ minh h a ọ . (1 điểm)
b. Hãy nêu các đặc điểm quan trọng của lập trình h°ớng đối t°ợng. (1 điểm ) Gii: HK1 a.
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. 16 TuanDM-HTTT2020 - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con. b. Hàm get: truy vấn d
ữ liệu private từ các đ i
ố t°ợng (đọc giá trị các thành viên d ữ
liệu). Đặc điểm quan tr n
ọ g của ph°¡ng thức truy vấn là nó không nên thay đổi trạng
thái hiện tại của đối t°ợng.
Hàm set: cập nhật d ữ liệu private t
ừ các đối t°ợng (ghi giá trị cho các thành viên d ữ
liệu). Ph°¡ng thức cập n ậ
h t th°ßng để thay đổi trạng thái của đối t°ợng bằng cách
sửa đổi một hoặc nhiều thành viên d
ữ liệu của đối t°ợng đó. HK2 a.
Hàm thun ảo (Ph°¢ng thức o thun tuý) có ý nghĩa cho việc tổ chức s¡ đồ phân
cấp các lớp, nó đóng vai trò ch a
ừ sẵn chỗ trống cho các lớp con điền vào với phiên
bản phù hợp. Ph°¡ng thức ảo thuần tuý là ph°¡ng thức ảo không có n i ộ dung, đ°ợc khai báo với t
ừ khóa virtual và đ°ợc gán giá trị =0.
Khi lớp có ph°¡ng thức ảo thuần tuý, lớp trá thành lớp c¡ sá trừu t°ợng. Lớp c¡ sá
trừu t°ợng không có đối t°ợng nào thu c ộ chính nó. class Shape //Abstract { public : //Pure virtual Function virtual void draw() = 0; }
Trong ví dụ trên, các hàm thành phần trong lớp Shape là ph°¡ng th c ứ ảo thuần tuý
và lớp Shape là lớp c¡ sá trừu t°ợng. Nó bảo đảm không thể tạo đ°ợc đối t°ợng thuộc lớp Shape. b.
- Trừu t°ợng hóa – Abstraction: Cách nhìn khái quát hóa về m t
ộ tập các đối t°ợng
có chung các đặc điểm đ°ợc quan tâm (và bỏ qua nh n
ữ g chi tiết không cần thiết). 17 TuanDM-HTTT2020 - Đóng gói
– Encapsulation: Nhóm những gì có liên quan với nhau vào làm một, để
sau này có thể dùng một cái tên để gọi đến. Vd: các hàm/ thủ tục đóng gói các câu
lệnh, các đối t°ợng đóng gói dữ liệu của chúng và các thủ tục có liên quan. - Th a
ừ kế - Inheritance: Cho phép một lớp D có đ°ợc các thuộc tính và thao tác của
lớp C, nh° thể các thuộc tính và thao tác đó đã đ°ợc định nghĩa tại lớp D. Cho phép
cài đặt nhiều quan hệ giữa các đối t°ợng: Đặc biệt hóa – T n ổ g quát hóa
- Đa hình – Polymorphism: Là c¡ chế cho phép một tên thao tác hoặc thuộc tính có
thể đ°ợc định nghĩa tại nhiều lớp và có thể có nhiều cài đặt khác nhau tại mỗi lớp trong các lớp đó.
_________________________________ [2018-2019] HK1
a. Phân biệt khái niệm lớp và đối t°ợng trong lập trình h°ớng đối t°ợng. (1 điểm)
b. Trình bày khái niệm đa hình trong lập trình h°ớng đối t°ợng (1 điểm). Cho
ví dụ (0.5 điểm . ) HK2
a. Phân biệt khái niệm overload (tải chồng) và override (ghi đè). (1 điểm)
b. Phân biệt các kiểu kế th a
ừ private, protected và public. (1 điểm ) Gii: HK1 a. L p
ớ là một mô tả trừu t°ợng của nhóm các đối t°ợng cùng bản chất, ng°ợc lại mỗi m t
ộ đối t°ợng là một thể hiện cụ thể cho nh n
ữ g mô tả trừu t°ợng đó. • L p
ớ là cái ta thiết kế và lập trình. Đối t°ợng là cái ta tạo (t ừ một lớp) tại thßi gian chạy. b.
Đa hình: Là hiện t°ợng các đối t°ợng thu c
ộ các lớp khác nhau có khả năng hiểu
cùng một thông điệp theo các cách khác nhau. 18 TuanDM-HTTT2020
Ví dụ: Nhận đ°ợc cùng một thông điệp nhảy theo hai kiểu khác nhau: chúng cùng có hành vi ó hành vi này có n i ộ dung khác nhau. HK2 a. Override Overload
Là một tính năng cho phép m t
ộ Nạp chồng ph°¡ng thức đ¡n giản
lớp con hoặc lớp con cung cấp một là có vài ph°¡ng th c ứ trùng tên
triển khai cụ thể của một ph°¡ng nh°ng khác nhau về đ iố số. Cài
thức đã đ°ợc cung cấp bái một Khái
chồng ph°¡ng thức cho phép ta
trong các lớp siêu hoặc các lớp cha ni
tạo nhiều phiên bản của m t ộ ệm
của nó. Nói cách khác, nếu lớp con ph°¡ng thức, mỗi phiên bản chấp
cung cấp trình triển khai cụ thể nhận một danh sách đối số khác
của ph°¡ng thức mà đã đ°ợc cung nhau, nhằm tạo thuận lợi cho việc cấp bái m t ộ trong các lớp cha c a ủ gọi ph°¡ng thức. nó, thì đó là g hi đè ph°¡ng thức.
Hành vi Thay đổi hành vi hiện tại của Thêm hoặc má r n ộ g cho hành vi ph°¡ng t ứ h c. của ph°¡ng thức.
Đa hình Thể hiện tính đa hình tại run time. Thể hiện tính đa hình tại compile Danh sách Danh sách tham s ố phải gi n
ố g Danh sách tham số khác nhau (s ố tham s ố nhau. l°ợng, th ứ t , ự kiểu d ữ liệu)
Giá tr Kiểu trả về bắt buộc phải giống tr
Kiểu trả về có thể khác nhau. ả vÁ nhau. Ph ữ ệ ế
m vi Xảy ra gi a 2 class có quan h k Xảy ra trong phạm vi cùng 1 class. thừa b. 19 TuanDM-HTTT2020
- Thành phần private á lớp cha thì không truy xuất đ°ợc á lớp con - Kế th a
ừ public: Lớp con kế th a ừ public t
ừ lớp cha thì các thành phần protected c a ủ
lớp cha trá thành protected của lớp con, các thành phần public của lớp cha trá thành public của lớp con. - Kế th a
ừ private: Lớp con kế th a ừ private t
ừ lớp cha thì các thành phần protected
và public của lớp cha trá thành private của lớp con. - Kế th a
ừ protected: Lớp con kế th a ừ protected t
ừ lớp cha thì các thành phần
protected và public của lớp cha trá thành protected của lớp con.
_________________________________ [2019-2020] HK2
a. Hãy trình bày những đặc điểm của tính đóng gói (encapsulation) lập trình
h°ớng đối t°ợng. Tr°ßng hợp nào thì có thể vi p ạ
h m tính đóng gói? Cho ví dụ minh h a ọ . (1 điểm)
b. Hãy trình bày những °u điểm của kế thừa trong việc lập trình h°ớng đ i ố
t°ợng và cho ví dụ minh họa. (1 điểm) Gii: a. 20