Lập trình Java - 2

DANH MỤC CÁC HÌNH VẼ

Hình 1.1. Cách biên dịch truyền thống 3

Hình 1.2. Dịch chương trình Java 3

Hình 1.3. Trang web tải bộ công cụ Java 12

Hình 1.4. Biểu tượng Java Download 12

Hình 1.5. Lựa chọn bản quyền 12

Hình 1.6. Bộ JDK cho Windows bản 64 bit 12

Hình 1.7. Màn hình cài đặt đầu tiên 13

Hình 1.8. Màn hình Custom Setup 13

Hình 1.9. Màn hình Description Folder 13

Có thể bạn quan tâm!

Xem toàn bộ 267 trang tài liệu này.

Hình 1.10. Màn hình Description Folder 14

Hình 1.11. Đường dẫn của thư mục cài đặt Java 14

Hình 1.12. Màn hình Computer Properties 15

Hình 1.13. Màn hình System Properties 15

Hình 1.14. Màn hình Environment Variables 16

Hình 1.15. Màn hình Edit System Variable 16

Hình 1.16. Màn hình cửa sổ run 16

Hình 1.17. Màn hình Command Prompt 16

Hình 3.1. Minh họa khái niệm của String Pool 101

Hình 3.2. Kết quả chạy ví dụ 3.22 112

Hình 3.3. Kết quả chạy ví dụ 3.23 114

Hình 3.4. Kết quả chạy ví dụ 3.25 119

Hình 3.5. Kết quả chạy ví dụ 3.26 121

Hình 3.6. Kết quả chạy ví dụ 3.27 125

Hình 3.7. Kết quả chạy ví dụ 3.28 127

Hình 3.8. Kết quả chạy ví dụ 3.29 128

Hình 3.9. Kết quả chạy ví dụ 3.30 132

Hình 4.1. Hệ thống cây phân cấp lớp AWT 137

Hình 4.2. Kết quả chạy ví dụ 4.1 138

Hình 4.3. Kết quả chạy ví dụ 4.2 139

Hình 4.4. Các lớp thành phần 140

Hình 4.5. Kết quả chạy ví dụ 4.3 142

Hình 4.6. Kết quả chạy ví dụ 4.4 143

Hình 4.7. Kết quả chạy ví dụ 4.5 145

Hình 4.8. Kết quả chạy ví dụ 4.6 147

Hình 4.9. Kết quả chạy ví dụ 4.7 149

Hình 4.10. Kết quả chạy ví dụ 4.8 151

Hình 4.11. Kết quả chạy ví dụ 4.9 153

Hình 4.12. BorderLayout 154

Hình 4.13. Kết quả chạy ví dụ 4.10 156

Hình 4.14. Kết quả chạy ví dụ 4.10 158

Hình 4.15. Kết quả chạy ví dụ 4.12 162

Hình 4.16. Kết quả chạy ví dụ 4.13 167

Hình 4.17. Gói Event 167

Hình 4.18. Event Listener 168

Hình 4.19. Action Listener 168

Hình 4.20. Item Listener 168

Hình 4.21. Window Listener 169

Hình 4.22. Các Component 169

Hình 4.23. Kết quả chạy ví dụ 4.14 172

Hình 4.24. Pop-up menu 173

Hình 5.1. Kết quả chạy ví dụ 5.1 178

Hình 5.2. Chu trình sống của một applet 178

Hình 5.3. Kết quả chạy ví dụ 5.2 180

Hình 5.4. Kết quả chạy ví dụ 5.3 184

Hình 5.5. Kết quả chạy ví dụ 5.4 188

Hình 5.6. Kết quả chạy ví dụ 5.5 189

Hình 5.7. Kết quả chạy ví dụ 5.6 194

Hình 5.8. Kết quả chạy ví dụ 5.7 196

Hình 5.9. Kết quả chạy ví dụ 5.8 198

Hình 6.1. Kết quả thực hiện ví dụ 6.2 227

Hình 6.2. Vòng đời của luồng 228

Hình 6.3. Kết quả chạy ví dụ 6.3 231

Hình 6.4. Kết quả chạy ví dụ 6.4 233

Hình 6.5. Kết quả chạy ví dụ 6.5 237

Hình 6.6. Kết quả hiển thị của ví dụ 6.5 không có sự đồng bộ 237

Hình 6. 7. Kết quả sau mỗi lần kích chuột 243

