Mục tiêu và yêu cầu• Cung cấp các khái niệm, kỹ thuật xây dựng lớp class trong lập trình hướng đối tượng.. Mục tiêu • Nắm được khai báo và định nghĩa lớp, khai báo các biến, mảng đối tượ
Trang 1VIỆN ĐẠI HỌC MỞ HÀ NỘI
HA NOI OPEN UNIVERSITY
Bài giảng Kỹ thuật lập trình hướng đối tượng
1
Chương 3
LẬP TRÌNH LỚP VÀ ĐỐI TƯỢNG
18/10/2013
Trang 2Mục tiêu và yêu cầu
• Cung cấp các khái niệm, kỹ thuật xây dựng lớp (class)
trong lập trình hướng đối tượng
Mục tiêu
• Nắm được khai báo và định nghĩa lớp, khai báo các
biến, mảng đối tượng (kiểu lớp), các kỹ thuật lập trình
xử lý trong lớp đối tượng, phương thức, dùng con trỏ
this trong phương thức, phạm vi truy xuất của các
thành phần
Yêu cầu
Trang 3Tài liệu tham khảo
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
Trang 4Nội dung bài học
• Khai báo và định nghĩa lớp
• Khai báo các biến, mảng đối tượng (kiểu lớp)
• Các kỹ thuật lập trình xử lý trong lớp đối tượng, phương thức
• Con trỏ this trong phương thức
• Phạm vi truy xuất của các thành phần
Khái niệm
Trang 53.1 Phân tích đối tượng và thiết kế lớp
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
5
Lớp và đối tượng
• Lớp là tập hợp các đối tượng có cùng bản chất
• Lớp như một khuôn mẫu (template) của đối tượng (Object)
• Lớp là trừu tượng, đối tượng là thực thể xác định
Lớp(class)
Trang 6Lớp (class) và đối tượng (object)
Trang 73.1.1 Phân tích đối tượng
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
7
Phân tích và phát triển một hệ thống phần mềm hướng đốitượng:
• Phân tích yêu cầu (Requirement analysis)
• Phân tích hệ thống (System analysis)
• Thiết kế hệ thống (System design)
• Lập trình (Programming)
• Kiểm tra (Testing)
Trang 83.1.1 Phân tích đối tượng (tiếp)
Mô hình hóa đối tượng phần mềm:
Trang 93.1.2 Phân tích tương tác
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
9
- Gửi/nhận thông điệp giữa các đối tượng
- Thông điệp có thể chỉ là yêu cầu đơn giản (hàm không tham số)hoặc phức tạp (hàm có tham số - parameters)
Giá?
Khách
Xe máy
Trang 103.1.3 Thiết kế lớp
- Thiết kế lớp => thiết kế mẫu => tạo ra các đối tượng có cùngbản chất (cùng thuộc tính và phương thức)
Trang 113.2 Cài đặt lớp (class)
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
11
- Trong java, một lớp được định nghĩa theo cú pháp:
[public] [final] [abstract] class <tên_lớp>
{
// khai báo các thuộc tính của lớp
kiểu_dữ_liệu <tên_biến>;
// khai báo các phương thức của lớp
kiểu_dữ_liệu <tên_hàm(kiểu_dữ_liệu tên_biến_tham_số)>{
//Các lệnh trong thân phương thức.
}
}
Trang 123.2 Cài đặt lớp (class)
- Trong đó:
• public : xác định gói (package) khác có thể sử dụng được
lớp này
• abstract : Lớp trừu tượng
• final : Lớp hằng – không thể kế thừa
• extends : Lớp này được kế thừa từ lớp khác
• implements: tạo giao diện (kế thừa bội)
Trang 133.2 Cài đặt lớp (class)
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
public void nhap()
{ //Các lệnh nhập thông tin sinh viên }
public int tuoi()
{ //Các lệnh tính và trả về tuổi của sinh viên }
}
Trang 143.2 Cài đặt lớp (class)
Khai báo thuộc tính:
public class <Tên_lớp>
Trang 153.2 Cài đặt lớp (class)
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
15
Phạm vi:
• private: Các thành phần private chỉ có thể được truy nhập từ
bên trong thân các phương thức của lớp đó
• protected: Các thành phần protected cũng giống với private
nhưng có thể truy nhập từ bất cứ lớp con nào kế thừa từ nó
• public : Các thành phần public có thể được truy nhập từ bên
trong lẫn bên ngoài lớp
*) Mặc định (không sử dụng các từ khóa trên): sự truy nhập làbạn bè, tức là thành phần này có thể được truy nhập từ bất cứlớp nào trong cùng gói với lớp đó
Trang 173.2 Cài đặt lớp (class)
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
17
mô hình cơ chế phạm vi:
Trang 183.2 Cài đặt lớp (class)
Khai báo phương thức:
public class <Tên_lớp>
Trang 193.2 Cài đặt lớp (class)
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
19
Khai báo phương thức:
<Kiểu trả về> có thể là kiểu nguyên thủy, kiểu lớp hoặckhông có giá trị trả lại (kiểu void)
<DS tham biến> bao gồm dãy các tham biến (kiểu và tên)phân cách với nhau bởi dấu phẩy
<Phạm vi> chỉ tính chất của phương thức, có thể có các từ
khóa thể hiện như sau: public, protected, private, mặc định (không chỉ rõ tính chất nào), static, abstract, final, native, synchoronized.
<Mệnh đề throws>: là một đối tượng đặc biệt được tạo ra khichương trình gặp lỗi
Trang 20Một số chú ý
Nếu trong lớp có ít nhất một phương thức trừu tượng thì lớp đóphải là lớp trừu tượng
Không có thuộc tính trừu tượng
Ta không thể tạo đối tượng của lớp trừu tượng
Phải khai báo giá trị trả về cho phương thức, nếu phương thứckhông trả về dữ liệu thì dùng từ khóa void
Trang 213.3 Khai báo và sử dụng đối tượng
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
21
Khai báo đối tượng:
- Sau khi định nghĩa một lớp ta có thể xem lớp như là mộtkiểu dữ liệu, vì vậy ta có thể khai báo và tạo các biến, mảngđối tượng:
<Tên lớp> <Tên biến đối tượng>;
<Tên lớp> [] <Tên biến mảng>;
Ví dụ:
SINHVIEN a;
SINHVIEN [] b;
Trang 223.3 Khai báo và sử dụng đối tượng
Sử dụng đối tượng:
- Tạo đối tượng:
<Tên biến đối tượng> = new <Tên lớp>();
<Tên mảng đối tượng> = new <Tên lớp>[số lượng phần tử];
Ví dụ:
a = new SINHVIEN;
b = new SINHVIEN[10];
Trang 233.3 Khai báo và sử dụng đối tượng
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
23
Truy xuất đến các thành phần của đối tượng:
<biến_đối_tượng>.<tên_thuộc_tính>
<biến đối tượng>.tên_phương_thức ([danh sách đối số]);
- Với mảng đối tượng, sau khi tạo mảng ta cần thêm bước tạo các phần tử của mảng đó:
Trang 24 Ví dụ 01:
Xây dựng lớp hình tròn (HINHTRON) với:
• Thuộc tính: bán kính
• Phương thức: nhập, tính chu vi, diện tích
Tạo một đối tượng hình tròn, gọi phương thức nhập hình tròn
và hiện chu vi, diện tích của hình tròn
Các ví dụ
Trang 2518/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
25
Ví dụ 02:
Xây dựng lớp sinh viên (SINHVIEN) với các thành phần sau:
• Thuộc tính: mã sinh viên, họ tên, ngày sinh, giới tính
• Phương thức: Nhập, hiện
Sử dụng lớp trên:
• Tạo và nhập một đối tượng sinh viên
• Hiện thông tin sinh viên
Các ví dụ
Trang 2718/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
27
Ví dụ 04:
• Sử dụng kiểu Calendar cho thuộc tính ngaysinh của lớpSINHVIEN, bổ sung thêm hàm tính tuổi
• Nhập và hiện danh sách N sinh viên
• Tính tuổi trung bình các sinh viên trong danh sách
Các ví dụ
Trang 284 Bài tập
Bài 1: Xây dựng lớp tam giác với thuộc tính là độ dài các cạnh
và các phương thức: Nhập tam giác, tính chu vi, diện tích tamgiác
- Nhập 1 tam giác Hiện chu vi, diện tích và phân loại tam giác(đều, cân, vuông, vuông cân hay thường)
Bài 2: Xây dựng lớp cán bộ với thuộc tính: họ tên, ngày sinh,
lương và các phương thức: Nhập, hiện cán bộ và các phươngthức khác
- Nhập 1 danh sách cán bộ, sắp xếp lại danh sách cán bộ theo họtên và hiện danh sách Tính lương trung bình của các cán bộ
Trang 29Câu hỏi trắc nghiệm
18/10/2013 Bài giảng Kỹ thuật lập trình hướng đối tượng
29