TRUNG TÂM TIN HỌC - ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP. HCM 
227 Nguyễn Văn Cừ – Quận 5 – Tp. Hồ Chí Minh 
Tel: 8351056 – Fax 8324466 – Email: 
[email protected] 
Mã tài liệu: DT_NCM_LT_DC_LT_WEB_JAVA 
Phiên bản 1.0 – Tháng 01/2014 
ĐỀ CƯƠNG CHI TIẾT 
KHĨA HỌC 
LẬP TRÌNH CƠNG NGHỆ JAVA 
Module 1: Java cơ bản 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 1/11 
Mục tiêu 
Sau khi hồn thành module 1 , học viên sẽ cĩ khả năng: 
 Nắm vững khái niệm cơ bản trong ngơn ngữ lập trình JAVA 
 Thiết kế giao diện windows forms đơn giản 
 Làm việc với tập tin, mảng 
 Lập trình hướng đối tượng cơ bản 
 Đưa dịch vụ vào sử dụng trong ứng dụng windows forms. 
 Xây dựng ứng dụng nhỏ 
 Lập trình cĩ phong cách, phối hợp làm việc nhĩm tốt, quản lý thời gian hiệu quả 
Đối tượng học viên 
 Học sinh, đã tốt nghiệp PTTH (chương trình LTV dành cho HV) 
 Sinh viên các trường Đại học, Cao đẳng, Trung cấp cĩ kiến thức lập trình cơ bản (chương 
trình LTV dành cho SV) 
Phần mềm sử dụng 
 Windows 7.0 
 Eclipse (plugin Windows Builder Pro) 
Phân bố bài giảng 
STT Bài học 
1 Tổng quan - Mơi trường làm việc 
2 Kiểu dữ liệu cơ sở 
3 Giao diện 1 
4 Truy xuất tập tin 
5 Mảng cơ sở 
6 Giao diện 2 
7 Đối tượng 
8 Sử dụng dịch vụ 
9 Tổng kết 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 2/11 
DÀN Ý CHI TIẾT 
BÀI 1: TỔNG QUAN - MƠI TRƯỜNG LÀM VIỆC 
Mục tiêu 
Giới thiệu tổng quan mơi trường phát triển ứng dụng Java và một số thao tác cơ bản khi làm việc với 
Eclipse, hướng dẫn cách cài đặt Eclipse và chạy chương trình Java trong Eclipse. 
Dàn bài 
 Giới thiệu ứng dụng Java 
 Tổng quan về lập trình (Programming) , chương trình (Program), ngơn ngữ lập trình 
(Programming Language), ngơn ngữ trung gian của Java (Byte code) 
 Lịch sử phát triển của Java 
 Mơi trường phát triển ứng dụng 
 Giới thiệu về Eclipse 
 Các thành phần của Eclipse 
 Cài đặt Eclipse và Plugin 
 Xây dựng ứng dụng đầu tiên 
 Cấu trúc chương trình viết bằng Java 
 Xây dựng và thực thi chương trình viết bằng Java 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 3/11 
BÀI 2: KIỂU DỮ LIỆU CƠ SỞ 
Mục tiêu 
Kết thúc bài học này, học viên sẽ cĩ khả năng: 
- Sử dụng các kiểu dữ liệu cơ sở 
- Nắm được cú pháp ngơn ngữ Java trong lập trình ứng dụng 
- Ơn lại các tốn tử, các cấu trúc điều khiển, cách xử lý lỗi 
Dàn bài 
 Kiểu dữ liệu và chuyển đổi kiểu dữ liệu 
 Kiểu cơ sở 
 Kiểu tham chiếu 
 Cơ chế chuyển đổi kiểu dữ liệu 
 Biến và hằng số 
 Khái niệm biến 
 Khái niệm hằng số 
 Quy ước đặt tên biến và hằng số 
 Cú pháp khai báo biến và hằng số 
 Các xử lý trên kiểu String 
 Khái niệm kiểu String, các phương thức xử lý trên String 
 Lớp StringBuilder 
 Lớp StringTokenizer 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 4/11 
BÀI 3: GIAO DIỆN 1 
Mục tiêu 
Kết thúc bài học này, học viên cĩ thể thao tác trên các điều khiển và thể hiện đơn giản. 
Dàn bài 
 Giới thiệu 
 Các điều khiển và thể hiện 
 JFrame 
 JPanel 
 JLabel 
 ImageIcon 
 JTextField 
 JButton 
 JFileChooser 
 Các phương thức của thể hiện 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 5/11 
BÀI 4: XỬ LÝ TẬP TIN 
Mục tiêu 
Kết thúc bài học này, học viên cĩ thể thao tác trên tập tin để đọc và xử lý nội dung tập tin. 
Dàn bài 
 Tổng quan về I/O Stream 
 Khái niệm về I/O Stream 
 Đọc dữ liệu nhị phân với Byte Stream 
 Đọc dữ liệu ký tự với Character Stream 
 Sử dụng vùng đệm trong xử lý đọc ghi dữ liệu với Buffered Stream 
 Đọc ghi dữ liệu theo định dạng với Scanning và Formating 
 Xử lý đọc ghi dữ liệu với Data Stream 
 Xử lý đọc ghi các đối tượng với Object Stream 
 Tổng quan về làm việc với tập tin (File I/O) 
 Làm việc với đường dẫn tập tin 
 Kiểm tra tồn tại tập tin 
 Tạo mới, xĩa, di chuyển tập tin 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 6/11 
BÀI 5: MẢNG CƠ SỞ 
Mục tiêu 
Bài học này sẽ cung cấp cho học viên các kỹ năng để làm việc trên mảng cơ bản (1 chiều) trong mơi 
trường JAVA. 
Dàn bài 
 Khái niệm mảng 
 Các kiểu mảng 
 Mảng một chiều và các thao tác xử lý cơ bản trên mảng một chiều, mảng String 
 Các hàm xử lý khác trên mảng 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 7/11 
BÀI 6: GIAO DIỆN 2 
Mục tiêu 
Kết thúc bài học này, học viên cĩ thể thao tác trên các thể hiện đơn giản. 
Dàn bài 
 JCheckbox 
 JRadio button 
 Group Button 
 JCombobox 
 JTable 
 JMenu 
 JMenuItem 
 Các phương thức của thể hiện 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 8/11 