Hình 6.8. Kết quả thực hiện ví dụ 6.8 246

Hình 6. 9. Kết quả chạy ví dụ 6.9 249

CHƯƠNG 1: LẬP TRÌNH JAVA CƠ BẢN

1.1. Giới thiệu về Java và cài đặt

1.1.1. Lịch sử Java

Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) doSun Microsystem đưa ra vào giữa thập niên 90.

Chương trình viết bằng ngôn ngữ lập trình Java có thể chạytrên bất kỳ hệ thống nào có cài máy ảo Java (Java VirtualMachine).

Ngôn ngữ lập trình Java do James Gosling và các công sựcủa Công ty Sun Microsystem phát triển.

Đầu thập niên 90, Sun Microsystem tập hợp các nhà nghiêncứu thành lập nên nhóm đặt tên là Green Team. Nhóm GreenTeam có trách nhiệm xây dựng công nghệ mới cho ngành điệntử tiêu dùng. Để giải quyết vấn đề này nhóm nghiên cứu pháttriển đã xây dựng một ngôn ngữ lập trình mới đặt tên là Oaktương tự như C++ nhưng loại bỏ một số tính năng nguy hiểmcủa C++ và có khả năng chạy trên nhiều nền phần cứng khácnhau. Cùng lúc đó WorldWide Web bắt đầu phát triển và Sun đãthấy được tiềm năng của ngôn ngữ Oak nên đã đầu tư cải tiếnvà phát triển. Sau đó không lâu ngôn ngữ mới với tên gọi làJava ra đời và được giới thiệu năm 1995.

Đến quý II năm 1995, Sun Microsystems công bố chính thức Java và nó trở thành một công cụ mạnh mẽ cho việc phát triển các ứng dụng trên Internet.

Java được xây dựng chủ yếu trong bộ công cụ phát triển JDK (Java Development Kit) nó gồm các trình biên dịch, thông dịch, giúp đỡ, soạn tài liệu, thư viện chuẩn… sau đó các nhà phát triển phần mềm đã xây dựng thêm rất nhiều nhánh mới như Java Mail (Java-Thư tín), Java TAPI (Java-Viễn thông)…

Bắt đầu với JDK 1.0 vào 1995, đến năm 1996 Sun đưa ra phiên bản JDK 1.1, năm 1998 ra đời phiên bản JDK 1.2 và hiện nay đã có phiên bản JDK 1.7.

Java là tên gọi của một hòn đảo ở Indonexia, Đây là nơinhóm nghiên cứu phát triển đã chọn để đặt tên cho ngôn ngữlập trình Java trong một chuyến đi tham quan và làm việc trênhòn đảo này. Hòn đảo Java này là nơi rất nổi tiếng với nhiềukhu vườn trồng cafe, đó chính là lý do chúng ta thường thấybiểu tượng ly cafe trong nhiều sản phẩm phần mềm, công cụ lậptrình Java của Sun cũng như một số hãng phần mềm khác đưara.

1.1.2. Đặc trưng của Java

Đơn giản

Hướng đối tượng

Độc lập phần cứng và hệ điều hành

Mạnh

Bảo mật

Phân tán

Đa luồng

Động

a) Đơ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. Do vậy Java loại bỏ các đặc trưng phức tạp 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.

b) Hướng đối tượng

Java được thiết kế xoay quanh mô hình hướng đối tượng. Vì vậy trong Java, tiêu điểm là dữ liệu và các phương pháp thao tác lên dữ liệu đó. Dữ liệu và các phương pháp mô tả trạng thái và cách ứng xử của một đối tượng trong Java.

c) Độ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. Chúng được thể hiện ở mức mã nguồn và mức nhị phân.

Ở mức mã nguồn, người lập trình cần mô tả kiểu cho mỗi biến. Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau. Java có riêng một thư viện các lớp cơ sở. Vì vậy chương trình Java được viết trên một máy có thể dịch và chạy trơn tru trên các loại máy khác mà không cần viết lại.

Tính độc lập ở mức nhị phân, một chương trình đã biên dịch có thể chạy trên nhiều nền (phần cứng, hệ điều hành) khác mà không cần dịch lại mã nguồn. Tuy vậy cần có phần mềm máy ảo Java (sẽ đề cập đến ở phần sau) hoạt động như một trình thông dịch tại máy thực thi.


Hình 1 1 Cách biên dịch truyền thống Đối với các chương trình viết bằng C 1


