Các phương pháp hướng đối tượng, đặc biệt là lập trình hướng đối tượng được xây dựng dựa trên nhiều khái niệm mới và được hỗ trợ bởi nhiều công cụ, ngôn ngữ lập trình ([2], [8]) rất mạnh giúp cho việc tạo ra những phần mềm ứng dụng có chất lượng cao, ngày càng đáp ứng tốt hơn yêu cầu của người sử dụng.
Ngôn ngữ Java do găng Sun (http://java.sun.com) phát triển từ đầu những năm 90 đã trở thành ngôn ngữ lập trình hướng đối tượng rất được ưa chuộng trong những năm gần đây nhờ một số đặc điểm hết sức thích hợp với mạng Internet, hiện đã và đang được dùng phổ biến trên toàn thế giới nhằm đáp ứng các yêu cầu phát triển các ứng dụng trên mạng phục vụ cho nhiều người sử dụng với những môi trường thực hiện phần mềm khác nhau, Java là một ngôn ngữ lập trình hoàn chỉnh được thiết kế theo cách tiếp cận hướng đối tượng và kế thừa, sử dụng lại có nâng cấp của những ngôn ngữ lập trình trước nó.
Về mặt cú pháp, Java rất giống với C*, một ngôn ngữ lập trình hướng đối tượng dùng phổ biến nhất hiện nay, nhưng loại đi một số tính khả dụng (facilities) quá mạnh nhưng khó và ít dùng, hoặc thừa về mặt ngôn ngữ [1] như: loại bỏ kế thừa nhiều lớp, vì chúng có thể tạo ra những lược đồ dữ liệu dạng đồ thị và là nguyên nhân chính có thể gây ra sự phức tạp và không đảm bảo tính nhất quán, tính đúng đắn trong quan hệ thông tin ([10], [11]); Java không cho phép thao tác số học trên kiểu con trỏ vì đây là nguồn gốc của những “con bọ” rất khó phát hiện ra khi biên dịch, v.v… Mục đích chính của Java là: đơn giản, thân thiện, hướng đối tượng và cách tân nhằm tạo ra những phần mềm ứng dụng độc lập với môi trường sử dụng ([7]. [8]).
Cuốn sách này giới thiệu về lập trình hướng đối tượng sử dụng ngôn ngữ lập trình Java. Nội dung chính của cuốn sách được trình bày trong mười chương.
Chương I trình bày khái quát cách tiếp cận hướng chức năng và lập trình hướng đối tượng. Ngôn ngữ mô hình hóa hệ thống UML [2] được sử dụng để đặc tả các khái niệm cơ bản của lập trình hướng đối tượng. Chương II giới thiệu chu trình phát triển của các chương trình Java, quá trình dịch, thông dịch với JVM (Java Virtual Machine) và các thể loại chương trình ứng dụng, nhất là ứng dụng nhúng (applet) của Java. Chương III và chương IV trình bày những khái niệm cơ sở nhất của một ngôn ngữ lập trình và nêu cách xây dựng, tổ chức lớp các đối tượng trong các chương trình ứng dụng. Các lệnh điều khiển dòng thực hiện chương trình, đặc biệt là cơ chế xử lý ngoại lệ hỗ trợ để tạo ra những chương trình hoạt động tốt trong mọi tình huống, thích ứng được với mọi điều kiện trên cơ sở kiểm soát được các lỗi, các tình huống có thể xảy ra, được giới thiệu chi tiết ở chương V. Chương VI đề cập đến một số lớp cơ sở nhất của Java và các kiểu cấu trúc dữ liệu phổ dụng như kiểu tuyển tập (Collection), kiểu tập hợp (Set), kiểu danh sách (List), v.v. Vấn đề phát triển những ứng dụng applet và sử dụng giao diện đồ họa của Windows (AWT) dưới dạng các trang Web với nhiều ví dụ minh họa được giới thiệu ở chương VII. Chương VIII giới thiệu các lớp xử lý các luồng dữ liệu vào/ra chuẩn và những vấn đề có tổ chức, đọc, ghi lên các loại tệp dữ liệu. Chương IX trình bày vấn đề kết nối các cơ sở dữ liệu với JDBC nhằm tạo ra những hệ thống phần mềm tích hợp từ nhiều loại hệ thống thông tin khác nhau trên mạng. Lần tái bản này được bổ sung thêm chương X giới thiệu các thành phần của Swing, cho phép tạo ra những phần mềm mà bạn “thấy và cảm nhận được”. Trong các chương có nhiều ví dụ là những chương trình hoàn chỉnh, minh họa cho cách sử dụng những khái niệm đã nêu ở trên.
Cuốn sách được biên soạn dựa trên kinh nghiệm giảng dạy giáo trình phân tích, thiết kế và lập trình hướng đối tượng của tác giả trong nhiều năm tại các khóa cao học, đại học của ĐH Quốc Gia Hà Nội, ĐH Bách Khoa Hà Nội, ĐH Khoa Học Huế, v.v. Cuốn sách có thể dùng làm giáo trình học tập, tài liệu tham khảo cho sinh viên các hệ kỹ sư, cử nhân, học viên cao học CNTT và các bạn quan tâm đến vấn đề lập trình hướng đối tượng để phát triển những ứng dụng độc lập với môi trường, hay để xây dựng các Web Site trên mạng.
Tác giả bày tỏ lòng biết ơn chân thành tới các bạn đồng nghiệp trong Phòng các Hệ thống phần mềm tích hợp, đặc biệt cám ơn TS. Đặng Thành Phu, Viện Công nghệ Thông tin, TT KHTN & CNQG, PTS.TS. Đỗ Đức Giáo, Khoa Công nghệ, ĐH QG HN đã động viên, góp ý và giúp đỡ để hoàn chỉnh nội dung cuốn sách này. Xin cảm ơn Nhà xuất bản Khoa học và Kỹ thuật đã hỗ trợ và tạo điều kiện để cuốn sách được tái bån.
Mặc dù rất cố gắng nhưng tài liệu này chắc chắn không tránh khỏi những sai sót. Chúng tôi rất mong nhận được các ý kiến đóng góp của bạn đọc để có chỉnh lý kịp thời.
Thư góp ý xin gửi về: Nhà xuất bản Khoa học và Kỹ thuật 70 Trần Hưng Đạo Hà Nội.
Hà Nội, tháng 5 năm 2005
Tác giả