BG Buoi05

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN KỸ THUẬT PHẦN MỀM

Bài 05:
Package and Interface
Giả ng Viên: ThS. Giang Hà o Côn

28/03/2023 ThS. Giang Hào Côn 1


5.1/ Package
Khá i niệ m về Package trong Java
 Một Package (gói) trong Java là một
nhóm các class, interface và các package
con tương tự, liên quan đến nhau.
 Các package được chia làm hai loại:
Các package được tích hợp sẵn từ Java
API (Built-in packages)
Các package do người dùng tự định
nghĩa (đây là package do chú ng ta tự
tạo ra) – User defined packages
28/03/2023 ThS. Giang Hào Côn 2
5.1/ Package
Cá c Package có sả n trong Java
Package trong java được chia làm 2 loại:
 Một loại được tích hợp từ Java API
 Loại package thứ 2 là package do người dùng tự định nghĩa.

28/03/2023 ThS. Giang Hào Côn 3


5.1/ Package
Cá c Package có sả n trong Java
Vậy các package hay dùng (phổ biến) được tích hợp sẵn trong Java
bao gồm:
 java.lang: Chứa các lớp hỗ trợ ngôn ngữ (ví dụ: lớp được định
nghĩa các kiểu dữ liệu nguyên thủy, các phép toán). Package này
được import tự động.
 java.io: Chứa lớp để hỗ trợ input / output (I/O)
 java.util: Chứa các lớp tiện ích thực hiện các cấu trúc dữ liệu như
danh sách liên kết, dictionary và hỗ trợ cho các hoạt động date /
time.
28/03/2023 ThS. Giang Hào Côn 4
5.1/ Package
Cá c Package có sả n trong Java
Vậy các package hay dùng (phổ biến) được tích hợp sẵn trong Java
bao gồm:
 java.applet: Chứa các lớp để tạo Applet.
 java.awt: Chứa các class để triển khai các thành phần cho giao
diện người dùng đồ họa (ví dụ như button, menu,…).
 java.net: Chứa các lớp để hỗ trợ các thao tác trong mạng
(network).
 Và còn rất nhiều package hữu ích khác. Sinh Viên có thể tham
khảo thêm https://docs.oracle.com/javase/8/docs/api/.
28/03/2023 ThS. Giang Hào Côn 5
5.1/ Package
Lợi ích của việc sử dụng packagê trong java
 Tìm kiếm và sử dụng các class,
interface,… một các dễ dàng hơn.
 Package cung cấp bảo vệ truy cập
 Package ngăn chặn được xung đột khi đặt
tên. Ví dụ: Có thể có 2 class People (tên
class giống hệt nhau) trong 2 package
khác nhau.
 Các package có thể được coi là đóng gói
dữ liệu (hoặc ẩn dữ liệu).
28/03/2023 ThS. Giang Hào Côn 6
5.1/ Package
Cá ch sử dụng package trong java
Quy ước đặt tên package trong Java
 Tên packages nên được viết thường hết tất cả các chữ cái.
 Với các dự án nhỏ chỉ có một vài package, bạn chỉ cần đặt cho chúng
những cái tên đơn giản nhưng có ý nghĩa.
 Nhưng trong các công ty phần mềm và các dự án lớn, nơi các package
có thể được nhập vào các package khác, các tên thường sẽ được chia
nhỏ.
 Thông thường, điều này sẽ bắt đầu với tên miền của công ty. Khi đó,
tên package sẽ được đặt ngược lại với tiên miền.
28/03/2023 ThS. Giang Hào Côn 7
5.1/ Package
Cá ch sử dụng package trong java
Cá ch tạ o package trong Java
 Để tạo package trong Java, Ta click chuột phải vào thư mục src
trong project, chọn New -> Package.
Gõ vào ô name tên
package bạn muốn đặt
(nên đặt có ý nghĩa chút
nha) rồi click Finish là
xong.
28/03/2023 ThS. Giang Hào Côn 8
5.1/ Package
Cá ch sử dụng package trong java

28/03/2023 ThS. Giang Hào Côn 9


5.1/ Package
Cá ch sử dụng package trong java

28/03/2023 ThS. Giang Hào Côn 10


Nhắc lại Access Modifier

28/03/2023 ThS. Giang Hào Côn 11


Nhắc lại Access Modifier
Khi các class được khai báo với các Access Modifier khác nhau thì
việc truy cập đến class cũng sẽ khác nhau

28/03/2023 ThS. Giang Hào Côn 12


5.2/ Interface
Một chút về Abstract class

28/03/2023 ThS. Giang Hào Côn 13


5.2/ Interface
Một chút về Abstract class

28/03/2023 ThS. Giang Hào Côn 14


5.2/ Interface
 Interface là một tập các phương thức mà
một class “buộc phải định nghĩa” khi
triển khai
 Interface làm nhiệm vụ khai báo các
phương thức mà class cần phải có, nhưng
không có phần “thân hàm” – (function
body)
 Khi một class implements từ interface
nào đó thì bắt buộc phải override tất cả
các phương thức đã được khai báo trong
interface tương ứng
28/03/2023 ThS. Giang Hào Côn 15
5.2/ Interface
Có thể Interface giống như abstract classes, nhưng chúng khác nhau
ở chỗ:
 Một lớp con – subclass chỉ có thể thừa kế bởi duy nhất một lớp
cha – superclass.
 Tuy nhiên, có thể sử dụng nhiều interfaces để làm tiêu chuẩn cho