Hình 1.1. Cách biên dịch truyền thống

Đố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. Hình 1.2 thể hiện quá trình để thực thi chương trình viết bằng C++ trên các loại máy khác nhau.

Hình 1.2 Quá trình thực thi chương trình viết bằng Java trên các loại máy khác nhau.


Hình 1 2 Dịch chương trình Java Môi trường phát triển của Java được chia làm 2

Hình 1.2. Dịch chương trình Java


Môi trường phát triển của Java được chia làm hai phần: Trình biên dịch và trình thông dịch. Không như C hay C++, trình biên dịch của Java chuyển mã nguồn thành dạng bytecode độc lập với phần cứng mà có thể chạy trên bất kỳ CPU nào.

Nhưng để thực thi chương trình dưới dạng bytecode, tại mỗi máy cần phải có trình thông dịch của Java hay còn gọi là máy ảo Java. Máy ảo Java chuyển bytecode thành mã lệnh mà CPU thực thi được.

d) Mạnh mẽ

Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu. Phải khai báo kiểu dữ liệu tường minh khi viết chương trình. 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 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. Java kiểm tra sự chuyển đổi kiểu dữ liệu từ dạng này sang dạng khác lúc thực thi.

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ớ. Quá 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 quá trình xử lý lỗi và hồi phục sau lỗi.

e) Bảo mật

Viruses là nguyên nhân gây ra sự lo lắng trong việc sử dụng máy tính. Trước khi có Java, các lập trình viên phải quétVirus các tệp trước khi tải về hay thực hiện chúng. Thông thường việc này cũng không loại trừ hoàn toàn Virus. Ngoài ra chương trình khi thực thi có khả năng tìm kiếm và đọc các thông tin nhạy cảm trên máy của người sử dụng mà người sử dụng không hề hay biết.

Java cung cấp một môi trường quản lý thực thi chương trình. Nó cho rằng không có một đoạn mã nào là an toàn cả. Vì vậy Java không chỉ là ngôn ngữ lập trình thuần tuý mà còn cung cấp nhiều mức để kiểm soát tính an toàn khi thực thi chương trình.

Ở lớp đầu tiên, dữ liệu và các phương thức được đóng gói bên trong lớp. Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp. Java không hỗ trợ con trỏ vì vậy không cho phép truy xuất bộ nhớ trực tiếp. Nó cũng ngăn chặn không cho truy xuất thông tin bên ngoài kích thước của mảng bằng kỹ thuật tràn và cũng cung cấp kỹ thuật dọn rác trong bộ nhớ. Các đặc trưng này tạo cho Java an toàn tối đa và có khả năng cơ động cao.

Trong lớp thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo các nguyên tắc của Java.

Lớp thứ ba được đảm bảo bởi trình thông dịch. Chúng kiểm tra xem bytecode có đảm bảo các qui tắc an toàn trước khi thực thi.

Lớp thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống.

f) Phân tán

Java có thể dùng để xây dựng các ứng dụng có thể làm việc trên nhiều phần cứng, hệ điều hành và giao diện đồ họa. Java được thiết kế hỗ trợ cho các ứng dụng chạy trên mạng. Vì vậy chúng được sử dụng rộng rãi như là công cụ phát triển trên Internet, nơi sử dụng nhiều nền tảng khác nhau.

g) Đa luồng

Chương trình Java đa luồng(Multithreading) để thực thi các công việc đồng thời. Chúng cũng cung cấp giải pháp đồng bộ giữa các luồng. Đặc tính hỗ trợ đa luồngnày cho phép xây dựng các ứng dụng trên mạng chạy hiệu quả.

h) Động

Java được thiết kế như một ngôn ngữ động để đáp ứng cho những môi trường mở. Các chương trình Java chứa rất nhiều thông tin thực thi nhằm kiểm soát và truy nhập đối tượng lúc chạy. Điều này cho phép khả năng liên kết động mã.

1.1.3. Các kiểu chương trình Java

Chúng ta có thể xây dựng các loại chương trình Java như sau:

a) Applets

Applet là chương trình đượ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. Bạn có thể dùng Java để xây dựng Applet. 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.

b) Ứng dụng thực thi qua dòng lệnh

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.

c) Ứ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.

d) 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 dụng Java API chuẩn. Các ứng dụng trên máy chủ này được gọi là các 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 Servlet. Chúng còn có thể được

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 15/07/2022