NỘI DUNGChương 1: Giới thiệu Java Chương 2: Ngôn ngữ Java Chương 3: Java applet Chương 4: Lập trình giao diện Chương 5: Đối tượng đồ họa Chương 6: Bảo mật trong java Chương 7: Khai triển
Trang 1Người biên soạn: Hồ Quang Thái (MSCB: 2299)
BM Công Nghệ Phần Mềm, Khoa CNTT&TT
Email: hqthai@cit.ctu.edu.vn
Số tín chỉ: 2 (20 LT + 20TH)
Trang 3KHÓ HAY DỄ ?
Trang 4Java khó hay dễ ?
thế giới bởi tính dễ học và dễ dùng (?!)
triển được Nhưng các IDE của Java chậm phát triển hơn các đối thủ khác.
to hơn về phần lõi thư viện Tuy nhiên, nó vẫn nhỏ hơn nhiều so với các ngôn ngữ khác.
Trang 5dụng chạy trên điện thoại di động và các thiết bị nhúng: điện thoại di động, smartphone, TV, và máy in.
ứng dụng doanh nghiệp.
Trang 6HỆ THỐNG JAVA
trợ giao dịch một các đầy đủ, an toàn, dễ sử dụng, dựa trên tiêu chuẩn của SQL, JDBC API và Java EE, dung lượng chưa bao giờ nhỏ hơn, chỉ 2,5 MB.
thiết bị khác với bộ nhớ rất hạn chế và khả năng xử lý Java Card cũng bao gồm một tập hợp các công cụ duy nhất cho phát triển sản phẩm mới.
ra các ứng dụng như video-on-Demand (VOD), trò chơi và ứng dụng giáo dục, các ứng dụng để truy cập dữ liệu Internet và trên hầu hết các danh hiệu đĩa Blu-ray.
Trang 7NỘI DUNG
Chương 1: Giới thiệu Java
Chương 2: Ngôn ngữ Java
Chương 3: Java applet
Chương 4: Lập trình giao diện
Chương 5: Đối tượng đồ họa
Chương 6: Bảo mật trong java
Chương 7: Khai triển ứng dụng
Chương 8: Xử lý luồng và tập tin
Chương 9: Lập trình với JFC
Chương 10: Làm việc với CSDL
Chương 11: Lập trình Java trên mạng
Chương 12: JavaServer Pages (JSP)
Trang 8TÀI LIỆU THAM KHẢO
1 Giáo trình lý thuyết và bài tập Java – Trần Tiến Dũng – Nhà xuất bản
Giáo dục - 1999.
2 Tự học ngôn ngữ lập trình Java – Đỗ Quang Thái – Nhà xuất bản
Thống kê – 2000.
Trang 9HÌNH THỨC ĐÁNH GIÁ
Trang 10CHƯƠNG 1
GIỚI THIỆU JAVA
Trang 11NỘI DUNG
• Lịch sử của Java
• Đặc điểm của Java
• Java Virtual Machine (JVM)
• Các loại chương trình Java
• Chương trình Java đầu tiên
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 12LỊCH SỬ CỦA JAVA
• Java được khởi đầu bởi James Gosling và bạn đồng
nghiệp ở Sun Microsystems vào 8/1991 dùng cho các mặt hàng thiết bị dân dụng.
• Ban đầu ngôn ngữ này có tên là Oak (Cây sồi) và được đổi tên thành Java vào 1/1995 do có sự trùng tên.
• Ngày 23/5/1995, Java được Sun chính thức công bố ở Sun World’95.
• Java là tên gọi của một hòn đảo ở Indonexia, đây là nơi
nhóm nghiên cứu phát triển tham quan và làm việc Hòn đảo Java này là nơi rất nổi tiếng với nhiều khu vườn trồng
cà phê.
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 13ĐẶC ĐIỂM CỦA JAVA
• Java được xây dựng dựa trên nền tảng của C và C++ nghĩa là Java sử dụng cú
pháp của C và đặc trưng hướng đối tượng của C++.
• Java là ngôn ngữ vừa biên dịch vừa thông dịch
trên từng loại máy nhờ trình thông dịch.
• 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 các nền phần cứng khác nhau
cục bộ hay trên mạng mà còn để xây dựng các trình điều khiển thiết bị di động, PDA, …
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 14ĐẶC ĐIỂM CỦA JAVA
Ngôn ngữ Java có những đặc trưng cơ bản sau:
Trang 15ĐẶC ĐIỂM CỦA JAVA
• Đơn giản (Simple): 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ư:
Loại bỏ thao tác con trỏ, thao tác định nghĩa chồng toán tử (operator overloading)…
Không cho phéps đa kế thừa (Multi-inheritance) mà sử dụng các giao diện (interface)
Không sử dụng lệnh “goto” cũng như file header (.h).
Loại bỏ cấu trúc “struct” và “union”.
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 16ĐẶC ĐIỂM CỦA JAVA
• Hướng đối tượng (Object Oriented): Java là ngôn ngữ lập trình hoàn toàn hướng đối tượng:
Mọi thực thể trong hệ thống đều được coi là một đối tượng, tức là một thể hiện cụ thể của một lớp xác định
Tất cả các chương trình đều phải nằm trong một class nhất định
Không thể dùng Java để viết một chức năng mà không thuộc vào bất kì một lớp nào Tức
là Java không cho phép định nghĩa dữ liệu và hàm tự do trong chương trình
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 17ĐẶC ĐIỂM CỦA JAVA
• Độc lập phần cứng và hệ điều hành (architecture-neutral and portable): Với C/C++: Với mỗi một
nền phần cứng khác nhau, có một trình biên dịch khác nhau để biên dịch mã nguồn chương trình cho phù hợp với nền phần cứng ấy Do vậy, khi chạy trên một nền phần cứng khác, bắt buộc phải biên dịch lại mã nguồn
• Đối với các chương trình viết bằng Java, trình biên dịch Javac sẽ biên dịch mã nguồn thành dạng bytecode Sau đó, khi chạy chương trình trên các nền phần cứng khác nhau, máy ảo Java dùng trình thông dịch Java để chuyển mã bytecode thành dạng chạy được trên các nền phần cứng tương ứng
Do vậy, khi thay đổi nền phần cứng, không phải biên dịch lại mã nguồn Java
Trang 18MÁY ẢO JAVA
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 19MÁY ẢO JAVA
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 20ĐẶC ĐIỂM CỦA JAVA
• Mạnh mẽ (Ronust): Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu:
Kiểu dữ liệu phải được khai báo tường minh
Java không sử dụng con trỏ và các phép toán con trỏ
Java kiểm tra việ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 mảng
Quá trình cấp phát, giải phóng bộ nhớ cho biến đượ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
Trang 21ĐẶC ĐIỂM CỦA JAVA
• Bảo mật (Security): Java cung cấp một môi trường quản lý thực thi chương trình với nhiều mức để kiểm soát tính an toàn:
– Ở mức thứ nhất, 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
– Ở mức 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
– Mức 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
– Mức 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
Trang 22ĐẶC ĐIỂM CỦA JAVA
• Phân tán (Distributed): Java được thiết kế để hỗ trợ các ứng dụng chạy trên mạng bằng các lớp Mạng (java.net)
• Java hỗ trợ nhiều nền chạy khác nhau nên 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 khác nhau
Ví dụ: Lớp URL của Java có thể dễ dàng truy xuất từ chủ ở xa, nó có thể mở cổng hoặc truy cập đến các đối tượng khác thông qua mạng.
• Được trang bị các lớp cho việc thiết lập kết nối socket (dạng ổ cắm), nghĩa là chỉ cần cắm vào hay kết nối là có thể chạy như trên cùng một máy
Trang 23ĐẶC ĐIỂM CỦA JAVA
• Đa luồng (Multithreading): Chương trình Java cung cấp giải pháp đa luồng để thực thi các công việc cùng đồng thời và đồng bộ giữa các luồng
• Linh động (Flexible): 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 Trong khi chạy, môi trường Java có thể tự động mở rộng liên kết đến các lớp mới ở một máy chủ ở xa trên mạng (hay trên Internet) Đó chính là thuận lợi to lớn của Java so với C/C++
Trang 24CÁC LOẠI CHƯƠNG TRÌNH CỦA JAVA
• Applets: Chương trình được dùng
với internet, thường được nhúng
vào các trang web.
• Các file java sau khi được biên
dịch sẽ được nhúng trực tiếp vào
trang web.
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 25CÁC LOẠI CHƯƠNG TRÌNH CỦA JAVA
• Ứng dụng dòng lệnh: Chương
trình Java chạy dưới dấu nhắc
lệnh và không có giao diện đồ
họa.
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 26CÁC LOẠI CHƯƠNG TRÌNH CỦA JAVA
• Servlets: Coi như là các applet
chạy phía máy chủ, không có
Trang 27CÁC LOẠI CHƯƠNG TRÌNH CỦA JAVA
• Ứng dụng GUI Applications : ứng dụng đơn có giao diện đồ họa (Graphical User Interface)
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 28CÁC LOẠI CHƯƠNG TRÌNH CỦA JAVA
• Packages: Thư viện các lớp java Người lập trình có thể tạo các gói cho riêng mình cũng
như sử dụng các gói có sẵn
Chuyên đề ngôn ngữ lập trình 2 - Java
JAR
Trang 29Java Development Kit (JDK)
• Là các công cụ được dùng để biên dịch, thực thi các applets hay applications.
• Có nhiều công cụ dòng lệnh
o javac , java , appletviewer
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 30Cài đặt JDK
• Sau khi tải về gói JDK Các bạn tiến hành cài đặt như bình thường Sau đó đặt biến môi trường PATH trong phần thiết lập.
Trang 31Một số công cụ dòng lệnh…
• javac: biên dịch chương trình nguồn Java thành dạng byte-code
Cú pháp: javac [option] source
Tên tập tin nguồn phải có phần mở rộng java
Options:
• -classpath: Định đường dẫn người dùng tự đặt
• -sourcepath: Chỉ định đường dẫn của file nguồn
• -d: Chỉ định nơi để tạo ra file class
• -g: Tạo thêm các thông tin về sửa lỗi
• -verbose: Xuất thêm nhiều thông tin hơn
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 32Một số công cụ dòng lệnh…
• java: thông dịch byte-code để thực thi
java [option] classname [arguments]
option:
• -classpath: Chỉ định đường dẫn của lớp
• -Dname name: Truyền giá trị tham số ngoài vào
• -help: Hiển thị các thông tin giúp đỡ
• -v hoặc –verbose: Sản sinh ra các thông tin về chương trình
• -X: Các tùy chọn khác khi chạy chương trình
Chuyên đề ngôn ngữ lập trình 2 - Java
Trang 33Chương trình “Hello World”
Chuyên đề ngôn ngữ lập trình 2 - Java
1 // Tên file : HelloWorld.java
2 /* Dòng ghi chú */
3
4 public class HelloWorld
5 {
6 // Chương trình thực thi từ phương thức main
7 public static void main(String args[])
6 // Chương trình thực thi từ phương thức main
7 public static void main(String args[])
Trang 34Phân tích chương trình đầu tiên
Chuyên đề ngôn ngữ lập trình 2 - Java
1 // Tên file : HelloWorld.java
2 package vidu.chuong1;
3
4 public class HelloWorld
5 {
6 // Chương trình thực thi từ phương thức main
7 public static void main(String args[])
6 // Chương trình thực thi từ phương thức main
7 public static void main(String args[])
Chương trình được sửa lại như sau:
• Biên dịch chương trình: javac vidu/chuong1/HelloWorld.java
• Thực thi chương trình: java vidu.chuong1.HelloWorld
Trang 35Phân tích chương trình đầu tiên
Chuyên đề ngôn ngữ lập trình 2 - Java
1 // Tên file : HelloWorld.java
2 package vidu.chuong1
3
4 public class HelloWorld
5 {
6 // Chương trình thực thi từ phương thức main
7 public static void main(String args[])
6 // Chương trình thực thi từ phương thức main
7 public static void main(String args[])
• Biên dịch chương trình: javac vidu/chuong1/HelloWorld.java
• Thực thi chương trình:
java vidu.chuong1.HelloWorld 123 B15 ACB
Trang 36Phân tích chương trình đầu tiên
Chuyên đề ngôn ngữ lập trình 2 - Java
• Từ khoá public là một chỉ định truy xuất Nó cho biết thành viên của lớp có thể được truy xuất từ bất cứ đâu trong chương trình
• Từ khoá static cho phép main được gọi tới mà không cần tạo ra một thể hiện (instance) của lớp Nó không phụ thuộc vào các thể hiện của lớp được tạo ra
• Từ khoá void thông báo cho máy tính biết rằng phương thức sẽ không trả lại bất cứ giá trị nào khi thực thi chương trình
phương thức được thực hiện với các dữ liệu rỗng – không có gì trong dấu ngoặc đơn
Trang 37HẾT CHƯƠNG