BÀI 7: ĐỐI TƯỢNG 
Mục tiêu 
Giới thiệu các khái niệm về đối tượng, cách thiết kế và sử dụng lớp đối tượng. 
Dàn bài 
 Tổng quan về lập trình hướng đối tượng 
 Khái niệm 
 Các đặc trưng cơ bản của lập trình hướng đối tượng: tính trừu tượng, tính đĩng gĩi, tính kế 
thừa 
 Xây dựng lớp đối tượng 
 Tạo lớp và đối tượng 
 Biến thực thể, các chỉ định từ truy xuất: public, private, protected, default 
 Phương thức khởi tạo 
 Phương thức tính tốn xử lý 
 Package 
 Khái niệm 
 Các thức khai báo và sử dụng package 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 9/11 
BÀI 8: SỬ DỤNG DỊCH VỤ 
Mục tiêu 
Giới thiệu khái niệm về dịch vụ. Cách gọi sử dụng dịch vụ trong ứng dụng. 
Dàn bài 
 Khái niệm dịch vụ 
 Sử dụng dịch vụ 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 10/11 
BÀI 9: TỔNG KẾT 
Mục tiêu 
Ơn tập và hướng dẫn làm các bài tập bổ sung. 
Dàn bài 
 Ơn tập 
 Hướng dẫn làm bài tập bổ sung 
Đề cương giảng dạy 
Module 1 – Nhập môn Lập trình JAVA Trang 11/11 
Mục lục 
Mục tiêu ............................................................................................................................................. 2 
Đối tượng học viên ............................................................................................................................. 2 
Phần mềm sử dụng ............................................................................................................................ 2 
Phân bố bài giảng .............................................................................................................................. 2 
DÀN Ý CHI TIẾT ................................................................................................................................. 3 
BÀI 1: TỔNG QUAN - MƠI TRƯỜNG LÀM VIỆC ............................................................................... 3 
Mục tiêu ............................................................................................................................................. 3 
Dàn bài .............................................................................................................................................. 3 
BÀI 2: KIỂU DỮ LIỆU CƠ SỞ ........................................................................................................... 4 
Mục tiêu ............................................................................................................................................. 4 
Dàn bài .............................................................................................................................................. 4 
BÀI 3: GIAO DIỆN 1 ........................................................................................................................ 5 
Mục tiêu ............................................................................................................................................. 5 
Dàn bài .............................................................................................................................................. 5 
BÀI 4: XỬ LÝ TẬP TIN ..................................................................................................................... 6 
Mục tiêu ............................................................................................................................................. 6 
Dàn bài .............................................................................................................................................. 6 
BÀI 5: MẢNG CƠ SỞ ....................................................................................................................... 7 
Mục tiêu ............................................................................................................................................. 7 
Dàn bài .............................................................................................................................................. 7 
BÀI 6: GIAO DIỆN 2 ........................................................................................................................ 8 
Mục tiêu ............................................................................................................................................. 8 
Dàn bài .............................................................................................................................................. 8 
BÀI 7: ĐỐI TƯỢNG ......................................................................................................................... 9 
Mục tiêu ............................................................................................................................................. 9 
Dàn bài .............................................................................................................................................. 9 
BÀI 8: SỬ DỤNG DỊCH VỤ ............................................................................................................. 10 
Mục tiêu ........................................................................................................................................... 10 
Dàn bài ............................................................................................................................................ 10 
BÀI 9: TỔNG KẾT .......................................................................................................................... 11 
Mục tiêu ........................................................................................................................................... 11 
Dàn bài ............................................................................................................................................ 11 
Mục lục ............................................................................................................................................. 12 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 2/52 
BÀI 1: Tổng quan – Mơi 
trường làm việc 
1. Tổng quan về lập trình 
a. Chương trình 
- Xem slide module 1 – bài 1 – mục 1 
b. Ngơn ngữ lập trình 
- Xem slide module 1 – bài 1 – mục 1 
c. Lập trình 
- Xem slide module 1 – bài 1 – mục 1 
d. Ngơn ngữ trung gian của Java 
- Xem slide module 1 – bài 1 – mục 1 
2. Lịch sử phát triển của Java 
- Xem slide module 1 – bài 1 – mục 1 
Phân loại 
- J2SE (Java 2 Standard Edition) 
+ Ứng dụng Desktop 
- J2EE (Java 2 Enterprise Edition) 
+ Ứng dụng Enterprise 
- J2ME (Java 2 Mobile Edition) 
+ Ứng dụng Mobile 
3. Mơi trường phát triển ứng dụng 
a. Giới thiệu Eclipse 
- Xem slide module 1 – bài 1 – mục 2 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 3/52 
b. Các thành phần của Eclipse 
- Xem slide module 1 – bài 1 – mục 2 
c. Cài đặt Eclipse & plugin 
- Cài đặt Eclipse 
Xem slide module 1 – bài 1 – mục 2 
- Cài đặt Plugin 
Xem slide module 1 – bài 1 – mục 2 
4. Xây dựng và thực thi chương trình viết bằng Java 
a. Cấu trúc chương trình viết bằng Java 
- Xem slide module 1 – bài 1 – mục 3 
b. Xây dựng và thực thi chương trình 
- Xem slide module 1 – bài 1 – mục 3 
c. Tạo Project 
- File > New > Java Project > nhập tên của Project > chọn vị trí lưu trữ 
hoặc để vị trí mặc định > Finish 
- Cấu trúc Project: 
- Xem slide module 1 – bài 1 – mục 3 
d. Tạo một ứng dụng trên Console 
- Chọn Project chứa ứng dụng > src > New > Class > nhập tên của 
class > Finish 
- Ví dụ: Tạo ứng dụng xuất câu chào như sau: 
- Source 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 4/52 
e. Tạo một ứng dụng Windows Form: 
- Chọn Project chứa ứng dụng > src > New > Others > chọn JFrame 
> nhập tên của ứng dụng > Finish 
- Ví dụ: Tạo ứng dụng xuất câu chào như sau: 
- Hướng dẫn: 
+ Khai báo biến: 
private static final String CAU_CHAO = "Chào bạn %s, chào mừng 
bạn đến với ngơn ngữ lập trình Java."; 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 5/52 
BÀI 2: Kiểu dữ liệu cơ sở 
1. Kiểu dữ liệu và chuyển đổi kiểu dữ liệu 
- Xem slide module 1 – bài 2 – mục 1 
Cơ chế chuyển đổi kiểu dữ liệu 
- Xem slide module 1 – bài 2 – mục 1 
2. Biến và hằng số 
a. Khái niệm biến 
- Xem slide module 1 – bài 2 – mục 1 
b. Khái niệm hằng số 
- Xem slide module 1 – bài 2 – mục 2 
c. Quy ước đặt tên biến và hằng số 
- Tên biến cĩ thể gồm các ký tự chữ, ký tự số, dấu gạch dưới ‘_’, và 
dấu ‘$’ 
- Tên biến phải bắt đầu bằng ký tự chữ 
- Tên biến khơng được trùng với từ khĩa và từ dành riêng của Java 
- Tên biến cĩ phân biệt chữ hoa – thường 
- Nếu tên biến chỉ gồm một từ đơn, tên biến nên viết chữ thường 
- Nếu tên biến gồm nhiều từ, ký tự đầu của từ đầu viết thường, ký tự 
đầu của mỗi từ kế tiếp viết hoa 
d. Cú pháp khai báo biến và hằng số 
- Khai báo biến 
- Xem slide module 1 – bài 2 – mục 2 
- Khai báo hằng 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 6/52 
- Xem slide module 1 – bài 2 – mục 2 
3. Các tốn tử 
a. Tốn tử gán 
b. Tốn tử số học 
c. Tốn tử một ngơi 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 7/52 
d. Tốn tử so sánh 
e. Tốn tử luận lý điều kiện 
- Ví dụ: 
boolean a=true,b=false; 
boolean kq=a && b; // kq=false 
kq=a || b; // kq=true 
kq= a == b ? true: false; // kq=false 
f. Tốn tử tiền tố, hậu tố 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 8/52 
- Các tốn tử tăng (++) và giảm (--) được sử dụng để làm tiền tố và 
hậu tố. Trong trường hợp tiền tố, các tốn tử tăng hoặc giảm được 
đặt trước biến kiểu dữ liệu đơn giản. 
- Ví dụ: 
++a  a = a + 1 
--a  a = a – 1 
int b = 6; 
int a = ++b; // a = 7, b = 7 
a = b++; // a = 7, b = 8 
++b; // a = 7, b = 9 
a = --b; // a = 8, b = 8 
a = b--; // a = 8, b = 7 
g. Độ ưu tiên tốn tử 
- Tính kết hợp và độ ưu tiên tốn tử 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 9/52 
4. Các câu lệnh điều kiện 
- Cho phép chúng ta thay đổi luồng thi hành của chương trình dựa vào 
các biểu thức điều kiện 
- Các câu lệnh điều kiện: 
+ if 
+ if – else 
+ switch – case 
a. Câu lệnh if 
- Kiểm tra kết quả của điều kiện và thực hiện hành động thích hợp dựa 
vào kết quả của điều kiện 
- Cú pháp 
if (Điều kiện){ 
 // Khối lệnh A 
} 
- Lưu đồ 
- Ví dụ: 
Xét kết quả học tập: nếu điểm trung bình >=5: kết quả là “Đậu” 
double dtb; 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 10/52 
// nhập giá trị cho dtb 
if (dtb>=5) 
 System.out.println(“Đậu”); 
