Transcript Bai5

Bài4: Lập trình hướng đối
tượng với JAVA
1.Tổng quan lập trình
hướng đối tượng
2.Xây dựng lớp đối tượng
3.Package
1. Tổng quan lập trình hướng đối
tượng
Khái niệm
 Các đặc trưng cơ bản

Khái niệm
Là phương pháp thiết kế và phát triển
phần mềm dựa trên kiến trúc lớp
(class) và đối tượng (object)
 Mô hình hóa các đối tượng trong thế
giới thực thành các đối tượng trong
chương trình

Các thông tin về đối tượng
– Đối tượng nhân viên
• Mã nhân viên
• Họ tên
• Giới tính
• Ngày sinh
• Địa chỉ
• Hệ số lương
• …
Lớp đối tượng
– Class là một khái niệm trong Lập trình hướng
đối tượng mô tả cho những thực thể có chung
tính chất và hành vi. Class định nghĩa những
thuộc tính và hành vi được dùng cho những
đối tượng của lớp đó
– Kết quả của sự TRỪU TƯỢNG HOÁ
(Abstraction) các đối tượng:
• Cùng loại
• Cùng các thông tin mô tả về đối tượng
Các đặc trưng cơ bản
Tính trừu tượng (Abstraction)
– Lớp (Class) là một khái niệm trừu tượng
• Ví dụ: Thông tin của nhân viên được mô tả
trong lớp Nhân viên
• Ví dụ: Nhân viên “Nguyễn Văn A” là một
thể hiện cụ thể của lớp Nhân viên và Đối
tượng Nhân viên

->Từ những đối tượng giống nhau,
ta có thể trừu tượng hoá thành 1 lớp
Nhân viên Nguyễn Văn A
NHÂN VIÊN
MaNV
Họ và Tên
Ngày Sinh
Địa chỉ
Giới tính

Tính đóng gói (Encapsulation)
– Mỗi lớp được xây dựng để thực hiện một
nhóm chức năng đặc trưng của riêng lớp đó
Ví dụ:
– Muốn thực hiện các hàm toán học là lớp Math
– Muốn xử lý chuỗi là lớp String
Tính kế thừa (Inheritance)
– Tính chất này cho phép xây dựng những lớp mới dựa
trên những lớp sẵn có (lớp Con kế thừa lớp Cha)
– Lớp Con có khả năng bổ sung, mở rộng những
tính năng mới dựa trên những phần sẵn có ở lớp Cha
• Ví dụ:
Lớp NhanVien mô tả thông tin chung của nhân viên
Lớp NhanVien_VanPhong: nhân viên văn phòng
cũng là một nhân viên và kế thừa từ lớp
NhanVien, và có thêm những thông tin đặc trưng
của nhân viên văn phòng
2. Xây dựng lớp đối tượng




Tạo lớp và đối tượng
Biến thực thể
Phương thức
Khởi tạo
Tạo lớp

Một lớp dùng định nghĩa một kiểu dữ liệu mới
Cú pháp khai báo lớp
class
<Tên_lớp>
{
...
}
Ví dụ: khai báo lớp tam giác

class TamGiac
{
// các khai báo trong lớp tam giác
}
Qui tắc đặt tên lớp





Tên lớp nên là một danh từ
Tên lớp có thể gồm nhiều từ, ký tự đầu tiên
của mỗi từ nên viết hoa
Tên lớp nên đặt đơn giản, dễ nhớ, và có ý
nghĩa
Tên lớp không được trùng với từ khóa của
Java
Tên lớp không thể bắt đầu bằng số, nhưng có
thể bắt đầu bằng dấu ‘$’ và dấu gạch dưới ‘_’
Hàm dựng (constructor)
Là phương thức (method) đặc biệt dùng để
khởi tạo các biến thành viên của lớp
 Tên của hàm dựng trùng với tên lớp và hàm
dựng không có kiểu trả về
 Được gọi tự động khi đối tượng được tạo ra
 Có hai loại hàm dựng:
– Hàm dựng có tham số
– Hàm dựng mặc định

Ví dụ: khai báo hàm dựng cho lớp
tam giác vừa tạo
class TamGiac
{
// hàm dựng mặc định
public TamGiac()
{
}
// các khai báo khác
}
Tạo đối tượng
Đối tượng được khai báo tượng trưng cho lớp
 Quá trình tạo đối tượng cho lớp gồm hai bước:
− Đầu tiên, một biến có kiểu của lớp được khai
báo, biến này chưa được định nghĩa là một đối
tượng. Nó chỉ là biến tham chiếu đến đối
tượng
− Tiếp theo, một bản copy đối tượng của lớp trên
bộ nhớ được tạo ra và được gán cho biến. Điều
này được thực hiện bằng toán tử new



Toán tử new cấp phát bộ nhớ động cho
đối tượng và trả về tham chiếu tới nó
Tất cả các đối tượng của lớp phải được
cấp phát động
Biến thực thể


Mô tả trạng thái của đối tượng
Mỗi đối tượng đều có 1 bản sao của biến thực
thể
Ví dụ: khai báo biến thực thể mô tả
thông tin lớp TamGiac
class TamGiac
{
// a, b, c là 3 biến thực thể mô tả thông tin 1
//đối tượng thuộc lớp tam giác
public double a,b,c;
// hàm dựng mặc định public TamGiac(){}
}
Phương thức (method)
Ví dụ: khai báo phương thức tính
chu vi cho lớp tam giác
class TamGiac{
//
biến thực thể
public double a,b,c;
// hàm dựng mặc định
public TamGiac() {}
// phương thức tính chu vi
public double tinhChuVi()
{
return a+b+c;
}
}
Truyền tham số cho phương thức
Truyền tham trị:
– Được sử dụng cho các kiểu dữ liệu cơ bản, mọi thay
đổi diễn ra bên trong phương thức không ảnh hưởng
đến giá trị truyền vào
 Truyền tham chiếu:
– Thay đổi bên trong phương thức sẽ làm thay đối giá trị
của tham số truyền vào
– Tham số của phương thức có kiểu dữ liệu là tham
chiếu sẽ được truyền theo kiểu tham trị chứ không
phải kiểu tham chiếu. Ví dụ: khi phương thức kết
thúc, tham chiếu này vẫn trỏ đến cùng đối tượng khi
truyền vào

Phương thức có tham số thay đổi
Tham số thay đối cho phép triệu gọi phương
thức với số tham số khác nhau.
 Cú pháp
Kiểu_dữ_liệu Tên_phương_thức
(Kiểu_dữ_liệu ... Tên_tham_so)
{
// các lệnh
}

Ví dụ:
public static void Test(int … a){
for (int i : a) System.out.println(i);
}
public static void main(String args[]){
Test(1,2,3,4,5,6);
}

3. Package
Một nhóm các lớp (classes) và giao diện
(interfaces) được tổ chức thành một đơn vị
quản lý theo hình thức không gian tên gọi là
package
 Các loại package trong Java:
– Package được định nghĩa trước
– Package do người dùng định nghĩa

Package được định nghĩa trước
Chỉ định từ truy xuất
Chỉ định từ truy xuất
Chỉ định từ truy xuất cho biến và
phương thức
Các từ khóa cho việc thay đổi quyền truy xuất
– volatile: cho phép thay đổi thông tin của biến
trong quá trình sử dụng
– final: cho phép thay đổi thông tin của biến chỉ
một lần duy nhất / không cho phép ghi đè hàm
– native: chỉ ra hàm không được viết bằng ngôn
ngữ
– transient: chỉ ra một biến không thể serializable
