Mục đích & yêu cầu Giới thiệu một thành phần cơ bản: Đối tượng Object, Lớp trừu tượng, gói, giao diện.. Giao diện Interfaces• Những phần của một chương trình Java: Lệnh khai báo gói
Trang 1Chương 5 Lớp trừu
tượng, Gói, Giao diện
Trang 2Mục đích & yêu cầu
Giới thiệu một thành phần cơ bản: Đối tượng Object, Lớp trừu tượng, gói, giao diện.
Giải thích được lớp trừu tượng là gì, Gói, giao diện là gì?
Sử dụng các thành phần này, viết một
chương trình đơn giản.
Trang 41 Đối tượng Object
Đây là đối tượng cấp cao nhất của mọi lớp trong Java Mọi lớp trong Java đều kế thừa từ lớp này.
Đối tượng Object có một số phương thức:
Ta có thể dùng tham chiếu của lớp Object để
tham chiếu đến một đối tượng thuộc lớp bất kỳ.
Trang 52- Lớp trừu tượng
Lớp trừu tượng là gì?
• Xem kết qủa của việc khái quát hóa sau:
class ANIMAL void Travel();
class Bird class Fish class Snake
Bạn có hình dung nổi một ANIMAL di chuyển như thế nào không?
Không Trừu tượng
Trang 6 Là kết qủa của việc khái quát hóa cao đến nỗi
không biết viết code thế nào.
Là lớp có những hành vi chỉ khai báo mà không viết code Để dành code cụ thể sẽ được hiện thực
Trang 72 - Lớp trừu tượng
abstract <khai báo phương thức>;
duocTN() của lớp SV.
Trang 8 Khai báo lớp trừu tượng:
abstract class <tên lớp>
{
khai báo các thành phần của lớp
}
Trang 9 Lưu ý: không thể tạo đối tượng từ lớp trừu tượng
Trang 102 - Lớp trừu tượng
Lớp kế thừa từ lờp trừu tượng phải khai
báo tường minh các PTTT nếu không cũng
là lớp trừu tượng
Ví dụ: khai báo lớp SVSP kế thừa từ lớp SV
class SVSP extends SV{
… public boolean duocTN(){…}
}
Trang 112 - Lớp trừu tượng
kế thừa từ lớp SV, là lớp trừu tượng abstract class SVTC extends SV
Trang 122 - Lớp trừu tượng
Trang 13Chưa thể viết code vì lương 1 người =
lương cơ bản * hệ số
2 - Lớp trừu tượng
Trang 145.3- Đặc điểm của lớp trừu tượng.
Trang 15Vì biến đối tượng là tham khảo chỉ đến đối tượng nên một biến thuộc lớp cha nhưng lại chỉ đến một lớp con là lớp trừ tượng
2 - Lớp trừu tượng
Trang 16Biến lớp ông chỉ đến
•Lớp con cũng là lớp trừu tượng
2 - Lớp trừu tượng
Trang 172 - Lớp trừu tượng
Trang 182.2 Ví dụ
các hình: tròn, tam giác, chữ nhật
mảng các đối tượng và tính tổng diện tích của các hình trong mảng.
Trang 24 Giao diện (Interfaces)
• Những phần của một chương trình Java:
Lệnh khai báo gói(package )
Lệnh chỉ định gói được dùng (Lệnh import)
Khai báo lớp public (một file java chỉ chứa 1 lớp public class)
Các lớp khác (classes private to the package)
• Tập tin nguồn Java có thể chứa tất cả hoặc một
Trang 253 Packages
lớp, interface và các gói con khác Đó
là những thành viên của gói
Trang 26 Những ưu điểm khi dùng gói (Package):
• Cho phép tổ chức các lớp vào những đơn
vị nhỏ hơn
• Giúp tránh được tình trạng trùng lặp khi đặt tên
• Cho phép bảo vệ các lớp đối tượng
• Tên gói (Package) có thể được dùng để
nhận dạng chức năng của các lớp
3 Packages
Trang 27 Những lưu ý khi tạo gói:
• Mã nguồn phải bắt đầu bằng lệnh ‘package’
• Mã nguồn phải nằm trong cùng thư mục mang tên
của gói
• Tên gói nên bắt đầu bằng ký tự thường (lower case)
để phân biệt giữa lớp đối tượng và gói
• Những lớp đối tượng trong gói cần phải được biên
dịch
3 Packages
Trang 28 Import gói (Importing packages):
• Xác định tập tin cần được import trong gói
• Hoặc có thể import toàn bộ gói
3 Packages
Trang 293 Packages
• Khai báo gói
• Import những gói chuẩn cần thiết
• Khai báo và định nghĩa các lớp đối tượng có trong gói
• Lưu các định nghĩa trên thành tập tin java, và biên dịch những lớp đối tượng đã được định
Trang 30 Sử dụng những gói do người dùng định nghĩa (user-defined packages)
• Mã nguồn của những chương trình này phải ở cùng
thư mục của gói do người dùng định nghĩa
• Để những chương trình Java khác sử dụng những
gói này, import gói vào trong mã nguồn
• Import những lớp đối tượng cần dùng
• Import toàn bộ gói
3 Packages
Trang 323 Packages
•Gói và điều khiển truy xuất (Packages & Access Control)
Cùng class YES YES YES YES Cùng gói, khác
Trang 334 Giao diện (Interface)
Giao diện là một giải pháp của Java nhằm thay thế cho đa kế thừa
Một giao diện là một tập các hằng, các
mẫu phương thức (prototype) mà không
có cài đặt chi tiết
Khai báo giao diện:
interface <tên giao diện>
{
Trang 344 Giao diện (Interface)
Trang 354 Giao diện (Interface)
Có thể coi giao diện như một lớp trừu
tượng đặc biệt: các phương thức đều trừu tượng
Khai báo lớp cài đặt giao diện: phải tường minh các phương thức của giao diện
Cú pháp:
{
Trang 364 Giao diện (Interface)
Ví dụ: lớp hình chữ nhật cài đặt giao diện TinhToanHinh
class HinhChuNhat implements TinhToanHinh{ private double dai, rong;
public HinhChuNhat(double d, double r)
{dai = d; rong = r;}
public double chuvi(){ return dai+rong;} public double dientich(){return dai*rong;}
Trang 374 Giao diện (Interface)
Lớp hình tròn cài đặt giao diện TinhToanHinh
class HinhTron implements TinhToanHinh {
private double bankinh;
public HinhTron(double d) { bankinh = d;} public double chuvi() { return
2*bankinh*PI;}
public double dientich()
Trang 384 Giao diện (Interface)
Lưu ý: một lớp cài đặt một giao diện thì
phải cài đặt tất cả các phương thức mà
giao diện khai báo (có thể là cài đặt rỗng)
Một giao diện có thể mở rộng (kế thừa) từ một giao diện khác Khi đó giao diện mới
sẽ có đầy đủ các thành phần được khai
báo trong giao diện cơ sở
Trang 394 Giao diện (Interface)
Ví dụ: giao diện GiaoDienHinh mở rộng từ giao diện TinhToanHinh
interface GiaoDienHinh extends TinhToanHinh
Trang 404 Giao diện (Interface)
Phạm vi của các thành phần trong giao
diện:
• Thành phần là hằng thì có phạm vi là public
• Thành phần là phương thức có phạm vi public.
Sử dụng giao diện như tham chiếu: tương
tự như lớp cơ sở trừu tượng, có thể dùng giao diện để tạo ra tham chiếu đến đối
tượng cài đặt giao diện
Ví dụ:
TinhToanHinh x = new HinhTron(3.0);
Trang 414 Giao diện (Interface)
h.dientich());
h = new HinhTron(1);
System.out.println("Chu vi hinh tron = " + h.chuvi());
Trang 424 Giao diện (Interface)
Trang 434 Giao diện (Interface)
Phân biệt giữa lớp trừu tượng và giao diện:
• Lớp trừu tượng có thể chứa các thuộc tính, trong khi
giao diện chỉ chứa các hằng và khai báo phương thức.
• Một lớp có thể cài đặt nhiều giao diện trong khi chỉ kế thừa một lớp trừu tượng.
liệu và mọi phương thức đều là trừu tượng thì nên
Trang 44Bài tập Quản lý tài liệu ở thư viện
Một thư viện gồm các loại tài liệu sau:
• Sách(Mã sách, Tên Sách, Tác giả, NXB, Năm XB, Vị trí)
• Tạp chí (Mã tạp chí, Tên tạp chí, Chuyên ngành, Số,
Năm, Vị trí)
• CD(Mã CD, Tên CD, Số thứ tự, Nội dung, Vị trí)
Hãy tổ chức các lớp sao cho có thể lập trình để thực hiện được các chức năng sau:
• Lưu danh sách các tài liệu có trong thư viện.
• Liệt kê toàn bộ tài liệu có trong thư viện.
• Liệt kê từng loại tài liệu có trong thư viện.
• Xem thông tin về tài liệu khi biết mã tài liệu
• Tìm kiếm một tài liệu theo: Tên và tác giả đối với sách; Tên tạp chí, Chuyên ngành, số, năm đối với tạp chí, Tên
CD, Số thứ tự và nội dung đối với CD.