b. Câu lệnh if – else 
- Được dùng để lựa chọn một trong hai nhánh thi hành của chương 
trình 
- Cú pháp 
if (Điều kiện){ 
 // Khối lệnh A 
} 
else{ 
 // Khối lệnh B 
} 
- Lưu đồ 
- Ví dụ 
Xét kết quả học tập: 
- nếu điểm trung bình >=5: kết quả là “Đậu”, 
- ngược lại là “Rớt” 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 11/52 
double dtb; 
// nhập giá trị cho dtb 
if (dtb>=5) 
 System.out.println(“Đậu”); 
else 
 System.out.println(“Rớt”); 
c. Nhiều câu lệnh if 
- Là các câu lệnh if else if nối đuơi 
- Điều kiện sẽ được kiểm tra tuần tự từ đầu đến cuối 
- Cú pháp 
if (Điều kiện){ 
 //câu lệnh; 
} 
else if (Điều kiện) { 
 //câu lệnh; 
} 
else { 
 //câu lệnh; 
} 
- Ví dụ 
Xếp loại học tập dựa trên điểm trung bình 
double dtb; 
// nhập giá trị cho dtb 
if (dtb10) 
 System.out.println(“Diem khong hop le”); 
else if (dtb<5) 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 12/52 
 System.out.println(“Yeu”); 
else if (dtb<6.5) 
 System.out.println(“Trung binh”); 
else if (dtb<7.5) 
 System.out.println(“Kha”); 
else if (dtb<8.5) 
 System.out.println(“Gioi”); 
else 
 System.out.println(“Xuat sac”); 
d. Câu lệnh switch – case 
- Câu lệnh switch – case được dùng để thay thế cho câu lệnh if – else – 
if 
- Được dùng trong trường hợp biểu thức lượng giá cĩ nhiều giá trị cĩ 
thể liệt kê được 
- Cú pháp 
switch (Biểu thức){ 
 case giátrị1: 
 //câu lệnh; 
 break; 
 case giátrị2 : 
 // câu lệnh; 
 break; 
 case giátrịN: 
 // câu lệnh; 
 break; 
 default: 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 13/52 
 //câu lệnh; 
 } 
