Tài liệu Lập trình java căn bản

  • Số trang: 162 |
  • Loại file: PDF |
  • Lượt xem: 175 |
  • Lượt tải: 0
tranvantruong

Đã đăng 3224 tài liệu

Mô tả:

lập trình java_căn bản
Lập trình Java cơ bản 2013 JAVA BASIC Cloud Page 1 Lập trình Java cơ bản 2013 Contents 1 CHƢƠNG 1 CÁC KHÁI NIỆM CƠ BẢN ....................................................... 10 1.1 LÀM QUEN VỚI JAVA............................................................................ 10 1.1.1 Lịch sử java ......................................................................................... 10 1.1.2 Java em là ai? ....................................................................................... 10 1.1.3 Một số đặc trƣng của java.................................................................... 11 1.1.4 Các kiểu ứng dụng Java ....................................................................... 13 1.1.5 Máy ảo Java (JVM-Java Virtual Machine) ......................................... 14 1.2 NỀN TẢNG CỦA JAVA ........................................................................... 15 1.2.1 Tập ký tự dùng trong java.................................................................... 15 1.2.2 Từ khoá của Java ................................................................................. 15 1.2.3 Định danh (tên) trong java ................................................................... 17 1.2.4 Cấu trúc một chƣơng trình java ........................................................... 18 1.2.5 Chƣơng trình JAVA đầu tiên............................................................... 20 1.2.6 Chú thích trong chƣơng trình .............................................................. 22 1.2.7 Kiểu dữ liệu ......................................................................................... 22 1.2.7.1 Các kiểu dữ liệu nguyên thuỷ ....................................................... 22 1.2.7.2 Kiểu tham chiếu ............................................................................ 23 1.2.8 Khai báo biến ....................................................................................... 23 1.2.9 Phạm vi biến ........................................................................................ 24 1.2.10 Một số phép toán trên kiểu dữ liệu nguyên thuỷ ................................. 25 1.2.10.1 Phép gán ....................................................................................... 25 1.2.10.2 Toán tử toán học .......................................................................... 26 1.2.10.3 Toán tử tăng, giảm ........................................................................ 26 1.2.10.4 Phép toán quan hệ........................................................................ 27 1.2.10.5 Phép toán logic ............................................................................. 29 1.2.10.6 Phép toán thao tác trên bit .......................................................... 30 1.2.10.7 Toán tử gán tắt ............................................................................. 32 1.2.10.8 Toán tử dẫy ................................................................................... 32 1.2.11 Thứ tự ƣu tiên của các phép toán ........................................................ 32 Cloud Page 2 Lập trình Java cơ bản 2013 1.2.12 Toán tử chuyển kiểu ............................................................................ 33 1.2.12.1 Chuyển đổi kiểu không tường minh ............................................. 33 1.2.12.2 Chuyển đổi kiểu tường minh ........................................................ 34 1.2.13 Các hàm toán học ................................................................................ 35 1.2.14 Các phép toán trên kiểu kí tự ............................................................... 37 1.3 ĐIỀU KHIỂN LUỒNG CHƢƠNG TRÌNH .............................................. 37 1.3.1 1.3.1.1 Phát biểu if .................................................................................... 37 1.3.1.2 Biểu thức điều kiện ....................................................................... 38 1.3.1.3 Cấu trúc switch.............................................................................. 38 1.3.1.4 Toán tử điều kiện .......................................................................... 40 1.3.2 2 Cấu trúc rẽ nhánh................................................................................. 37 Cấu trúc lặp .......................................................................................... 40 1.3.2.1 Lặp kiểm tra điều kiện trước - while ............................................ 40 1.3.2.2 Lặp kiểm tra điều kiện sau - do...while ......................................... 41 1.3.3 Cấu trúc for .......................................................................................... 42 1.3.4 Lệnh break và continue ....................................................................... 44 CHƢƠNG 2 LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG .......................................... 48 2.1 ĐỊNH NGHĨA LỚP ................................................................................... 48 2.1.1 Khai báo lớp ........................................................................................ 48 2.1.1.1 Khai báo thuộc tính ....................................................................... 50 2.1.1.2 Khai báo phương thức .................................................................. 51 2.1.2 Chi tiết về khai báo một phƣơng thức ................................................. 52 2.1.2.1 Tổng quát ...................................................................................... 52 2.1.2.2 Nhận giá trị trả về từ phương thức .............................................. 53 2.1.2.3 Truyền tham số cho phương thức ................................................ 53 2.1.2.3.1 Kiểu tham số ............................................................................. 54 2.1.2.3.2 Tên tham số .............................................................................. 54 2.1.2.3.3 Truyền tham số theo trị ............................................................ 54 2.1.2.4 2.1.3 Cloud Thân của phương thức ................................................................. 55 Từ khoá this ......................................................................................... 55 Page 3 Lập trình Java cơ bản 2013 2.1.4 Từ khoá super ...................................................................................... 56 2.1.5 Sử dụng lớp.......................................................................................... 57 2.1.6 Điều khiển việc truy cập đến các thành viên của một lớp ................... 57 2.2 2.1.6.1 Các thành phần private ................................................................. 57 2.1.6.2 Các thành phần protected ............................................................ 58 2.1.6.3 Các thành phần public .................................................................. 58 2.1.6.4 Các thành phần có mức truy xuất gói ........................................... 59 KHỞI ĐẦU VÀ DỌN DẸP ....................................................................... 59 2.2.1 2.2.1.1 Công dụng ..................................................................................... 59 2.2.1.2 Cách viết hàm tạo ......................................................................... 59 2.2.1.3 Hàm tạo mặc định......................................................................... 60 2.2.1.4 Gọi hàm tạo từ hàm tạo ............................................................... 61 2.2.2 Khối khởi đầu vô danh và khối khởi đầu tĩnh ..................................... 62 2.2.2.1 Khối vô danh ................................................................................. 62 2.2.2.2 Khối khởi đầu tĩnh ......................................................................... 64 2.2.3 2.3 Phƣơng thức tạo dựng (constructor) .................................................... 59 Dọn dẹp kết thúc và thu rác ................................................................. 65 2.2.3.1 Phương thức finalize ..................................................................... 65 2.2.3.2 Cơ chế gom rác của java ............................................................... 65 CÁC THÀNH PHẦN TĨNH ...................................................................... 66 2.3.1 Thuộc tính tĩnh .................................................................................... 66 2.3.2 Phƣơng thức tĩnh ................................................................................. 66 2.4 NẠP CHỒNG PHƢƠNG THỨC ............................................................... 67 2.4.1 Khái niệm về phƣơng thức bội tải ....................................................... 67 2.4.2 Yêu cầu của các phƣơng thức bội tải................................................... 67 2.5 KẾ THỪA (INHERITANCE) .................................................................... 68 2.5.1 Lớp cơ sở và lớp dẫn xuất ................................................................... 68 2.5.2 Cách xây dựng lớp dẫn xuất ................................................................ 68 2.5.3 Thừa kế các thuộc tính......................................................................... 69 2.5.4 Thừa kế phƣơng thức ........................................................................... 69 Cloud Page 4 Lập trình Java cơ bản 2013 2.5.5 Khởi đầu lớp cơ sở............................................................................... 69 2.5.5.1 Trật tự khởi đầu ............................................................................ 72 2.5.5.2 Trật tự dọn dẹp ............................................................................. 72 2.5.6 Ghi đè phƣơng thức (Override) ........................................................... 72 2.5.7 Thành phần protected .......................................................................... 72 2.5.8 Từ khoá final ....................................................................................... 72 2.5.8.1 Thuộc tính final ............................................................................. 73 2.5.8.2 Đối số final .................................................................................... 73 2.5.8.3 Phương thức final ......................................................................... 74 2.5.8.4 Lớp final ........................................................................................ 74 2.6 LỚP CƠ SỞ TRỪU TƢỢNG .................................................................... 74 2.7 ĐA HÌNH THÁI ......................................................................................... 75 2.7.1 Các bƣớc để tạo đa hình thái ............................................................... 75 2.7.2 Khái niệm về tạo khuôn lên, tạo khuôn xuống .................................... 75 2.8 GIAO DIỆN, LỚP TRONG, GÓI .............................................................. 76 2.8.1 2.8.1.1 Phần khai báo của giao diện ......................................................... 77 2.8.1.2 Phần thân ...................................................................................... 77 2.8.1.3 Triển khai giao diện....................................................................... 78 2.8.2 2.9 Giao diện.............................................................................................. 76 Lớp trong ............................................................................................. 79 MẢNG, XÂU KÝ TỰ VÀ TẬP HỢP ....................................................... 80 2.9.1 Mảng .................................................................................................... 80 2.9.1.1 Mảng 1 chiều ................................................................................ 80 2.9.1.1.1 Khai báo .................................................................................... 80 2.9.1.1.2 Truy xất đến các phần tử của mảng một chiều ........................ 82 2.9.1.1.3 Lấy về số phần tử hiện tại của mảng ........................................ 82 2.9.1.2 Mảng nhiều chiều ......................................................................... 84 2.9.1.2.1 Khai báo .................................................................................... 84 2.9.1.2.2 Truy xuất đến phần tử mảng nhiều chiều ................................ 85 2.9.2 Cloud Xâu ký tự ............................................................................................. 85 Page 5 Lập trình Java cơ bản 2013 2.9.2.1 Lớp String ...................................................................................... 86 2.9.2.1.1 Các phương thức của lớp String ............................................... 86 2.9.2.2 Lớp StringBuffer ............................................................................ 89 2.9.2.2.1 Các phương thức lớp StringBuffer ........................................... 91 2.9.2.3 2.9.3 Lớp StringTokenizer ...................................................................... 93 Một số lớp cơ bản của Java ................................................................. 95 2.9.3.1 Lớp Object ..................................................................................... 96 2.9.3.2 Các lớp bao kiểu nguyên thủy (Wrapper class) ............................ 97 2.9.3.2.1 Các toán tử tạo lập chung ..................................................... 97 2.9.3.2.2 Các hàm valueOf(String s)......................................................... 97 2.9.3.2.3 Hàm toString() .......................................................................... 98 2.9.3.2.4 Hàm equals() ............................................................................. 98 2.9.3.3 Lớp Boolean .................................................................................. 99 2.9.3.4 Lớp Character................................................................................ 99 2.9.3.5 Các lớp bao kiểu số ....................................................................... 99 2.9.3.5.1 Các hàm typeValue() ............................................................... 100 2.9.3.5.2 Các hàm parseType(String s) .................................................. 100 2.9.3.6 Lớp Void ...................................................................................... 102 2.9.3.7 Lớp Math ..................................................................................... 102 2.9.3.7.1 Hàm abs() ................................................................................ 102 2.9.3.7.2 Các hàm làm tròn .................................................................... 102 2.9.3.7.3 Hàm max(); min() .................................................................... 102 2.9.3.7.4 Các hàm lũy thừa .................................................................... 103 2.9.3.7.5 Các hàm lượng giác ................................................................. 103 2.9.4 Các lớp tập hợp .................................................................................. 104 Phần giao diện ............................................................................................. 104 Phần cài đặt ................................................................................................. 104 Phần thuật toán ........................................................................................... 105 Cloud 2.9.4.1 Collection .................................................................................... 106 2.9.4.2 Set (tập hợp) ............................................................................... 107 Page 6 Lập trình Java cơ bản 2013 2.9.4.2.1 HashSet ................................................................................... 107 2.9.4.2.2 SortedSet ................................................................................ 109 2.9.4.3 List (danh sách) ........................................................................... 109 2.9.4.4 Map (ánh xạ) ............................................................................... 111 2.9.4.5 Các lớp HashMap và HashTable ................................................. 112 2.9.4.6 SortedSet và SortedMap ............................................................. 113 2.9.4.6.1 Giao diện SortedSet ................................................................ 114 2.9.4.6.2 Giao diện SortedMap .............................................................. 114 2.9.4.7 3 4 Lớp TreeSet và TreeMap............................................................. 115 CHƢƠNG 3 XỬ LÝ NGOẠI LỆ ................................................................... 116 3.1 Mục đích của việc xử lý ngoại lệ ............................................................. 116 3.2 Mô hình xử lý ngoại lệ của java ............................................................... 117 3.3 Đặc tả ngoại lệ .......................................................................................... 117 3.4 Ném ra ngoại lệ ........................................................................................ 118 3.5 Bắt ngoại lệ ............................................................................................... 118 3.6 Khối „finally‟ ............................................................................................ 120 3.7 Một số lớp ngoại lệ chuẩn của Java ......................................................... 121 CHƢƠNG 4 LẬP TRÌNH ĐA TUYẾN ....................................................... 123 4.1 Các kiến thức liên quan ............................................................................ 123 4.1.1 Tiến trình ( process)........................................................................... 123 4.1.2 Tiểu trình (thread) .............................................................................. 123 4.1.3 Hệ điều hành đơn nhiệm, đa nhiệm ................................................... 123 4.1.4 Các trạng thái của tiến trình ............................................................... 124 4.1.5 Miền găng (Critical Section) ............................................................. 124 4.1.5.1 Vấn đề tranh chấp tài nguyên .................................................... 124 4.1.5.2 Miền găng (Critical Section) ........................................................ 125 4.1.6 4.2 Khoá chết (deadlock) ......................................................................... 125 Lập trình đa tuyến trong Java ................................................................... 125 4.2.1 Lớp Thread ........................................................................................ 126 4.2.2 Vòng đời của Thread ......................................................................... 128 Cloud Page 7 Lập trình Java cơ bản 2013 5 4.2.3 Luồng chạy ngầm (deamon) .............................................................. 129 4.2.4 Giao diện Runnable ........................................................................... 129 4.2.5 Thiết lập độ ƣu tiên cho tuyến ........................................................... 130 4.2.6 Nhóm tuyến (Thread Group) ............................................................. 131 4.2.7 Đồng bộ các tuyến thi hành ............................................................... 131 CHƢƠNG 5 NHẬP XUẤT ........................................................................... 133 5.1 Lớp luồng ................................................................................................. 134 5.2 Lớp nhập, xuất hƣớng kí tự ...................................................................... 134 5.3 Luồng hƣớng byte .................................................................................... 135 5.4 Sự tƣơng tự giữa hai luồng hƣớng byte và hƣớng kí tự ........................... 136 5.5 Xử lý tệp tin .............................................................................................. 136 5.6 Luồng dữ liệu ........................................................................................... 138 5.7 Luồng in ấn ............................................................................................... 140 5.7.1 Một số phƣơng thức của lớp PrintStream: ........................................ 140 5.7.2 Hàm tạo của lớp PrintStream............................................................. 141 5.7.3 Một số phƣơng thức của lớp PrintWriter .......................................... 142 5.7.4 Các hàm tạo của lớp PrintWriter ....................................................... 143 5.8 Luồng đệm................................................................................................ 143 5.9 Tệp tin truy cập ngẫu nhiên ...................................................................... 144 Lớp File ................................................................................................. 146 5.10 6 CHƢƠNG 6 LẬP TRÌNH ĐỒ HOẠ .............................................................. 150 6.1 Giới thiệu về hệ thống đồ hoạ của Java.................................................... 150 6.1.1 Giới thiệu chung ................................................................................ 150 6.1.2 Một số phƣơng thức của lớp Component .......................................... 152 6.1.3 Lớp Container .................................................................................... 153 6.1.4 Tạo ra Frame ...................................................................................... 153 6.2 Trình quản lý hiển thị trong Java ............................................................. 154 6.2.1 Lớp FlowLayout ................................................................................ 156 6.2.2 Lớp GridLayout ................................................................................. 156 6.2.3 Lớp BorderLayout ............................................................................. 157 6.3 Cloud Xử lý sự kiện trong Java........................................................................... 157 Page 8 Lập trình Java cơ bản 2013 6.3.1 Ý nghĩa của các lớp ........................................................................... 158 6.3.1.1 ActionEvent ................................................................................. 158 6.3.1.2 AdjustmentEvent ........................................................................ 158 6.3.1.3 ItemEvent .................................................................................... 158 6.3.1.4 TextEvent .................................................................................... 158 6.3.1.5 ComponentEvent ........................................................................ 160 6.3.1.6 ContainerEvent ........................................................................... 160 6.3.1.7 FocusEvent .................................................................................. 160 6.3.1.8 KeyEvent ..................................................................................... 160 6.3.1.9 MouseEvent ................................................................................ 160 6.3.1.10 PaintEvent ................................................................................... 161 6.3.1.11 WindowEvent.............................................................................. 161 6.3.2 Cloud Một số lớp điều hợp ........................................................................... 162 Page 9 Lập trình Java cơ bản 2013 1 CHƢƠNG 1 CÁC KHÁI NIỆM CƠ BẢN 1.1 LÀM QUEN VỚI JAVA 1.1.1 Lịch sử java Java là một ngôn ngữ lập trình đƣợc Sun Microsystems giới thiệu vào tháng 6 năm 1995. Từ đó, nó đã trở thành một công cụ lập trình của các lập trình viên chuyên nghiệp. Java đƣợc xây dựng trên nền tảng của C và C++. Do vậy nó sử dụng các cú pháp của C và các đặc trƣng hƣớng đối tƣợng của C++. Ban đầu Java đƣợc thiết kế để làm ngôn ngữ viết chƣơng trình cho các sản phẩm điện tử dân dụng nhƣ đầu video, tivi, điện thoại, máy nhắn tin.. . Tuy nhiên với sự mãnh mẽ của Java đã khiến nó nổi tiếng đến mức vƣợt ra ngoài sự tƣởng tƣợng của các nhà thiết kế ra nó. Java khởi thuỷ tên là Oak- là cây sồi mọc ở phía sau văn phòng của nhà thiết kế chính ông Jame Gosling, sau này ông thấy rằng đã có ngôn ngữ lập trình tên Oak rồi, do vậy nhóm thiết kế quyết định đổi tên, “Java” là cái tên đƣợc chọn, Java là tên của một quán cafe mà nhóm thiết kế java hay đến đó uống. 1.1.2 Java em là ai? Java là ngôn ngữ lập trình hƣớng đối tƣợng, do vậy không thể dùng Java để viết một chƣơng trình hƣớng chức năng. Java có thể giải quyết hầu hết các công việc mà các ngôn ngữ khác có thể làm đƣợc. Java là ngôn ngữ vừa biên dịch vừa thông dịch. Đầu tiên mã nguồn đƣợc biên dịch bằng công cụ JAVAC để chuyển thành dạng ByteCode. Sau đó đƣợc thực thi trên từng loại máy cụ thể nhờ chƣơng trình thông dịch JAVA. Mục tiêu của các nhà thiết kế Java là cho phép ngƣời lập trình viết chƣơng trình một lần nhƣng có thể chạy trên bất cứ phần cứng cụ thể, thế nên khẩu hiệu của các nhà thiết kế Java là “Write One, Run Any Where”. Ngày nay, Java đƣợc sử dụng rộng rãi để viết chƣơng trình chạy trên Internet. Nó là ngôn ngữ lập trình hƣớng đối tƣợng độc lập thiết bị, không phụ thuộc vào hệ Cloud Page 10 Lập trình Java cơ bản 2013 điều hành. Java không chỉ dùng để viết các ứng dụng chạy đơn lẻ hay trong mạng mà còn để xây dựng các trình điều khiển thiết bị cho điện thoại di động, PDA, … 1.1.3 Một số đặc trƣng của java 1. Đơn giản Những ngƣời thiết kế mong muốn phát triển một ngôn ngữ dễ học và quen thuộc với đa số ngƣời lập trình. Java tựa nhƣ C++, nhƣng đã lƣợc bỏ đi các đặc trƣng phức tạp, không cần thiết của C và C++ nhƣ: thao tác con trỏ, thao tác định nghĩa chồng toán tử (operator overloading),… Java không sử dụng lệnh goto cũng nhƣ file header (.h). Cấu trúc struct và union cũng đƣợc loại bỏ khỏi Java. Nên có ngƣời bảo Java là “C++--“, ngụ ý bảo java là C++ nhƣng đã bỏ đi những thứ phức tạp, không cần thiết. 2. Hƣớng đối tƣợng Có thể nói java là ngôn ngữ lập trình hoàn toàn hƣớng đối tƣợng, tất cảc trong java đều là sự vật, đâu đâu cũng là sự vật. 3. Độc lập với hệ nền Mục tiêu chính của các nhà thiết kế java là độc lập với hệ nền hay còn gọi là độc lập phần cứng và hệ điều hành. Đây là khả năng một chƣơng trình đƣợc viết tại một máy nhƣng có thể chạy đƣợc bất kỳ đâu. Tính độc lập với phần cứng đƣợc hiểu theo nghĩa một chƣơng trình Java nếu chạy đúng trên phần cứng của một họ máy nào đó thì nó cũng chạy đúng trên tất cả các họ máy khác. Một chƣơng trình chỉ chạy đúng trên một số họ máy cụ thể đƣợc gọi là phụ thuộc vào phần cứng. Tính độc lập với hệ điều hành đƣợc hiểu theo nghĩa một chƣơng trình Java có thể chạy đƣợc trên tất cả các hệ điều hành. Một chƣơng trình chỉ chạy đƣợc trên một số hệ điều hành đƣợc gọi là phụ thuộc vào hệ điều hành. Các chƣơng trình viết bằng java có thể chạy trên hầu hết các hệ nền mà không cần phải thay đổi gì, điều này đã đƣợc những ngƣời lập trình đặt cho nó một khẩu hiệu ‘viết một lần, chạy mọi nơi’, điều này là không thể có với các ngôn ngữ lập Cloud Page 11 Lập trình Java cơ bản 2013 trình khác. Đối với các chƣơng trình viết bằng C, C++ hoặc một ngôn ngữ nào khác, trình biên dịch sẽ chuyển tập lệnh thành mã máy (machine code), hay lệnh của bộ vi xử lý. Những lệnh này phụ thuộc vào CPU hiện tại trên máy bạn. Nên khi muốn chạy trên loại CPU khác, chúng ta phải biên dịch lại chƣơng trình. 4. Mạnh mẽ Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu, việc ép kiểu tự động bừa bãi của C, C++ nay đƣợc hạn chế trong Java, điều này làm chƣơng trình rõ ràng, sáng sủa, ít lỗi hơn. Java kiểm tra lúc biên dịch và cả trong thời gian thông dịch vì vậy Java loại bỏ một một số loại lỗi lập trình nhất định.Java không sử dụng con trỏ và các phép toán con trỏ. Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo rằng các truy nhập đó không ra ngoài giới hạn kích thƣớc. Trong các môi trƣờng lập trình truyền thống, lập trình viên phải tự mình cấp phát bộ nhớ. Trƣớc khi chƣơng trình kết thúc thì phải tự giải phóng bộ nhớ đã cấp. Vấn đề nảy sinh khi lập trình viên quên giải phóng bộ nhớ đã xin cấp trƣớc đó. Trong chƣơng trình Java, lập trình viên không phải bận tâm đến việc cấp phát bộ nhớ. Qúa trình cấp phát, giải phóng đƣợc thực hiện tự động, nhờ dịch vụ thu nhặt những đối tƣợng không còn sử dụng nữa (garbage collection). Cơ chế bẫy lỗi của Java giúp đơn giản hóa qúa trình xử lý lỗi và hồi phục sau lỗi. 5. Hỗ trợ lập trình đa tuyến Đây là tính năng cho phép viết một chƣơng trình có nhiều đoạn mã lệnh đƣợc chạy song song với nhau. Với java ta có thể viết các chƣơng trình có khả năng chạy song song một cách dễ dàng, hơn thế nữa việc đồng bộ tài nguyên dùng chung trong Java cũng rất đơng giản. Điều này là không thể có đối với một số ngôn ngữ lập trình khác nhƣ C/C++, pascal … 6. Phân tán Java hỗ trợ đầy đủ các mô hình tính toán phân tán: mô hình client/server, gọi thủ tục từ xa… 7. Hỗ trợ internet Mục tiêu quan trọng của các nhà thiết kế java là tạo điều kiện cho các nhà phát Cloud Page 12 Lập trình Java cơ bản 2013 triển ứng dụng có thể viết các chƣơng trình ứng dụng internet và web một cách dễ dàng, với java ta có thể viết các chƣơng trình sử dụng các giao thức TCP, UDP một cách dễ dàng, về lập trình web phía máy khách java có công nghệ java applet, về lập trình web phía máy khách java có công nghệ servlet/JSP, về lập trình phân tán java có công nghệ RMI, CORBA, EJB, Web Service. 8. Thông dịch Các chƣơng trình java cần đƣợc thông dịch trƣớc khi chạy, một chƣơng trình java đƣợc biên dịch thành mã bytecode mã độc lập với hệ nền, chƣơng trình thông dịch java sẽ ánh xạ mã bytecode này lên mỗi nền cụ thể, điều này khiến java chậm chạp đi phần nào. 1.1.4 Các kiểu ứng dụng Java Với Java ta có thể xây dựng các kiểu ứng dụng sau: 1. Ứng dụng Applets Applet là chƣơng trình Java đƣợc tạo ra để sử dụng trên Internet thông qua các trình duyệt hỗ trợ Java nhƣ IE hay Netscape. Applet đƣợc nhúng bên trong trang Web. Khi trang Web hiển thị trong trình duyệt, Applet sẽ đƣợc tải về và thực thi tại trình duyệt. 2. Ứng dụng dòng lệnh (console) Các chƣơng trình này chạy từ dấu nhắc lệnh và không sử dụng giao diện đồ họa. Các thông tin nhập xuất đƣợc thể hiện tại dấu nhắc lệnh. 3. Ứng dụng đồ họa Đây là các chƣơng trình Java chạy độc lập cho phép ngƣời dùng tƣơng tác qua giao diện đồ họa. 4. JSP/Servlet Java thích hợp để phát triển ứng dụng nhiều lớp. Applet là chƣơng trình đồ họa chạy trên trình duyệt tại máy trạm. Ở các ứng dụng Web, máy trạm gửi yêu cầu tới máy chủ. Máy chủ xử lý và gửi kết quả trở lại máy trạm. Các Java API chạy trên máy chủ chịu trách nhiệm xử lý tại máy chủ và trả lời các yêu cầu của máy trạm. Các Java API chạy trên máy chủ này mở rộng khả năng của các ứng Cloud Page 13 Lập trình Java cơ bản 2013 dụng Java API chuẩn. Các ứng dụng trên máy chủ này đƣợc gọi là các JSP/Servlet. hoặc Applet tại máy chủ. Xử lý Form của HTML là cách sử dụng đơn giản nhất của JSP/Servlet. Chúng còn có thể đƣợc dùng để xử lý dữ liệu, thực thi các giao dịch và thƣờng đƣợc thực thi thông qua máy chủ Web. 5. Ứng dụng cơ sở dữ liệu Các ứng dụng này sử dụng JDBC API để kết nối tới cơ sở dữ liệu. Chúng có thể là Applet hay ứng dụng, nhƣng Applet bị giới hạn bởi tính bảo mật. 6. Ứng dụng mạng Java là một ngôn ngữ rất thích hợp cho việc xây dựng các ứng dụng mạng. Với thƣ viện Socket bạn có thể lập trình với hai giao thức: UDP và TCP. 7. Ứng dụng nhiều tầng Với Java bạn có thể xây dựng phân tán nhiều tầng với nhiều hỗ trợ khác nhau nhƣ: RMI, CORBA, EJB, Web Service 8. Ứng dụng cho các thiết bị di động Hiện nay phần lớn các thiết bị di động nhƣ: Điện thoại di động, máy trợ giúp cá nhân… đều hỗ trợ Java. Thế nên bạn có thể xây dựng các ứng dụng chạy trên các thiết bị di động này. Đây là một kiểu ứng dụng khá hấp dãn, bởi vì các thiết bị di động này ngày càng phổ biến và nhu cầu có các ứng dụng chạy trên đó, đặc biệt là các ứng dụng mang tính chất giải trí nhƣ game… 1.1.5 Máy ảo Java (JVM-Java Virtual Machine) Máy ảo là một phần mềm mô phỏng một máy tính thật (máy tính ảo). Nó có tập hợp các lệnh logic để xác định các hoạt động của máy tính và có một hệ điều hành ảo. Ngƣời ta có thể xem nó nhƣ một máy tính thật (máy tính có phần cứng ảo, hệ điều hành ảo). Nó thiết lập các lớp trừu tƣợng cho: Phần cứng bên dƣới, hệ điều hành, mã đã biên dịch. Trình biên dịch chuyển mã nguồn thành tập các lệnh của máy ảo mà không phụ thuộc vào phần cứng và hệ điều hành cụ thể. Trình thông dịch trên mỗi máy sẽ chuyển tập lệnh này thành chƣơng trình thực thi. Máy ảo tạo ra một môi trƣờng bên trong để thực thi các lệnh bằng cách: Cloud Page 14 Lập trình Java cơ bản 2013  Nạp các file.class  Quản lý bộ nhớ  Dọn “rác” Việc không nhất quán của phần cứng làm cho máy ảo phải sử dụng ngăn xếp để lƣu trữ các thông tin sau:  Các Frame chứa các trạng thái của các phƣơng thức.  Các toán hạng của mã bytecode.  Các tham số truyền cho phƣơng thức.  Các biến cục bộ. Khi JVM thực thi mã, một thanh ghi cục bộ có tên Program Counter đƣợc sử dụng. Thanh ghi này trỏ tới lệnh đang thực hiện. Khi cần thiết, có thể thay đổi nội dung thanh ghi để đổi hƣớng thực thi của chƣơng trình. Trong trƣờng hợp thông thƣờng thì từng lệnh một nối tiếp nhau sẽ đƣợc thực thi. Một khái niệm thông dụng khác trong Java là trình biên dịch Just In TimeJIT. Các trình duyệt thông dụng nhƣ Netscape hay IE đều có JIT bên trong để tăng tốc độ thực thi chƣơng trình Java. Mục đích chính của JIT là chuyển tập lệnh bytecode thành mã máy cụ thể cho từng loại CPU. Các lệnh này sẽ đƣợc lƣu trữ và sử dụng mỗi khi gọi đến. 1.2 NỀN TẢNG CỦA JAVA 1.2.1 Tập ký tự dùng trong java Mọi ngôn ngữ nói chung, ngôn ngữ lập trình nói riêng đều phải xây dựng trên một tập hợp chữ cái (hay còn gọi là bảng chữ cái), các kí tự đƣợc nhóm lại theo một cách nào đó để tạo thành các từ, các từ lại đƣợc nhóm lại thành các câu (trong ngôn ngữ lập trình gọi là câu lệnh), một chƣơng trình máy tính tính là một tập các câu lệnh đƣợc bố trí theo một trật tự mà ngƣời viết ra chúng sắp đặt. Ngôn ngữ java đƣợc đƣợc xây dựng trên bảng chữ cái unicode, do vậy ta có thể dùng các kí tự unicode để đặt tên cho các định danh. 1.2.2 Từ khoá của Java Mỗi ngôn ngữ lập trình có một tập các từ khoá, ngƣời lập trình phải sử Cloud Page 15 Lập trình Java cơ bản 2013 dụng từ khoá theo đúng nghĩa mà ngƣời thiết kế ngôn ngữ đã đề ra, ta không thể định nghĩa lại nghĩa của các từ khoá, nhƣ sử dụng nó để đặt tên biến, hàm.. Sau đây là một số từ khoá thƣờng gặp: Từ khóa Mô tả abstract Sử dụng để khai báo lớp, phƣơng thức trừu tƣợng boolean Kiểu dữ liệu logic break Đƣợc sử dụng để kết thúc vòng lặp hoặc cấu trúc switch byte kiểu dữ liệu số nguyên case đƣợc sử dụng trong lện switch cast Chƣa đƣợc sử dụng (để dành cho tƣơng lai) catch đƣợc sử dụng trong xử lý ngoại lệ char kiểu dữ liệu ký tự class Dùng để khai báo lớp const Chƣa đƣợc dùng continue default do double else extends Đƣợc dùng trong vòng lặp để bắt đầu một vòng lặp mới Đƣợc sử dụng trong lệnh switch Đƣợc dùng trong vòng lặp điều kiện sau Kiểu dữ liệu số thực Khả năng lựa chọn thứ hai trong câu lệnh if Chỉ rằng một lớp đựơc kế thừa từ một lớp khác false Giá trị logic final Dùng để khai báo hằng số, phƣơng thức không thể ghi đè, hoặc lớp finally float for goto if implements Cloud Phần cuối của khối xử lý ngoại lệ khôngsốthể kế thừa Kiểu thực Câu lệnh lặp Chƣa đƣợc dùng Câu lệnh lựa chọn Chỉ rằng một lớp triển khai từ một giao diện Page 16 Lập trình Java cơ bản 2013 import instanceof interface int long native Khai báo sử dụng thƣ viện Kiểm tra một đối tƣợng có phải là một thể hiện của lớp hay không Sử dụng để khai báo giao diện Kiểu dữ liệu số nguyên Kiểu số nguyên Khai báo phƣơng thức đƣợc viết bằng ngông ngữ biên dịch C++ new Tạo một đối tƣợng mới null một đối tƣợng không tồn tại package Dùng để khai báo một gói private Đặc tả truy xuất protected Đặc tả truy xuất public Đặc tả truy xuất return Quay từ phƣơng thức về chỗ gọi nó short kiểu số nguyên static Dùng để khai báo biến, thuộc tính tĩnh super Truy xuất đến lớp cha switch Lệnh lựa chọn synchronized this Một phƣơng thức độc quyền truy xuất trên một đối tƣợng Ám chỉ chính lớp đó throw Ném ra ngoại lệ throws Khai báo phƣơng thức ném ra ngoại lệ true Giá trị logic try Sử dụng để bắt ngoại lệ void Dùng để khai báo một phƣơng thức không trả về giá trị while Dùng trong cấu trúc lặp 1.2.3 Định danh (tên) trong java  Quy tắc đặt tên trong java Tên dùng để xác định duy nhất một đại lƣợng trong chƣơng trình. Trong java Cloud Page 17 Lập trình Java cơ bản 2013 tên đƣợc đặt theo quy tắc sau:  Không trùng với từ khoá.  Không bắt đầu bằng một số, tên phải bắt đầu bằng kí tự hoặc bắt đầu bằng kí tự tự đô la „$‟ hay dấu gạch dƣới „_‟.  Không chứa dấu cách, các kí tự toán học nhƣ +, -, *,/, %...  Không trùng với một định danh khác trong cùng một phạm vi. Chú ý:  Tên nên đặt sao cho có thể mô tả đƣợc đối tƣợng trong thực tế  Giống nhƣ C/C++, java có phân biệt chữ hoa chữ thƣờng  Trong java ta có thể đặt tên với độ dài tuỳ ý  Ta có thể sử dụng các kí tự tiếng việt để đặt tên  Quy ƣớc đặt tên trong java Ta nên đặt tên biến, hằng, lớp, phƣơng thức sao cho nghĩa của chúng rõ ràng, dễ hiểu, khoa học và mang tính ƣớc lệ quốc tế. Do java có phân biệt chữ hoa, chữ thƣờng nên ta phải cẩn thận và chú ý. Sau đây là quy ƣớc đặt tên trong java (chú ý đây chỉ là quy ƣớc do vậy không bắt buộc phải tuân theo quy ƣớc này):  Đối với biến và phƣơng thức thì tên bao giờ cũng bắt đầu bằng ký tự thƣờng, nếu tên có nhiều từ thì ghép lại thì: ghép tất cả các từ thành một, ghi từ đầu tiên chữ thƣờng, viết hoa kí tự đầu tiên của mỗi từ theo sau trong tên, ví dụ area, radius, readInteger…  Đối với tên lớp, giao diện ta viết hoa các kí tự đầu tiên của mỗi từ trong tên, ví dụ lớp WhileTest, Circle...  Tên hằng bao giờ cũng viết hoa, nếu tên gồm nhiều từ thì chúng đƣợc nối với nhau bởi kí tự ghạch dƣới „_‟, ví dụ PI, MAX_VALUE,... 1.2.4 Cấu trúc một chƣơng trình java  Mỗi ứng dụng Java bao gồm một hoặc nhiều đơn vị biên dịch (mỗi đơn vị biên dịch là một tệp tin có phần mở rộng Java)  Mỗi đơn vị biên dịch bao gồm một hoặc nhiều lớp  Mỗi ứng dụng độc lập phải có duy nhất một phƣơng thức main (điểm bắt Cloud Page 18 Lập trình Java cơ bản 2013 đầu của ứng dụng)  Mỗi đơn vị biên dịch có nhiều nhất một lớp đƣợc khai báo là public, nếu nhƣ trong đơn vị biên dịch có lớp public thì tên của đơn vị biên dịch phải trùng với tên của lớp public (giống hệt nhau cả ký tự hoa lẫn ký tự thƣờng)  Bên trong thân của mối lớp ta khai báo các thuộc tính, phƣơng thức của lớp đó, Java là ngôn ngữ hƣớng đối tƣợng, do vậy mã lệnh phải nằm trong lớp nào đó. Mỗi lệnh đều đƣợc kết thúc bằng dấu chấm phảy “;”. Trong ngôn ngữ Java, lớp là một đơn vị mẫu có chứa dữ liệu và mã lệnh liên quan đến một thực thể nào đó. Khi xây dựng một lớp, thực chất bạn đang tạo ra một một kiểu dữ liệu. Kiểu dữ liệu mới này đƣợc sử dụng để xác định các biến mà ta thƣơng gọi là đối tƣợng. Đối tƣợng là các thể hiện (instance) của lớp. Tất cả các đối tƣợng đều thuộc về một lớp có chung đặc tính và hành vi. Mỗi lớp xác định một thực thể, trong khi đó mỗi đối tƣợng là một thể hiện thực sự. Khi bạn khai báo một lớp, bạn cần xác định dữ liệu và các phƣơng thức của lớp đó. Về cơ bản một lớp đƣợc khai báo nhƣ sau: Cú pháp: class classname{ var_datatype variablename; : met_datatype methodname(parameter_list) : } Trong đó: class - Từ khoá xác định lớp classname - Tên của lớp var_datatype - kiểu dữ liệu của biến variablename - Tên của biến met_datatype - Kiểu dữ liệu trả về của phương thức methodname - Tên của phương thức parameter_list – Các tham số được của phương thức Bạn còn có thể định nghĩa một lớp bên trong một lớp khác. Đây là lớp xếp lồng Cloud Page 19 Lập trình Java cơ bản 2013 nhau, các thể hiện (instance) của lớp này tồn tại bên trong thể hiện của một lớp che phủ chúng. Nó chi phối việc truy nhập đến các thành phần của lớp bao phủ chúng. Có hai loại lớp trong đó là lớp trong tĩnh static và lớp trong không tĩnh non static:  Lớp trong tĩnh (static): Lớp trong tĩnh đƣợc định nghĩa với từ khoá static. Lớp trong tĩnh có thể truy nhập vào các thành phần tĩnh của lớp phủ nó.  Lớp trong không tĩnh (non static): Lớp bên trong (không phải là lớp trong tĩnh) có thể truy nhập tất cả các thành phần của lớp bao nó, song không thể ngƣợc lại. 1.2.5 Chƣơng trình JAVA đầu tiên Để có thể biên dịch và chạy các chƣơng trình java ta phải cài  JRE (Java Runtime Enviroment) môi trƣờng thực thi của java, nó bao gồm: JVM (Java Virtual Machine) máy ảo java vì các chƣơng trình java đƣợc thông dịch và chạy trên máy ảo java và tập các thƣ viện cần thiết để chạy các ứng dụng java.  Bộ công cụ biên dịch và thông dịch JDK của Sun Microsystem (nay là Oracle) Sau khi cài đặt JDK (giả sử thƣ mục cài đặt là C:\JDK1.4) ta sẽ nhận đƣợc một cấu trúc thƣ mục nhƣ sau:  Để biên dịch một chƣơng trình java sang mã bytecode ta dùng lệnh javac: javac TênTệp.java  Để thông dịch và chạy chƣơng trình ta sử dụng lệnh java: java TênTệp Cloud Page 20
- Xem thêm -