việc định nghĩa một class.
 Một interface không thể tạo ra đối tượng thông qua toán tử new
Comparable list= new Comparable(); //-- Báo lỗi, vì Comparable là một
interface.
 Nhưng bạn lại có thể khai báo 1 đối tượng là interface
Comparable list; //-- OK
28/03/2023 ThS. Giang Hào Côn 16
5.2/ Interface
Có thể Interface giống như abstract classes, nhưng chúng khác nhau
ở chỗ:
 Cũng có thể tạ o đối tượng của class đã implements từ interface
tương ứng:
Comparable list= new MySortClass(); //-- OK, trong trường hợp
MySortClass implêmênts từ Comparable
 Interfaces có thể chứa các khai báo ở dạng phương thức –
method hoặc các hằng:

28/03/2023 ThS. Giang Hào Côn 17


5.2/ Interface
 Interfaces cho phép thừa kế từ 1 interface đã có:

28/03/2023 ThS. Giang Hào Côn 18


5.2/ Interface
 Interfaces cho phép thừa kế từ nhiề u interface đã có:

28/03/2023 ThS. Giang Hào Côn 19


5.2/ Interface
 Cú pháp khai báo Interface: Ví dụ :

28/03/2023 ThS. Giang Hào Côn 20


5.2/ Interface
Chú ý: Tất cả các phương thức bên trong Interface mặc định đều là
public và tất cả các thuọ c tính (properties) đều mặc định là
public static final.

28/03/2023 ThS. Giang Hào Côn 21


5.2/ Interface
Triển khai cho một Interface
Chúng ta sẽ sử dụng từ khóa implements để triển khai một
Interface.

28/03/2023 ThS. Giang Hào Côn 22


5.2/ Interface
Ví dụ 01:

28/03/2023 ThS. Giang Hào Côn 23


5.2/ Interface
Ví dụ 01:

28/03/2023 ThS. Giang Hào Côn 24


5.2/ Interface
Ví dụ 01:

28/03/2023 ThS. Giang Hào Côn 25


5.2/ Interface
Ví dụ 02:

28/03/2023 ThS. Giang Hào Côn 26


5.2/ Interface
Các phương thức mặc định trong Interface
 Với Java 8, bây giờ chúng ta có thể thêm các phương thức với
việc triển khai bên trong một Interface. Các phương thức này
được gọi là phương thức mặc định.
 Để khai báo các phương thức mặc định bên trong các Interface,
chúng ta sử dụng từ khóa default.

Ví dụ :

28/03/2023 ThS. Giang Hào Côn 27


5.2/ Interface
Các phương thức mặc định trong Interface
Ví dụ :

28/03/2023 ThS. Giang Hào Côn 28


5.2/ Interface
Ví dụ đơn giả n:

Sinh viên
thảo luận ?

28/03/2023 ThS. Giang Hào Côn 29


5.2/ Interface
Ví dụ : Đa kế thừa trong Java bởi Intêrfacê

Câu hỏi: Đa kế thừa không được


hỗ trợ thông qua lớp trong Java
nhưng là có thể bởi Interface, tại
sao?
28/03/2023 ThS. Giang Hào Côn 30
5.2/ Interface
Ví dụ : Đa kế thừa trong Java bởi Intêrfacê
Trong ví dụ, Printable và
Showable interface có
cùng các phương thức
nhưng trình triển khai của
nó được cung cấp bởi lớp
TestInterface1, do đó
không có tính lưỡng nghĩa.

28/03/2023 ThS. Giang Hào Côn 31


5.3/ Cần nhớ
 Trong interface chỉ bao gồm các abstract method và các biến
final
 Khi một class triển khai từ một interface, thì nó bắt buộc phải
cụ thể hóa (override) tất cả các abstract method có trong
interface tương ứng
 Interface là public hoặc default và có thể thừa kế
 Một interface có thể được hiện thực bởi nhiều class khác
nhau, và một class cũng có thể triển khai nhiều interface khác
nhau
28/03/2023 ThS. Giang Hào Côn 32
Bài Tập

Bài 01
Cho sơ đò lớp như hình
vễ , Hã y Cà i đạ t cá c lớp
cà n thiế t bà ng code Java:

28/03/2023 ThS. Giang Hào Côn 33


Bài Tập

Bài 02
Cho sơ đò lớp như hình
vễ , Hã y Cà i đạ t cá c lớp
cà n thiế t bà ng code Java:

28/03/2023 ThS. Giang Hào Côn 34


Bài Tập

Bài 03 Cho sơ đò lớp như hình vễ , Hã y Cà i đạ t cá c lớp cà n
thiế t bà ng code Java:

28/03/2023 ThS. Giang Hào Côn 35


Bài Tập

Bài 04
Cho sơ đò lớp như
hình vễ , Hã y Cà i đạ t
cá c lớp cà n thiế t
bà ng code Java:

28/03/2023 ThS. Giang Hào Côn 36


Bài Tập

Bài 05
Cho sơ đò lớp như hình
vễ , Hã y Cà i đạ t cá c lớp
cà n thiế t bà ng code Java:

28/03/2023 ThS. Giang Hào Côn 37


Bài Tập

Bài 06
Cho sơ đò lớp như hình
vễ , Hã y Cà i đạ t cá c lớp
cà n thiế t bà ng code Java:

28/03/2023 ThS. Giang Hào Côn 38

You might also like