Bài giảng Lập trình nâng cao với Java nhằm cung cấp các kiến thức cơ bản cho các bạn sinh viên chuyên ngành về: Kế thừa và đa hình trong Java, xử lý ngoại lệ, bài tập và thảo luận về Case study ATM, thao tác tệp, kiểu Collections, generic trong Java,...
LẬP TRÌNH NÂNG CAO VỚI JAVA (Advanced Java programming) Bộ môn Công nghệ Phần mềm Đại học SPKT Hưng Yên Bài Kế thừa đa hình Java 1.1 Đối tượng Java 1.2 Lớp Java 1.3 Phương thức Java 11 1.4 Tạo đối tượng Java 11 1.5 Truy cập biến instance phương thức Java 12 1.6 Đối tượng vô danh (annonymous) Java 16 Bài 3: Xử lý ngoại lệ 19 3.1 Exception gì? 19 Cấp bậc exception Java 20 Các phương thức lớp Exceptions Java 21 Các tình phổ biến mà Exception xảy 22 Các từ khóa để Xử lý ngoại lệ Java 23 3.2 Khối try Java 23 Cú pháp khối try-catch Java 23 Cú pháp khối try-finally Java 23 Khối catch Java 23 Vấn đề khơng có Exception Handling 23 Xử lý vấn đề Exception Handling Java 24 Chế độ làm việc nội khối try-catch Java 24 Nhiều khối catch Java 25 Lồng khối try Java 26 Tại sử dụng khối try lồng Java 26 Ví dụ khối try lồng Java 27 3.3 Sự sử dụng khối finally Java 28 Tình 1: exeption khơng xuất 28 Tình 2: exception xuất khơng xử lý 28 Tình 3: exception xảy xử lý 29 3.6 Phân biệt final, finally, finalize Java 29 Ví dụ final Java 30 Ví dụ finally Java 30 Ví dụ finalize Java 30 3.4 Từ khóa throw Java 31 Ví dụ từ khóa throw Java 31 Quá trình lan truyền Exception Java 31 3.5 Từ khóa throws Java 32 Cú pháp từ khóa throws Java 33 Ví dụ throws Java 33 Trường hợp 1: Bạn xử lý exception 34 Trường hợp 2: Bạn khai báo exception 35 A Chương trình ví dụ exception không xuất 35 B Chương trình ví dụ exception xuất 35 Phân biệt throw throws Java 36 Ví dụ throw Java 37 Ví dụ throws Java 37 Ví dụ throw throws Java 37 3.6 ExceptionHandling Ghi đè phương thức Java 37 3.7 Custom Exception Java 41 Bài String 43 5.1 String Java 43 Chuỗi Java 43 Cách tạo đối tượng String Java 43 Sử dụng từ khóa new 44 Tạo String định dạng Java 45 5.2 Immutable String Java 46 Tại đối tượng String Immutable Java? 47 5.3 So sánh chuỗi Java 47 So sánh chuỗi phương thức equals() Java 47 So sánh chuỗi với toán tử == Java 48 So sánh chuỗi phương thức compareTo() Java 49 5.4 Nối chuỗi Java 49 Nối chuỗi toán tử + Java 49 Nối chuỗi phương thức concat() Java 50 5.5 Chuỗi Java 51 Ví dụ chuỗi Java 51 5.6 Phương thức lớp String Java 52 Phương thức toUpperCase() toLowerCase() lớp String Java 52 Phương thức trim() lớp String Java 53 Phương thức startWith() endsWith() lớp String Java 53 Phương thức charAt() lớp String Java 53 Phương thức length() lớp String Java 53 Phương thức intern lớp String Java 53 Phương thức valueOf() lớp String Java 54 Phương thức replace() lớp String Java 54 5.7 Lớp StringBuffer Java 54 Các Constructor quan trọng lớp StringBuffer Java 54 Các phương thức quan trọng lớp StringBuffer Java 55 Chuỗi dạng mutable gì? 55 Phương thức append() lớp StringBuffer Java 55 Phương thức insert() lớp StringBuffer Java 56 Phương thức replace() lớp StringBuffer Java 56 Phương thức delete() lớp StringBuffer Java 57 Phương thức reverse() lớp StringBuffer Java 57 Phương thức capacity() lớp StringBuffer Java 57 Phương thức ensureCapacity() lớp StringBuffer Java 58 5.8 StringBuilder Java 59 Các Constructor quan trọng lớp StringBuilder Java 59 Các phương thức quan trọng lớp StringBuffer Java 59 Phương thức append() lớp StringBuffer Java 60 Phương thức insert() lớp StringBuffer Java 61 Phương thức replace() lớp StringBuffer Java 61 Phương thức delete() lớp StringBuffer Java 61 Phương thức reverse() lớp StringBuffer Java 62 Phương thức capacity() lớp StringBuffer Java 62 Phương thức ensureCapacity() lớp StringBuffer Java 63 5.9 So sánh lớp String StringBuffer Java 64 Kiểm tra hiệu suất lớp String StringBuffer Java 64 Kiểm tra HashCode lớp String StringBuffer Java 66 5.10 So sánh lớp StringBuffer StringBuilder Java 67 Ví dụ lớp StringBuffer Java 67 Ví dụ lớp StringBuilder Java 67 Kiểm tra hiệu suất lớp StringBuffer StringBuilder Java 68 Bài Bài tập thảo luận Case study ATM (1) 70 7.1 Các yêu cầu ATM 70 7.2 Cách xây dựng lớp đối tượng 71 Các thành phần vẽ Class 71 Relationship (Quan hệ) 72 Cách xây dựng vẽ Class 75 7.2 Phân tích theo mơ hình hướng đối tượng 77 Đặc tả Class 77 Sử dụng vẽ Class 78 Kết luận 78 Bài Thao tác tệp 79 8.1 File I/O Java 79 Byte Stream Java 79 Character Stream Java 80 Standard Stream Java 81 Đọc Ghi File Java 83 FileInputStream Java: 83 FileOutputStream Java 84 Ví dụ: 85 Điều hướng file I/O Java 86 Thư mục Java 86 Tạo thư mục Java 87 Liệt kê thư mục Java 87 8.2 Lớp File Java 88 Ví dụ 92 8.3 Lớp FileReader Java 94 8.4 Lớp FileWriter Java 95 Ví dụ 96 Bài 10 Kiểu Collections 98 10.1 Collection Java 98 Collection Interface Java 98 Các lớp Collection Java 99 Các thuật toán Collection Java 102 Cách sử dụng Iterator Java 102 Cách sử dụng Comparator Java 102 Tổng kết 103 10.2 Collection Interface Java 103 Ví dụ 105 10.3 List Interface Java 106 Ví dụ 108 10.4 Lớp LinkedList Java 109 Ví dụ 112 Ví dụ 116 10.5 Lớp Hashtable Java 117 Ví dụ 119 10.6 Map Interface Java 120 Ví dụ 122 10.7 Lớp HashMap Java 123 Ví dụ 125 Bài 12 Generic Java 127 12.1 Generic Java 127 12.2 Các phương thức generic Java 127 Ví dụ: 128 12.3 Các tham số kiểu giới hạn (bounded type) Java 129 Ví dụ: 129 12.4 Các lớp Generic Java 131 Ví dụ: 131 Bài 14: Thread 133 14.1 Thread Java 133 14.2 Vòng đời Thread Java 133 14.3 Quyền ưu tiên thread Java 134 14.4 Tạo thread triển khai Runnable Interface Java 134 Ví dụ: 135 14.5 Tạo Thread kế thừa lớp Thread Java 137 Ví dụ: 137 14.6 Các phương thức lớp Thread Java 139 Bài 17 Lập trình với JDBC 145 17.1 JDBC gì? 145 Tại sử dụng JDBC? 145 API gì? 145 Các thành phần JDBC 145 17.2 Cài đặt JDBC 146 17.3 Giới thiệu JDBC Driver 146 JDBC Driver gì? 146 Giới thiệu JDBC-ODBC bridge driver 147 Giới thiệu Native-API driver 147 Giới thiệu Network Protocol driver 147 Giới thiệu Thin driver 147 Sự sử dụng kiểu driver 147 17.4 Kiểu liệu JDBC 148 Kiểu liệu Date Time JDBC 151 Xử lý giá trị NULL JDBC 153 17.5 Kết nối JDBC với sở liệu 154 Sử dụng phương thức Class.forName() 155 Sử dụng DriverManager.registerDriver() 155 Đóng kết nối JDBC 158 Bài 18 Bài tập thảo luận Case study ATM (3) 159 18.1 Cài đặt chức giao diện 159 18.2 Chạy kiểm tra lỗi 159 Bài 20 Bài tập thảo luận tổng kết môn học 160 20.1 Những ưu điểm lập trình hướng đối tượng 160 20.2 Phân tích tốn theo mơ hình hướng đối tượng 160 Đối tượng Java 160 Lớp Java 161 Cú pháp để khai báo lớp 161 Ví dụ đơn giản Lớp Đối tượng Java 161 Phương thức Java 162 Constructor Java: 162 Tạo đối tượng Java: 163 Truy cập biến instance phương thức Java 164 Ví dụ: 164 Ví dụ đối tượng lớp mà trì ghi sinh viên 165 Ví dụ khác lớp đối tượng Java 166 Các cách khác để tạo đối tượng Java? 167 Đối tượng vô danh (annonymous) Java 168 Tạo nhiều đối tượng kiểu 168 20.3 Trao đổi: 169 Bài Kế thừa đa hình Java 1.1 Đối tượng Java Đó thực thể có trạng thái hành vi, ví dụ bàn, ghế, xe con, mèo, … Nó mang tính vật lý logic Ví dụ logic Banking system Một đối tượng có ba đặc trưng sau: Trạng thái: biểu diễn liệu (giá trị) đối tượng Hành vi: biểu diễn hành vi (tính năng) đối tượng gửi tiền vào, rút tiền ra, … Nhận diện: việc nhận diện đối tượng triển khai thông qua ID Giá trị ID khơng thể nhìn thấy với người dùng bên ngồi Nhưng sử dụng nội JVM để nhận diện đối tượng cách Ví dụ: Bút đối tượng Nó có tên Thiên Long, có màu trắng, … xem trạng thái Nó sử dụng để viết, viết hành vi Đối tượng thể (Instance) lớp Lớp Template thiết kế từ đối tượng tạo Vì đối tượng Instance (kết quả) lớp 1.2 Lớp Java Một lớp nhóm đối tượng mà có thuộc tính chung Lớp Template thiết kế từ đối tượng tạo Một lớp Java bao gồm: Thành viên liệu Phương thức Constructor Block Lớp Interface Cú pháp để khai báo lớp class ten_lop{ thanh_vien_du_lieu; phuong_thuc; } Ví dụ đơn giản Lớp Đối tượng Java Trong ví dụ này, tạo lớp Student có hai thành viên liệu id name Chúng ta tạo đối tượng lớp Student từ khóa new in giá trị đối tượng class Student1{ int id; //thanh vien du lieu (cung la bien instance) String name; //thanh vien du lieu (cung la bien instance) public static void main(String args[]){ Student1 s1=new Student1(); //tao mot doi tuong Student System.out.println(s1.id); System.out.println(s1.name); } } Một lớp chứa loại biến sau: Biến Local: Các biến định nghĩa bên phương thức, constructor block code gọi biến Local Biến khai báo khởi tạo bên phương thức biến bị hủy phương thức hoàn thành Biến Instance: Các biến instance biến lớp bên phương thức Những biến khởi tạo lớp tải Các biến instance truy cập từ bên phương thức, constructor khối lớp cụ thể Biến Class: Các biến class biến khai báo với lớp, bên phương thức nào, với từ khóa static .. .Bài Kế thừa đa hình Java 1.1 Đối tượng Java 1.2 Lớp Java 1.3 Phương thức Java 11 1.4 Tạo đối tượng Java ... finalize Java 29 Ví dụ final Java 30 Ví dụ finally Java 30 Ví dụ finalize Java 30 3.4 Từ khóa throw Java 31 Ví dụ từ khóa throw Java. .. compareTo() Java 49 5.4 Nối chuỗi Java 49 Nối chuỗi toán tử + Java 49 Nối chuỗi phương thức concat() Java 50 5.5 Chuỗi Java 51 Ví dụ chuỗi Java