Lập tŕnh hướng đối tượng
Bài tập thực hành

Tuần 5. Thừa kế.

 

 


Bài 1.

1.a

Viết các lớp Person, Employee, Manager như thiết kế trong sơ đồ.

Bổ sung các phương thức thích hợp nếu thấy cần.

Định nghĩa lại các phương thức toString() cho phù hợp với dữ liệu

tại mỗi lớp.

Viết lớp PeopleTest để chạy thử các lớp trên, gợi ư nội dung:

Employee newbie = new Employee

    (“Newbie”, new Date(10,2,1989), 1000000);

Manager boss = new Manager

    (“Boss”, new Date(23,2,1979), 4000000);

boss.setAssistant(newbie);

Manager bigBoss = new Manager

    (“Big Boss”, new Date(3,12,1969), 10000000);

bigBoss.setAssistant(boss);

In thông tin của 3 đối tượng trên ra màn h́nh

 

1.b. Trong hàm main của lớp PeopleTest, tạo 1 mảng kiểu Person,

gắn 3 đối tượng ở trên vào mảng, rồi dùng ṿng lặp để in ra thông tin về các đối tượng trong mảng.

 

1.c. Tách các lớp Person, Employee vào trong package peoples. Đặt Manager PeopleTestvào package mặc định. Chỉnh lại các khai báo quyền truy nhập để chương tŕnh viết ở trên lại chạy được.

 

Bài 2

1.a. Viết class Animal (động vật) trong package animals có một thuộc tính kiểu String: name, và các phương thức thành viên sau:

·         Phương thức tạo (constructor) public Animal(String) khởi tạo thuộc tính name.

·         Phương thức getName().

·         Phương thức public void sayHello() viết màn h́nh một lời chào “Well… I don’t know what to say.”

Viết class AnimalsTest nằm ngoài package animals để chạy thử lớp Animal.

 

2.b. Viết hai lớp Cat (mèo) và Cow (ḅ) nằm trong gói animals là các lớp con của Animal. Trong đó, định nghĩa lại sayHello() để mèo kêu “Meow…” c̣n ḅ kêu “Mooo….”.

 

2.c. Viết các phương thức tạo thích hợp để có thể khởi tạo các đối tượng mà không cần cung cấp tham số. name mặc định sẽ nhận giá trị “no name”.

 

2.d. Viết thêm (các) phương thức selfIntroduce() với chức năng in ra màn h́nh lời tự giới thiệu có dạng: “My name is …..I am a ….”