- Ví dụ 
Nhập vào tháng, năm, tìm số ngày tối đa của tháng. 
int thang, nam; 
// nhập giá trị cho thang, nam 
switch (thang){ 
 case 1: case 3: case 5: case 7: case 8: case 10: case 12: 
 System.out.println(“31 ngay”);break; 
 case 4: case 6: case 9: case 11: 
 System.out.println(“30 ngay”);break; 
 case 2: 
 if (nam%400==0 || (nam%4==0 && nam%100!=0)) 
 System.out.println(“29 ngay”); 
 else 
 System.out.println(“28 ngay”); 
 break; 
 default: System.out.println(“Thang khong hop le”);break; 
} 
5. Các câu lệnh lặp 
- Một vịng lặp gồm một câu lệnh hay một khối lệnh sẽ thi hành lặp lại 
cho tới khi biểu thức điều kiện sai 
- Cĩ ba loại vịng lặp trong Java 
+ while 
+ do while 
+ for 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 14/52 
a. Câu lệnh while 
- Dùng để thi hành một lệnh hay khối lệnh trong khi biểu thức điều kiện 
cịn đúng 
- Điều kiện được kiểm tra trước khi các lệnh được thi hành 
- Cú pháp 
while (Điều kiện lặp){ 
 // Khối lệnh lặp 
} 
- Lưu đồ 
- Ví dụ 
Tính tổng các số nguyên từ 1 đến 100 
int i=1, tong=0; 
while (i<=100){ 
tong+=i; 
i++; 
} 
System.out.println(tong); 
b. Câu lệnh do while 
- Kiểm tra điều kiện ở cuối vịng lặp thay vì đầu vịng lặp để đảm bảo 
rằng vịng lặp sẽ được thi hành ít nhất một lần 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 15/52 
- Cú pháp 
do{ 
 // Khối lệnh lặp 
} 
while (Điều kiện lặp); 
- Lưu đồ 
- Ví dụ 
Tính tổng các số nguyên từ 1 đến 100 
int i=1, tong=0; 
do{ 
tong+=i; 
i++; 
} 
while (i<=100); 
System.out.println(tong); 
c. Câu lệnh for 
- Lệnh for được sử dụng khi biết trước số lần lặp 
- Cú pháp 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 16/52 
for (biểu thức khởi tạo biến đếm; 
 điều kiện lặp; 
 biểu thức tăng/giảm giá trị biến đếm){ 
 // Khối lệnh lặp 
} 
- Lưu đồ 
- Ví dụ 
Tính tổng các số nguyên từ 1 đến 100 
int i=1, tong=0; 
for (i=1;i<=100;i++){ 
tong+=i; 
} 
System.out.println(tong); 
d. Câu lệnh nhảy: break, continue 
- Cho phép thay đổi thứ tự thi hành của chương trình 
- break: 
+ Kết thúc 1 chuỗi lệnh trong câu lệnh switch 
+ Thốt khỏi vịng lặp 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 17/52 
+ Là hình thức khác của lệnh goto 
- continue: 
+ bỏ qua lần lặp hiện hành và quay về 
+ đầu vịng lặp để thi hành 
+ vịng lặp kế tiếp 
6. Các xử lý trên kiểu String 
- Khái niệm: Là lớp quản lý dữ liệu văn bản cĩ 
nội dung khơng thay đổi được 
- Khai báo: 
String s1 = new String(); 
String s2 = “Hello”; 
- Các phương thức xử lý trên kiểu String 
- length() 
- charAt() 
- concat() 
- compareTo() 
- indexOf() 
- lastIndexOf() 
- replace() 
- subString() 
- toString() 
- trim() 
- Ví dụ: 
String s = “Happy "; 
String s1 = “New Year”; 
// Tính chiều dài chuỗi 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 18/52 
int len = s.length(); // 6 
// Nối chuỗi s1 vào chuỗi s: tương đương s + s1 
s.concat(s1); // Happy New Year 
// Lấy một ký tự tại vị trí số 8 của s 
char result = s.charAt(8); // e 
// So sánh hai chuỗi s1 và s2 
String s2 = “New Year”; 
s2.compareTo(s1); // 0 (trả về 0, 0) 
// Tìm vị trí xuất hiện đầu tiên của chuỗi s2 trong chuỗi s 
s.indexOf(s2); // 6 (vị trí đầu tiên) 
--- 
s = “Happy New Year"; 
s1 = “Happy”; 
s2 = “New”; 
// Tìm vị trí xuất hiện cuối cùng của chuỗi s2 trong chuỗi s 
s.lastIndexOf(s2); // 6 (trả về -1 nếu khơng tìm thấy) 
// Thay thế chuỗi s1 bằng chuỗi s2 trong chuỗi s 
s.replace(s1, s2); // New New Year 
// Loại bỏ các khoảng trắng thừa của chuỗi s3 
String s3 = “ Hello Bi ”; 
s3.trim();// Hello Bi 
// Tạo chuỗi con s4 từ chuỗi s từ vị trí số 6 
String s4 = s.substring(6); // New Year 
a. Lớp StringBuilder 
- Xem slide module 1 – bài 2 – mục 3 
- Các phương thức 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 19/52 
– append() 
– insert() 
– delete() 
– reverse() 
- append() 
+ Xem slide module 1 – bài 2 – mục 3 
- Ví dụ: 
StringBuilder sb = new StringBuilder(); 
sb.append(“Chào mừng "); 
sb.append(“đến với”); 
sb.append(“lập trình Java”); 
System.out.println(sb); 
- insert() 
+ Xem slide module 1 – bài 2 – mục 3 
- delete() 
+ Xem slide module 1 – bài 2 – mục 3 
- reverse(): Đảo ngược chuỗi trong đối tượng đang cĩ, cĩ kết quả trả 
về là một tham chiếu đến đối tượng này 
b. Lớp StringTokenizer 
- Chia chuỗi thành các chuỗi con 
- Các hàm khởi tạo của lớp StringTokenizer 
+ Xem slide module 1 – bài 2 – mục 3 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 20/52 
- Các phương thức: 
+ Xem slide module 1 – bài 2 – mục 3 
- Ví dụ 
String s=“Lập trình Java”; 
StringTokenizer st=new StringTokenizer(s); 
while (st.hasMoreTokens()) 
 System.out.println(st.nextToken()); 
s=“Lập/trình/Java”; 
st=new StringTokenizer(s,”/”); 
while (st.hasMoreTokens()) 
 System.out.println(st.nextToken()); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 21/52 
BÀI 3: Giao diện 1 
1. Giới thiệu 
- Các điều khiển (thể hiện) là các đối tượng dành cho người dùng 
tương tác với chương trình để thực hiện một cơng việc nào đĩ, hoặc 
xem một nội dung. 
2. Các điều khiển và thể hiện 
- Mỗi điều khiển được sử dụng là một lớp điều khiển nằm trong thư 
viện Swing – GUI của Java 
- Thuộc tính chung 
+ Xem slide module 1 – bài 3 – mục 2 
- Phương thức chung 
+ Xem slide module 1 – bài 3 – mục 2 
a. JFrame 
- Xem slide module 1 – bài 3 – mục 2 
b. JPanel 
- Xem slide module 1 – bài 3 – mục 2 
c. JLabel 
- Xem slide module 1 – bài 3 – mục 2 
d. JLabel – ImageIcon 
- Xem slide module 1 – bài 3 – mục 2 
e. JTextField 
- Xem slide module 1 – bài 3 – mục 2 
f. JButton 
- Xem slide module 1 – bài 3 – mục 2 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 22/52 
g. JFileChooser 
- Xem slide module 1 – bài 3 – mục 2 
- Ví dụ: Tạo một file chooser 
 JButton button = new JButton("Select File"); 
 button.addActionListener(new ActionListener() { 
 public void actionPerformed(ActionEvent ae) { 
 JFileChooser fileChooser = new JFileChooser(); 
 int returnValue = fileChooser.showOpenDialog(null); 
 if (returnValue == JFileChooser.APPROVE_OPTION) { 
 File selectedFile = fileChooser.getSelectedFile(); 
 System.out.println(selectedFile.getName()); 
 } 
 } 
 }); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 23/52 
BÀI 4: Xử lý tập tin 
1. Tổng quan về I/O Stream 
a. Khái niệm về I/O Stream 
- Xem nội dung module 1 – bài 4 – mục 1 
b. Đọc dữ liệu nhị phân với Byte Stream 
- Xem nội dung module 1 – bài 4 – mục 1 
- Đọc dữ liệu với Byte Stream 
int i; s=""; 
try(FileInputStream in= 
 new FileInputStream("C:/BTJV/Test.txt")){ 
 while ((i=in.read()) !=-1) 
 s+=(char)i; 
 ta1.setText(s); 
} 
catch (FileNotFoundException ex1){ 
 JOptionPane.showMessageDialog(null,"Khong tim thay tap tin"); 
} 
catch (IOException ex2){ 
 JOptionPane.showMessageDialog(null,"Loi IO: " + 
ex2.getMessage()); 
} 
catch(Exception ex){ 
 JOptionPane.showMessageDialog(null,"Loi: " + 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 24/52 
ex.getMessage()); 
} 
- Ghi dữ liệu với Byte Stream 
try(FileOutputStream out= 
 new FileOutputStream("C:/BTJV/Text.txt")){ 
 s=ta1.getText(); 
 for(int i=0;i<s.length();i++) 
 out.write(s.charAt(i)); 
 JOptionPane.showMessageDialog(null,"Ghi file thành cơng"); 
} 
catch (IOException ex2){ 
 JOptionPane.showMessageDialog(null,"Loi IO: " + 
ex2.getMessage()); 
} 
catch(Exception ex){ 
 JOptionPane.showMessageDialog(null,"Loi: " + ex.getMessage()); 
} 
c. Đọc dữ liệu ký tự với Character Stream 
- Luồng ký tự (Character Stream) hỗ trợ đọc ghi luồng ký tự Unicode 
- Tất cả các lớp luồng ký tự đều là lớp con cả Reader và Writer 
- Đọc dữ liệu với Character Stream 
int i; s=""; 
try(FileReader in=new FileReader("C:/BTJV/Test1.txt")){ 
 while ((i=in.read()) !=-1) 
 s+=(char)i; 
 ta1.setText(s); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 25/52 
} 
catch (FileNotFoundException ex1){ 
 JOptionPane.showMessageDialog(null,"Khong tim thay tap tin"); 
} 
catch (IOException ex2){ 
 JOptionPane.showMessageDialog(null,"Loi IO: " + 
ex2.getMessage()); 
} 
catch(Exception ex){ 
 JOptionPane.showMessageDialog(null,"Loi: " + ex.getMessage()); 
} 
- Ghi dữ liệu với Character Stream 
//String[] ss={"Xin chào","Chào mừng đến với lập trình Java"}; 
s=ta1.getText(); 
try(FileWriter out=new FileWriter("C:/BTJV/Test1.txt")){ 
 //for(i=0;i<ss.length;i++) 
 // out.write(ss[i]+"\r\n"); 
 out.write(s); 
 JOptionPane.showMessageDialog(null,"Ghi file thành cơng"); 
} 
catch (IOException ex2){ 
 JOptionPane.showMessageDialog(null,"Loi IO: " + 
ex2.getMessage()); 
} 
catch(Exception ex){ 
 JOptionPane.showMessageDialog(null,"Loi: " + ex.getMessage()); 
} 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 26/52 
d. Sử dụng vùng đệm trong xử lý đọc ghi dữ liệu với Buffered 
Stream 
- Xem nội dung module 1 – bài 4 – mục 1 
- Ví dụ: 
BufferedReader in=new BufferedReader(new 
 FileReader(“Text.txt “); 
BufferedWriter out=new BufferedWriter(new 
 FileWriter(“Text.txt “); 
- Đọc dữ liệu 
s=""; 
try(BufferedReader in=new 
BufferedReader(new FileReader("C:/BTJV/Test2.txt"))){ 
 String chuoi=""; 
 while ((chuoi=in.readLine())!=null) 
 s+=chuoi; 
 ta1.setText(s); 
} 
catch (FileNotFoundException ex1){ 
 JOptionPane.showMessageDialog(null,"Khong tim thay tap tin"); 
} 
catch (IOException ex2){ 
 JOptionPane.showMessageDialog(null,"Loi IO: " + 
ex2.getMessage()); 
} 
catch(Exception ex){ 
 JOptionPane.showMessageDialog(null,"Loi: " + ex.getMessage()); 
} 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 27/52 
- Ghi dữ liệu 
//String[] ss={"Xin chào","Chào mừng đến với lập trình Java", 
//"Chúc bạn học tốt"}; 
s=ta1.getText(); 
try(BufferedWriter out=new BufferedWriter( 
 new FileWriter("C:/BTJV/Test2.txt"))){ 
 //for(i=0;i<ss.length;i++) 
 // out.write(ss[i]+"\r\n"); 
 out.write(s); 
 JOptionPane.showMessageDialog(null,"Ghi file thành cơng"); 
} 
catch (IOException ex2){ 
 JOptionPane.showMessageDialog(null,"Loi IO: " + 
ex2.getMessage()); 
} 
catch(Exception ex){ 
 JOptionPane.showMessageDialog(null,"Loi: " + ex.getMessage()); 
} 
e. Đọc ghi dữ liệu theo định dạng với Scanning và Formating 
- Chuyển đổi định dạng dữ liệu trong quá trình đọc ghi dữ liệu 
+ Scanner: phân tách dữ liệu thành các thẻ bài 
+ Formatting: tổng hợp dữ liệu thành định dạng người dùng cĩ 
thể xử lý 
- Đọc dữ liệu 
s=""; 
try (Scanner sc=new Scanner(new BufferedReader( 
 new FileReader("C:/BTJV/Test3.txt")))){ 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 28/52 
 while (sc.hasNext()) 
 s+=sc.next(); 
 ta1.setText(s); 
} 
catch (FileNotFoundException ex1){ 
 JOptionPane.showMessageDialog(null,"Khong tim thay tap tin"); 
} 
catch(Exception ex){ 
 JOptionPane.showMessageDialog(null,"Loi: " + 
ex.getMessage()); 
} 
- Ghi dữ liệu 
//String[] ss={"Xin chào","Chào mừng đến với lập trình Java", 
// "Chúc bạn học tốt"}; 
s=ta1.getText(); 
try(PrintWriter pw=new 
PrintWriter(new FileWriter("C:/BTJV/Test4.txt"))){ 
 //for(int i=0;i<ss.length;i++) 
 // pw.println(ss[i]); 
 pw.println(s); 
 JOptionPane.showMessageDialog(null,"Ghi file thành cơng"); 
} 
catch (IOException e) { 
 JOptionPane.showMessageDialog(null,e.getMessage()); 
} 
f. Xử lý đọc ghi dữ liệu với Data Stream 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 29/52 
- Hỗ trợ đọc ghi các giá trị thuộc kiểu cơ sở và String theo định dạng 
nhị phân 
- Ghi dữ liệu 
double[] gia = { 19.99, 9.99, 15.99 }; 
int[] soLuong = { 12, 8, 13}; 
String[] moTa = {“Áo thun",“Túi xách",“Balo“}; 
try(DataOutputStream out = new DataOutputStream( 
 new BufferedOutputStream( 
 new FileOutputStream("C:/BTJV/Test5.txt")))){ 
 for (int i = 0; i < gia.length; i ++) { 
 out.writeDouble(gia[i]); 
 out.writeInt(soLuong[i]); 
 out.writeUTF(moTa[i]); 
 } 
 JOptionPane.showMessageDialog(null,"Ghi file thành cơng"); 
} 
catch (IOException e) { 
 JOptionPane.showMessageDialog(null,e.getMessage()); 
} 
- Đọc dữ liệu 
s=""; 
try(DataInputStream in = new DataInputStream( 
 new BufferedInputStream( 
 new FileInputStream("C:/BTJV/Test5.txt")))){ 
 while (true){ 
 double gia=in.readDouble(); 
 int soLuong=in.readInt(); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 30/52 
 String moTa=in.readUTF(); 
 s+=String.format("Ban dat %d %s voi gia 
%.2f\n",soLuong,moTa,gia); 
 } 
} 
catch (FileNotFoundException ex1){ 
 JOptionPane.showMessageDialog(null,"Khong tim thay tap tin"); 
} 
catch (EOFException ex){ } 
catch (IOException e) { 
 JOptionPane.showMessageDialog(null,e.getMessage()); 
} 
finally{ 
 ta1.setText(s); 
} 
g. Xử lý đọc ghi các đối tượng với Object Stream 
- Hỗ trợ đọc ghi các đối tượng 
- Các đối tượng phải thực thi interface Serializabless 
- Ghi dữ liệu 
try(ObjectOutputStream out = new ObjectOutputStream( 
 new BufferedOutputStream( 
 new FileOutputStream("C:/BTJV/Test6.txt")))){ 
 NhanVien nv=new NhanVien("Văn Phú Cường", 
 2.67,5000000,1); 
 out.writeObject(nv); 
 nv=new NhanVien("Nguyễn Nam",2.34,3000000,0); 
 out.writeObject(nv); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 31/52 
 JOptionPane.showMessageDialog(null,"Ghi file thành cơng"); 
} 
catch (IOException e) { 
 JOptionPane.showMessageDialog(null,e.getMessage()); 
} 
- Đọc dữ liệu 
s=“”; 
try(ObjectInputStream in = new ObjectInputStream( 
 new BufferedInputStream( 
 new FileInputStream("C:/BTJV/Test6.txt")))){ 
 NhanVien nv=(NhanVien)in.readObject();
 s+=nv.xuat(); 
 nv=(NhanVien)in.readObject(); 
 s+=nv.xuat(); 
 ta1.setText(s); 
} 
catch (ClassNotFoundException ex){ 
 JOptionPane.showMessageDialog(null,ex.getMessage()); 
} 
catch (IOException e) { 
 JOptionPane.showMessageDialog(null,e.getMessage()); 
} 
2. Tổng quan về làm việc với tập tin, thư mục 
a. Làm việc với đường dẫn tập tin, thư mục 
- Xem nội dung module 1 – bài 4 – mục 2 
b. Kiểm tra tồn tại tập tin, thư mục 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 32/52 
Path p=Paths.get("1.jpg"); 
if (Files.exists(p)) 
 JOptionPane.showMessageDialog(null,"Cĩ tập tin"); 
else 
 JOptionPane.showMessageDialog(null,"Khơng cĩ tập tin"); 
c. Kiểm tra truy xuất đến tập tin 
- Tập tin cho phép đọc: Files.isReadable(path) 
- Tập tin cho phép ghi: Files.isWritable(path) 
d. Xĩa tập tin 
- Xem nội dung module 1 – bài 4 – mục 2 
e. Di chuyển tập tin, thư mục 
- Sao chép tập tin, thư mục: 
 Files.copy(fileNguon,fileDich,REPLACE_EXISTING); 
- Di chuyển tập tin, thư mục: 
 Files.move(fileNguon,fileDich,REPLACE_EXISTING); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 33/52 
BÀI 5: Mảng cơ sở 
1. Khái niệm mảng 
- Xem slide module 1 – bài 5 – mục 1 
2. Các kiểu mảng 
- Xem slide module 1 – bài 5 – mục 1 
3. Mảng một chiều và các thao tác xử lý cơ bản trên mảng một 
chiều 
a. Khai báo và khởi tạo mảng một chiều 
- Xem slide module 1 – bài 5 – mục 2 
b. Các thao tác cơ bản trên mảng một chiều 
- Xem slide module 1 – bài 5 – mục 2 
c. Mảng String 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 34/52 
String[] list = { “JAVA”, “C#”, “PHP”}; 
for (int i=0;i< list.length;i++) 
 System.out.println(list[i]); 
4. Các hàm xử lý khác trên mảng 
- Các hàm xử lý: 
Arrays.sort 
Arrays.fill 
Arrays.copyOf 
- Ví dụ: 
// import java.util.Arrays; 
int array[] = { 2, 5, -2, 6, -3, 8, 0, 7, -9, 4 }; 
int array1[] = { 2, 5, 6, -3, 8}; 
// Sắp xếp mảng số nguyên 
Arrays.sort(array); 
// So sánh hai mảng số nguyên array1 và array 
array1.equals(array); 
// Gán giá trị cho các phần tử trong mảng array1 
Arrays.fill(array1, 10); // 10, 10, 10, 10, 10 
// Sao chép mảng array1 sang array2 
int[] arr2 = Arrays.copyOf(arr1, 6); // 10 10 10 10 10 0 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 35/52 
BÀI 6: Giao diện 2 
1. Các điều khiển và thể hiện 
a. JCheckBox 
- Xem slide module 1 – bài 6 – mục 1 
b. JRadioButton 
- Xem slide module 1 – bài 6 – mục 1 
c. GroupBox 
- Xem slide module 1 – bài 6 – mục 1 
- Kiểm tra xem điều khiển nào trong ButtonGroup đang được chọn 
Enumeration elements = group.getElements(); 
 while (elements.hasMoreElements()) { 
 AbstractButton button = (AbstractButton)elements.nextElement(
); 
 if (button.isSelected()) { 
 System.out.println(“Điều khiển đang được chọn 
là: " + button.getText()); 
 } 
 } 
d. JcomboBox 
- Xem slide module 1 – bài 6 – mục 1 
e. JTable 
- Xem slide module 1 – bài 6 – mục 1 
f. JMenu 
- Xem slide module 1 – bài 6 – mục 1 
g. JMenuItem 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 36/52 
- Xem slide module 1 – bài 6 – mục 1 
- Ví dụ: Tạo menu item cĩ thể xác định sự thay đổi trạng thái 
JMenuItem item = new JMenuItem("Label") { 
 public void menuSelectionChanged(boolean isSelected) { 
 super.menuSelectionChanged(isSelected); 
 if (isSelected) { 
 //System.out.println(“Menu item is selected"); } 
 else { 
 //System.out.println(“Menu item is unselected"); 
 } 
 } 
 }; 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 37/52 
BÀI 7: Đối tượng 
1. Tổng quan lập trình hướng đối tượng 
a. Khái niệm lập trình hướng đối tượng 
Đặc điểm của lập trình hướng đối tượng 
- Xem slide module 1 – bài 7 – mục 1 
Ưu điểm của lập trình hướng đối tượng 
- Xem slide module 1 – bài 7 – mục 1 
b. Các đặc trưng cơ bản của lập trình hướng đối tượng 
Tính trừu tượng 
- Xem slide module 1 – bài 7 – mục 1 
Tính đĩng gĩi 
- Xem slide module 1 – bài 7 – mục 1 
Tính kế thừa 
- Xem slide module 1 – bài 7 – mục 1 
2. Xây dựng lớp đối tượng 
a. Tạo lớp và đối tượng 
- Xem slide module 1 – bài 7 – mục 2 
b. Biến thực thể 
- Xem slide module 1 – bài 7 – mục 2 
- Ví dụ 
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 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 38/52 
 public double a,b,c; 
} 
c. Các chỉ định từ truy xuất: 
- Xem slide module 1 – bài 7 – mục 2 
d. Phương thức khởi tạo 
- Xem slide module 1 – bài 7 – mục 2 
e. Phương thức tính tốn xử lý 
- Xem slide module 1 – bài 7 – mục 2 
- 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; 
} 
} 
- Ví dụ 
Tính chu vi tam giác 
TamGiac t=new TamGiac(); 
t.a=2;t.b=3;t.c=4; 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 39/52 
System.out.printf(“Tam giac (%f,%f,%f)”, t.a,t.b, t.c); 
System.out.printf(“Chu vi tam giac: %f”, t.tinhChuVi()); 
Truyền tham số cho phương thức 
- Xem slide module 1 – bài 7 – mục 2 
- Ví dụ: 
Truyền tham trị 
public static void Swap(int a,int b){ 
 int temp=a;a=b;b=temp; 
} 
public static void main(String args[]){ 
 int a=1,b=2; 
System.out.printf(“a=%d, b=%d”,a,b); 
Swap(a,b); 
System.out.printf(“a=%d, b=%d”,a,b); 
} 
- Ví dụ: 
Truyền tham chiếu 
 public static void Swap(MyClass 
a,MyClass b){ 
 MyClass 
temp=a;a=b;b=temp; 
 } 
 public static void main(String args[]){ 
 MyClass a=new MyClass(1); 
 MyClass b=new MyClass(2); 
 System.out.printf(“a=%d, b=%d”,a.x,b.x); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 40/52 
 Swap(a,b); 
 System.out.printf(“a=%d, b=%d”,a.x,b.x); 
 } 
- Ví dụ: 
Truyền tham chiếu 
 public static void Swap(MyClass a,MyClass b){ 
 MyClass temp=new MyClass(a); 
 a.x=b.x;b.x=temp.x; 
 } 
 public static void main(String args[]){ 
 MyClass a=new MyClass(1); 
 MyClass b=new MyClass(2); 
 System.out.printf(“a=%d, 
b=%d”,a.x,b.x); 
 Swap(a,b); 
 System.out.printf(“a=%d, 
b=%d”,a.x,b.x); 
 } 
Phương thức cĩ tham số thay đổi 
- Xem slide module 1 – bài 7 – mục 2 
- Ví dụ: 
 public static void Test(int  a){ 
 for (int i : a) 
 System.out.println(i); 
 } 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 41/52 
 public static void main(String args[]){ 
 Test(1,2,3,4,5,6); 
 Test(10,20); 
 } 
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 
a. Package được định nghĩa trước 
- Xem slide module 1 – bài 7 – mục 3 
b. Package do người dùng định nghĩa 
- Bổ từ truy xuất 
- Xem slide module 1 – bài 7 – mục 3 
- Tĩm tắt package 
+ Java package là một nhĩm các lớp và giao diện cĩ liên hệ với 
nhau được tổ chức thành một đơn vị để quản lý. 
+ Package cĩ thể do người dùng tạo ra hoặc do Java tạo sẵn. 
+ Lệnh package, nếu sử dụng, phải đặt ở đầu chương trình 
+ Lệnh import được dùng để import một hoặc nhiều lớp từ 
package vào chương trình 
+ Chỉ định từ truy xuất điều khiển việc truy xuất các lớp và sự 
nhìn thấy các thành viên của lớp 
+ Chỉ định từ truy xuất cho biến và phương thức là các từ khĩa 
được dùng để xác định các biến và phương thức cần được khai 
báo để điều khiển việc truy xuất từ người dùng 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 42/52 
BÀI 8: Sử dụng dịch vụ 
1. Khái niệm dịch vụ 
Giới thiệu: Web service (www.phpvn.org) 
- Xem slide module 1 – bài 8 – mục 1 
Giới thiệu: Web service (www.w3schools.com) 
- Xem slide module 1 – bài 8 – mục 1 
- Hoạt động 
2. Sử dụng dịch vụ 
- Xem slide module 1 – bài 8 – mục 2 
Sử dụng Web Service miễn phí 
- Ví dụ: Sử dụng dịch vụ “Tỷ giá” trên Internet để xây dựng ứng dụng 
như sau: 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 43/52 
+ Đường dẫn:  
+ Phương thức hỗ trợ 
private String layTyGia() throws IOException { 
URL tyGiaUrl = new 
URL(""); 
URLConnection yc = tyGiaUrl.openConnection(); 
BufferedReader in = new BufferedReader(new 
InputStreamReader( 
yc.getInputStream())); 
String input = in.readLine(); 
in.close(); 
return input; 
} 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 44/52 
BÀI 9: Xử lý biệt lệ trong 
Java (bài đọc thêm) 
1. Giới thiệu về biệt lệ 
- Biệt lệ là một loại lỗi đặc biệt. 
- Lỗi này xuất hiện vào lúc thực thi chương trình. 
- Các trạng thái khơng bình thường xảy ra trong khi thi hành chương 
trình tạo ra các biệt lệ. 
- Nguyên nhân phát sinh biệt lệ? 
+ Lỗi chương trình 
+ Lỗi phía trình khách 
+ Lỗi do điều khiển của chương trình 
+  
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 45/52 
- Mục đích của việc xử lý biệt lệ 
+ Ngăn việc chương trình bị ngắt đột ngột khi biệt lệ xảy ra 
+ Giải phĩng tài nguyên hệ thống cấp phát khi biệt lệ xảy ra 
 cần cĩ một cơ chế xử lý biệt lệ thích hợp 
2. Phân loại biệt lệ 
- Biệt lệ được kiểm tra 
- Biệt lệ khơng được kiểm tra 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 46/52 
3. Xử lý biệt lệ trong Java 
a. Sử dụng khối lệnh try  catch  finaly 
try { 
 Cau_lenh_1; 
 Cau_lenh_2; 
} 
catch(ExceptionType TenBien) { 
 Cau_lenh_0; 
} 
finally{ 
 Cau_lenh_0 
} 
- Mơ hình ’catch và throw’ cĩ hai ưu điểm: 
+ Người lập trình chỉ phải xử lý ngoại lệ khi cần thiết. Khơng cần 
phải thực hiện tại mọi mức. 
+ Thơng báo lỗi cĩ thể được hiện ra khi tiến hành xử lý ngoại lệ. 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 47/52 
b. Trạng thái luồng thi hành khi gặp biệt lệ 
- Sự thi hành của luồng khi gặp biệt lệ 
+ Đối tượng biệt lệ 
+ Biệt lệ được đẩy ra 
+ Lưu vết trên Stack 
- Sự thi hành với khối lệnh try-catch 
+ Khối lệnh try-catch 
+ Bắt biệt lệ 
+ Truy xuất Stack 
c. Mơ tả việc sử dụng từ khĩa throw, throws 
throw ThrowableObject; 
- Ví dụ: 
public static void main(String args[]){ 
 int x=10,y=5; 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 48/52 
 try{ System.out.printf(“%d/%d=%d”,x,y,Chia(x,y)); 
 System.out.printf(“%d*%d=%d”,x,y, x*y)); 
 } 
 catch (Exception e){ 
 System.out.println(“Loi: “+e); } 
 finally { 
 System.out.println(“Cau lenh luon duoc thuc hien”); 
 } 
 System.out.printf(“%d-%d=%d”,x,y,x-y); 
} 
// Trường hợp 1: Dutch It 
public static int Chia(int x,int y) throws ArithmeticException{ 
 return x/y; 
} 
// Trường hợp 2: Catch It 
public static int Chia(int x,int y) { 
 int kq=0; 
 try{ 
 kq=x/y; 
 } 
 catch (ArithmeticException e){ 
 System.out.println(“Loi: “+e); 
 } 
 return kq; 
} 
// Nhận xét sự khác biệt trong kết quả của 2 trường hợp? 
d. Mơ tả việc sử dụng nhiều khối cacth 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 49/52 
- Nhiều khối catch. 
- Nhiều Exception. 
try{ 
} 
catch (ExceptionType Ten_bien){ 
} 
catch (ExceptionType Ten_bien){ 
} 
- Ví dụ: 
public static void main(String args[]){ 
 int x=10,y=5; 
 try{ 
 System.out.printf(“%d/%d=%d”,x,y,Chia(x,y)); 
 System.out.printf(“%d*%d=%d”,x,y, x*y)); 
 } 
 catch (ArithmeticException ae) { 
 System.out.println(“Loi: “+ae); } 
 catch (Exception e){ 
 System.out.println(“Loi: “+e); } 
 finally { 
 System.out.println(“Cau lenh luon duoc thuc hien”); 
 } 
} 
4. Biệt lệ do người dùng định nghĩa 
a. Khái niệm biệt lệ do người dùng định nghĩa 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 50/52 
- Biệt lệ do người dùng định nghĩa phải là lớp con của Exception 
- Các bước tạo biệt lệ do người dùng định nghĩa 
+ Tạo biệt lệ người dùng 
+ Đẩy biệt lệ người dùng ra 
b. Tạo biệt lệ do người dùng định nghĩa 
class MyException extends Exception{ 
 public String getMessage(String s) { 
 return “Biet le do nguoi dung dinh nghia: "+s; 
 } 
} 
public static void main(String args[]) { 
 String temp=“Loi"; 
 try{ 
 String str=“Thanh cong"; 
 if(!temp.equals(str)) 
 throw new MyException(); 
Tài liệu tham khảo 
Lập trình viên cơng nghệ Java – module 1 51/52 
 else 
 System.out.println(“Hoan tat!"); 
} 
catch(MyException e) { 
 System.err.println(e.getMessage(temp)); 
} 
catch(Exception e){ 
 System.err.println(e); 
} 
}