Lập trình công nghệ java

Tài liệu Lập trình công nghệ java: 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: ttth@hcmus.edu.vn 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 L...

pdf62 trang | Chia sẻ: Khủng Long | Lượt xem: 1105 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Lập trình công nghệ java, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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: ttth@hcmus.edu.vn 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); } }

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf