Bài 03 / 2 of 20Các nội dung chính Tìm hiểu về Class Tạo đối tượng Giải thích về khái niệm method trong lớp Cài đặt constructor Các đặc điểm của kế thừa Sự khác nhau giữa Ove
Trang 1Giới thiệu về lớp
Bài 3
Trang 2Bài 03 / 2 of 20
Các nội dung chính
Tìm hiểu về Class
Tạo đối tượng
Giải thích về khái niệm method trong lớp
Cài đặt constructor
Các đặc điểm của kế thừa
Sự khác nhau giữa Overloading và Overriding của
method
Giải thích về access specifiers và method modifiers
Trang 3Bài 03 / 3 of 20
Class
Một Class sẽ định nghĩa lên một kiểu dữ liệu mới
Mối một thể hiện của lớp sẽ cho một đối tượng mới
Sử dụng toán tử (.) để truy cập đến các properties và
methods của đối tượng
Ví dụ:
Person p = new Person(“Trainner”);
String s = p.Name;
Trang 4 abstract: lớp trừu tượng, ko có khai báo các phương
thức, thuộc tính trong lớp trừu tượng Lớp dẫn xuất sẽ
khai báo, cài đặt thuộc tính, method của lớp trừu tượng
Các method được khai báo trong lớp trừu tượng không
thể là private or static
Trang 5Bài 03 / 5 of 20
Mô tả một đối tượng
Khi một Class được tạo ra tức là một kiểu dữ liệu mới được
định nghĩa.
Đối tượng là một thể hiện của lớp.
Tạo đối tượng phải qua 2 bước xử lý:
Bước 1: Khai báo biến, một biến không định nghĩa nên
một đối tượng mà nó sử dụng để tham chiếu đến đối
tượng
Bước 2: Tạo đối tượng và gán cho biến (quá trình này
được thực hiện qua toán tử new)
Toán tử new sẽ cấp phát vùng nhớ động cho đối tượng và
trả về tham chiếu đến đối tượng đó.
Tất cả đối tượng phải được cấp phát động.
Trang 6Bài 03 / 6 of 20
Tạo đối tượng
Tạo đối tượng phải qua 2 bước xử lý:
Bước 1: Person p; //khai báo biến
Bước 2: p = new Person(“Nampt”); //tạo
đối tượng và gán cho biến p.
Tuy nhiên ta có thể gộp 2 bước làm một:
Trang 7Bài 03 / 7 of 20
Methods trong Classes
Một method được định nghĩa như một hành động của đối tượng
Cú pháp:
access_specifier modifier datatype method_name (parameter_list)
{
//body of method }
Trang 8Bài 03 / 8 of 20
Ví dụ về sử dụng method
class Temp
{
static int num = 10;
public static void show()
Trang 9Bài 03 / 9 of 20
Đặc điểm hướng đối tượng trong
java
Có 3 đặc điểm chung: tính đóng gói (encapsulation), tính
đa hình (polymorphism), tính kế thừa(inheritance)
Tính đóng gói:
cho phép ẩn đi một phần dữ liệu cục bộ của đối tượng,
chỉ cho phép public ra ngoài những gì cần công bố để
trao đổi với đối tượng khác
Đơn vị đóng gói cơ bản của java là class
Trang 10 Một biến có kiểu của lớp cha có thể tham chiếu đến bất
kì một đối tượng nào của lớp con, nhưng ko có chiều
ngược lại
Tính kế thừa
Một lớp có thể kế thừa tất cả các phương thức, thuộc
tính của một lớp khác
Sử dụng từ khóa extends để khai báo kế thừa
Ex: class SinhVien extends Person{ … }
Trang 11Bài 03 / 11 of 20
Methods trong Classes
Trong method có kiểu dữ liệu trả về không phải là void thì
trong thân method phải có câu lệnh return
Nhiều method có các tham số
Trang 12Bài 03 / 12 of 20
Constructors
Constructor là một method đặc biệt để khởi tạo giá trị cho
các properties của đối tượng
Nó trùng tên với tên lớp và không có kiểu dữ liệu trả về
Nó tự động được gọi ngay sau khi đối tượng được tạo
Có 2 loại constructor:
Constructor có tham số
Constructor không có tham số (default constructor)
Khi định nghĩa một lớp mà ta không định nghĩa
constructor thì nó sẽ có một constructor ngầm định, tuy
nhiên nếu ta định nghĩa một constructor có tham số thì
constructor ngầm định sẽ không có
Trang 13Bài 03 / 13 of 20
Kế thừa (Inheritance)
Một lớp được kế thừa từ lớp khác thì được gòi là subclass (lớp
con)
Lớp mà để cho lớp khác kế thừa gọi là superclass (lớp cha)
Subclass có thể truy cập đến tất cả các thuộc tính và phương
thức của superclass
Để kế thừa một lớp ta sử dụng từ khóa extends
Ví dụ: Lớp Student kế thừa từ lớp Person
Class Student extends Person
{
//định nghĩa các properties và method
}
Trang 14Bài 03 / 14 of 20
Gọi constructor của lớp cha
Câu lệnh gọi constructor của lớp cha nên được đặt là
câu lệnh đầu tiên trong constructor của lớp con
Từ khóa super() được sử dụng để gọi tới superclass
constructor
Trang 15Bài 03 / 15 of 20
Gọi constructor của lớp cha
Class Person
{ private String name;
public Person(String name) { this.name = name; }
}
Class Student
{ private String id;
public Student(String name, String id) {
super(name);
this.id = id;
} }
Trang 16Bài 03 / 16 of 20
Methods Overloading
Đặc điểm của overloaded method:
Được định nghĩa trong cùng một class
Có cùng tên
Danh sách tham số khác nhau
Overloaded methods thể hiện tính đa hình trong quá trình dịch (compile time)
Trang 18Bài 03 / 18 of 20
Methods Overriding
Đặc điểm của overridden methods là:
Tồn tại trong lớp cha giống như trong lớp con.
Được định nghĩa lại trong lớp con
Overridden methods thể hiện tính đa hình trong quá trình thực thi (runtime)
Trang 20Bài 03 / 20 of 20
Access Specifiers đối với Methods
có thể truy cập được từ bên ngoàilớp khai báo
có thể truy cập được từ lớp khai báo và
những lớp dẫn xuất từ nó
chỉ được truy cập bên trong bản thân lớp khai báo
Trang 21Bài 03 / 21 of 20
Method Modifiers
static: dùng chung cho tất cả các thể hiện của lớp, có nghĩa
là phương thức đó có thể được thực hiện kể cả khi không
có đối tượng của lớp chứa phương thức đó
final: không được khai báo nạp chồng ở lớp dẫn xuất
abstract: không cần cài đặt, nó sẽ được cài đặt chi tiết trong lớp dẫn xuất từ nó
synchronized:dùng để ngăn các tác động của các đối tượng khác lên đối tượng đang xét trong khi đang đồng bộ hóa