Professional Documents
Culture Documents
TRONG JAVA
• Bên trong: Chi tiết về các thuộc tính và các Phương thức của
lớp tương ứng với đối tượng
• Bên ngoài: Các dịch vụ mà một đối tượng có thể cung cấp và
cách đối tượng đó tương tác với các thành phần còn lại của
hệ thống
Đóng gói - Encapsulation
• Dữ liệu được che giấu ở bên trong lớp và chỉ được truy cập và
thay đổi ở các phương thức bên ngoài. Tránh thay đổi trái phép
hoặc làm sai lệch dữ liệu
Client Methods
Data
Che giấu dữ liệu
• Các đối tượng khác muốn truy cập vào dữ liệu riêng tư này phải
thông qua các phương thức public
• Accessor (getter): Trả về giá trị hiện tại của một thuộc tính (dữ
liệu)
• Mutator (setter): Thay đổi giá trị của một thuộc tính
• Truy vấn dẫn xuất (“Tổng giá trị của các thành viên x, y là bao
nhiêu)
• Phương thức truy vấn không làm thay đổi giá trị của dữ liệu
Phương thức Set
• Các phương thức thiết lập (Mutator, setter) là các phương thức
dung để thay đổi giá trị các thành viên dữ liệu
• Kiểm tra giá trị đầu vào trước khi gán vào các thuộc tính
• Kế thừa là khái niệm dùng để chỉ quá trình tạo ra các lớp mới dựa
trên những đặc điểm và phương thức của một lớp đã có.
• Kế thừa giúp tránh việc phải xây dựng lại các đặc tính đã có của
một lớp, tạo ra khả năng mở rộng và nâng cấp một cách đơn
giản, hiệu quả.
Kế thừa
• Lớp con:
• Định nghĩa lại (hay còn gọi là ghi đè phương thức, overriding)
phương thức được kế thừa từ lớp cha
• Không được phép truy cập đến thành viên private của lớp cha
Kế thừa
class Animal {
void eat() {
System.out.println("eating...");
}
}
• Cung cấp cài đặt đặc biệt của một phương thức mà đã được
định nghĩa ở lớp cha
• Polymorphism: Nhiều hình thức thực hiện, nhiều kiểu tồn tại
• Phương thức trùng tên, phân biệt bởi danh sách tham số
• Các đối tượng khác nhau cùng đáp ứng chung danh sách
các thông điệp có giải nghĩa thông điệp theo cách thức
khác nhau
Ghi đè phương thức
• Khai báo trong một số lớp nhiều phương thức cùng tên nhưng
khác nhau về tham số, kiểu dữ liệu,..
• Có cùng tên
class Adder {
static int sum(int a, int b) {
return a + b;
}
static double sum(double a, double b) {
return a + b;
}
static int sum(int a, int b, int c) {
return a + b + c;
}
}
Tính trừu tượng
• Tính trừu tượng (abstract) là một tiến trình ẩn các cài đặt chi tiết
và chỉ hiển thị tính năng tới người dùng. Sử dụng tính trừu tượng
giúp chúng ta chỉ tập trung vào trọng tâm thay vì quan tâm đến
cách nó thực hiện
• Chỉ được dùng làm lớp cha cho các lớp khác
• Định nghĩa các thuộc tính chung cho các lớp con
• Không thể tạo các đối tượng của một lớp trừu tượng
• Có thẻ khai báo biến thuộc kiểu lớp trừu tượng để tham chiếu
đến các đối tượng thuộc lớp con
abstract class Animal {
abstract void makeSound();
public void eat() {
System.out.println("I can eat.");
}
}
• Không thể khởi tạo, nên không có phương thức khởi tạo.
interface FirstInterface {
public void myMethod(); // interface method
}
interface SecondInterface {
public void myOtherMethod(); // interface method
}