Đề cương lập trình nâng cao với java

170 167 1
Đề cương lập trình nâng cao với java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 đề 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 toá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 nhìn thấy với người dùng bên 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 System.exit(1); } Bước 3: Tạo địa Database URL xác Đây địa trỏ tới sở liệu bạn Việc tạo địa Database URL xác quan trọng, thường bước hay xuất lỗi thành lập kết nối Bảng liệt kê số tên JDBC driver Database URL phổ biến: Trong đó, hostname tên server mà sở liệu chạy (có thể localhost địa IP bạn); port Number số hiệu cổng databaseName tên sở liệu RDBMS Tên JDBC Driver Định dạng URL MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname/ databaseName ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@hostname:port Number:databaseName DB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2:hostname:port Number/databaseName Sybase com.sybase.jdbc.SybDriver jdbc:sybase:Tds:hostname: Number/databaseName Phần in đậm phần bạn không nên thay đổi, bạn cần thay đổi phần lại theo yêu cầu bạn Bước 4: Tạo đối tượng Connection Sau tải driver, bạn thiết lập kết nối sử dụng phương thức DriverManager.getConnection() Phương thức có ba mẫu: Mẫu 1: getConnection(String url) Mẫu phương thức yêu cầu Database URL Tuy nhiên, trường hợp này, Database URL bao username password po Ví dụ: giả sử bạn sử dụng Thin driver Oracle, với host name vietjack, cổng 3306 tên sở liệu sinhvien, Database URL là: jdbc:oracle:thin:username/password@vietjack:3306:sinhvien Do đó, kết nối tạo sau: String URL = "jdbc:oracle:thin:username/password@vietjack:3306:sinhvien"; Connection conn = DriverManager.getConnection(URL); Mẫu 2: getConnection(String url, Properties info) Mẫu phương thức yêu cầu Database URL đối tượng Properties Một đối tượng Properties giữ tập hợp cặp key-value Mẫu sử dụng để truyền thuộc tính tới driver lời gọi tới phương thức getConnection() Để tạo kết nối ví dụ trên, bạn sử dụng: import java.util.*; String URL = "jdbc:oracle:thin:@vietjack:3306:sinhvien"; Properties info = new Properties( ); info.put( "user", "username" ); info.put( "password", "password" ); Connection conn = DriverManager.getConnection(URL, info); Mẫu 3: getConnection(String url, String user, String password) Đây mẫu sử dụng phổ biến Bạn sử dụng phương thức để truyền Database URL, username password Cũng sử dụng ví dụ trên, bạn phải gọi phương thức getConnection() với username password xác để nhận đối tượng Connection sau: String URL = "jdbc:oracle:thin:@vietjack:3306:sinhvien"; String USER = "username"; String PASS = "password" Connection conn = DriverManager.getConnection(URL, USER, PASS); Đóng kết nối JDBC Garbage Collector Java đóng kết nối thực tiến trình xóa đối tượng cũ Tuy nhiên, sau thực xong tác vụ với Database, bạn nên đóng tất kết nối tới sở liệu Bước thực hành cần thiết thực tốt, việc tin tưởng vào trình dọn rác gây hậu không mong muốn Để bảo đảm kết nối đóng, bạn cung cấp khối finally phần code Khối finally luôn thực thi, không exception xuất Để đóng kết nối mở trên, bạn nên gọi phương thức close() có cú pháp sau: public void conn.close() throws SQLException Bài 18 Bài tập thảo luận Case study ATM (3) 18.1 Cài đặt chức giao diện 18.2 Chạy kiểm tra lỗi Bài 20 Bài tập thảo luận tổng kết môn học 20.1 Những ưu điểm lập trình hướng đối tượng OOP giúp việc thiết kế, phát triển bảo trì dễ dàng với lập trình hướng thủ tục việc quản lý code khó khăn lượng code tăng lên Điều làm tăng hiệu có trình phát triển phần mềm OOP cung cấp Data Hiding (ẩn liệu) trong hướng thủ tục liệu toàn cục truy cập từ đâu OOP cung cấp cho bạn khả để mô kiện giới thực cách hiệu Chúng ta cung cấp giải pháp cho vấn đề giới thực sử dụng Lập trình hướng đối tượng 20.2 Phân tích toán theo mô hình hướng đối tượng Trong kỹ thuật lập trình hướng đối tượng, thiết kế chương trình sử dụng lớp đối tượng Object - Đối tượng thực thể mang tính vật lý mang tính logic, lớp thực thể logic Đối tượng có trạng thái hành vi Ví dụ: Một dog có trạng thái color, name, breed (dòng dõi) có hành vi: Wag (vẫy đuôi), bark (sủa), eat (ăn) Một đối tượng instance (ví dụ,trường hợp) lớp Class - 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 Đố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 nhìn thấy với người dùng bên 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 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 Phương thức Java Trong Java, phương thức giống hàm, sử dụng để trưng bày hành vi đối tượng Phương thức giúp code tăng tính tái sử dụng tối ưu hóa code Từ khóa new sử dụng để cấp phát nhớ runtime Constructor Java: Khi bàn luận lớp, chủ đề quan trọng constructor Mỗi lớp có constructor Nếu không viết constructor cách rõ ràng cho lớp biên dịch Java xây dựng constructor mặc định cho lớp Mỗi đối tượng tạo ra, constructor gọi Quy tắc constructor chúng có tên lớp Một lớp có nhiều constructor Sau ví dụ constructor: public class Xecon{ public Xecon(){ } public Xecon(String ten){ // Contructor co mot tham so la ten } } Java hỗ trợ Lớp Singleton Java, bạn tạo instance lớp Tạo đối tượng Java: Như đề cập trước đó, lớp cung cấp thiết kế cho đối tượng Vì thế, bản, đối tượng tạo từ lớp Trong Java, từ khóa new sử dụng để tạo đối tượng Có ba bước tạo đối tượng từ lớp: Khai báo: Một khai báo biến với tên biến với loại đối tượng Cài đặt: Từ khóa new sử dụng để tạo đối tượng Khởi tạo: Từ khóa new theo sau lời gọi constructor Gọi hàm khởi tạo đối tượng Dưới ví dụ tạo đối tượng: public class Xecon{ public Xecon(String ten){ // Contructor co mot tham so la ten System.out.println("Ten xe la :" + ten ); } public static void main(String []args){ // Lenh sau se tao mot doi tuong la Xecuatoi Xecon Xecuatoi = new Xecon( "Toyota" ); } } Nếu biên dịch chạy chương trình, cho kết sau: Ten xe la :Toyota Truy cập biến instance phương thức Java Các biến instance phương thức truy cập thông qua đối tượng tạo Để truy cập biến instance, path sau: /* Dau tien, ban tao mot doi tuong */ Doituongthamchieu = new Constructor(); /* Sau ban goi mot bien nhu sau */ Doituongthamchieu.TenBien; /* Bay gio ban co the goi mot phuong thuc lop nhu sau */ Doituongthamchieu.TenPhuongThuc(); Ví dụ: Ví dụ giải thích cách để truy cập biến instance phương thức lớp: public class Xecon{ int Giaxe; public Xecon(String ten){ // Contructor co mot tham so la ten System.out.println("Ten xe la :" + ten ); } public void setGia( int gia ){ Giaxe = gia; } public int getGia( ){ System.out.println("Gia mua xe la :" + Giaxe ); return Giaxe; } public static void main(String []args){ /* Tao doi tuong */ Xecon Xecuatoi = new Xecon( "Toyota" ); /* Goi mot phuong thuc lop de thiet lap gia xe */ Xecuatoi.setGia( 1000000000 ); /* Goi mot phuong thuc lop khac de lay gia xe */ Xecuatoi.getGia( ); /* Ban cung co the truy cap bien instance nhu sau */ System.out.println("Gia tri bien :" + Xecuatoi.Giaxe ); } } Biên dịch thực thi chương trình cho kết sau: Ten xe la :Toyota Gia mua xe la :1000000000 Gia tri bien :1000000000 Ví dụ đối tượng lớp mà trì ghi sinh viên Trong ví dụ này, tạo hai đối tượng lớp Student khởi tạo giá trị đối tượng việc triệu hồi phương thức insertRecord Ở đây, hiển thị trạng thái (dữ liệu) đối tượng việc triệu hồi phương thức displayInformation class Student2{ int rollno; String name; void insertRecord(int r, String n){ //phuong thuc rollno=r; name=n; } void displayInformation(){System.out.println(rollno+" "+name);} //phuong thuc public static void main(String args[]){ Student2 s1=new Student2(); Student2 s2=new Student2(); s1.insertRecord(111,"HoangThanh"); s2.insertRecord(222,"ThanhHuong"); s1.displayInformation(); s2.displayInformation(); } } Ví dụ khác lớp đối tượng Java Ví dụ khác trì ghi lớp Rectangle Phần giải thích tương tự trên: class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } Các cách khác để tạo đối tượng Java? Có nhiều cách để tạo đối tượng Java Đó là: Bằng từ khóa new Bằng phương thức newInstance() Bằng phương thức clone(), … Bằng phương thức factory, Đối tượng vô danh (annonymous) Java Vô danh hiểu đơn giản tên Một đối tượng mà tham chiếu xem đối tượng vô danh Nếu bạn phải sử dụng đối tượng lần, đối tượng vô danh hướng tiếp cận tốt class Calculation{ void fact(int n){ int fact=1; for(int i=1;i

Ngày đăng: 24/10/2017, 15:51

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan