LỜI NÓI ĐẦU
Hiện nay có nhiều ngôn ngữ lập trình được sử dụng để viết các ứng dụng trên máy tính như: C++, C#, VB, VB.Net…. Mỗi ngôn ngữ đều có một thế mạnh riêng, nếu biết lựa chọn một ngôn ngữ phù hợp để xây dựng ứng dụng sẽ giúp cho các chuyên gia lập trình tích kiệm được thời gian, công sức và giúp xử lý kỹ thuật lập trình đơn giản và thuận tiện hơn.
Java là ngôn ngữ lập trình hướng đối tượng thuần túy với nhiều đặc trưng ưu việt so với các ngôn ngữ lập trình hướng đối tượng khác như tính độc lập với nên, Tính Đa nhiệm - đa luồng tính bảo mật, khả năng đóng gói, giao tiếp….
Khác với các ngôn ngữ lập trình hướng đối tượng khác như c++ hay c# là ngay từ khi ra đời mục tiêu của java là phát triển một ngôn ngữ đơn giản, nhỏ nhẹ và có thể chạy trên nhiều môi trường khác nhau, do đó Java đặc biệt thích hợp để viết chương trình cho các ứng dụng trên mạng, trên các thiết bị di động, …, việc việt các ứng dụng này bằng Java dễ dàng hơn nhiều so với các ngôn ngữ khác.
Chính vì vậy trong rất nhiều ngôn ngữ lập trình đang được các chuyên gia sử dụng để viết nên các ứng dụng trên máy tính, trong doanh nghiệp, trên các thiết bị cầm tay... Java luôn là ngôn ngữ được các chuyên gia lựa chọn ở mức ưu tiên số 1. Java đã được ứng dụng rộng rãi và trở thành một ngôn ngữ lập trình được ưa chuộng bậc nhất hiện nay. Ở Việt Nam, Java đang rất phát triển các doanh nghiệp đã sử dụng Java trong các sản phẩm Game, phần mềm, ngân hàng, thiết bị cầm tay, ứng dụng web,…Những chuyên gia thành thạo ngôn ngữ này luôn đứng trước sự săn đón của hàng trăm nghìn việc làm và cơ hội thăng tiến.
Tập bài giảng này được xây dựng gồm có 6 chương trình bày chi tiết về lập trình Java cơ bản, bám sát theo khung chương trình môn lập trình Java của Trường Đại học Sư phạm Kỹ thuật Nam Định. Nhằm trang bi cho sinh viên những kiến thức cơ bản về lập trình Java tạo nền tảng để sinh viên tiếp cận với ngôn ngữ này cũng như học các học phần khác trong chương trình như thực tập lập trình trên thiết bị di động. Tập bài giảng được sử dụng làm tài liệu giảng dạy cho các giáo viên, giảng viên và tài liệu học tập cho học sinh – sinh viên thuộc Trường Đại học Sư phạm Kỹ thuật Nam Định. Ngoài ra có thể làm tài liệu tham khảo cho mọi đối tượng quan tâm đến lập trình Java.
NHÓM TÁC GIẢ
MỤC LỤC
CHƯƠNG 1: LẬP TRÌNH JAVA CƠ BẢN 1
1.1. Giới thiệu về Java và cài đặt 1
Có thể bạn quan tâm!
Xem toàn bộ 267 trang tài liệu này.
1.1.1. Lịch sử Java 1
1.1.2. Đặc trưng của Java 1
1.1.3. Các kiểu chương trình Java 5
1.1.4. Máy ảo Java 6
1.1.5. Bộ công cụ phát triển JDK 8
1.1.6. Cài đặt JDK 11
1.2. Ngôn ngữ lập trình Java 17
1.2.1. Mở đầu lập trình với Java 17
1.2.2. Cấu trúc chương trình Java 17
1.2.3. Kiểu dữ liệu cơ sở, hằng, biến 20
1.2.4. Kiểu dữ liệu Mảng (Array) 27
1.2.5. Toán tử và biểu thức 29
1.2.6. Các cấu trúc điều khiển 32
1.2.7. Hàm – Phương thức (Function – Method) 38
1.2.8. Nhập xuất dữ liệu 39
Câu hỏi và bài tập chương 1 43
CHƯƠNG 2: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA 45
2.1. Giới thiệu về lập trình hướng đối tượng 45
2.2. Trừu tượng hoá dữ liệu 47
2.3. Lớp và định nghĩa lớp trong Java 50
2.4. Đối tượng 62
2.5. Thiết lập và hủy 63
2.5.1. Thiết lập 63
2.5.2. Hủy 65
2.6. Các đặc tính của lớp 66
2.6.1. Tính bền vững 66
2.6.2. Tính thừa kế 68
2.6.3. Tính đa thừa kế 72
2.6.4. Tính đa hình 73
2.6.6. Lớp trừu tượng 76
2.7. Xử lý ngoại lệ 80
Câu hỏi và bài tập chương 2 84
CHƯƠNG 3: CÁC GÓI VÀ LẬP TRÌNH VÀO RA 92
3.1. Các gói trong Java 92
3.1.1. Giới thiệu 92
3.1.2. Các giao diện 92
3.1.3. Các gói 95
3.1.4. Gói và điều khiển truy xuất 98
3.1.5. Gói Java.lang 99
3.2. Các dòng (Stream) 115
3.3. Gói Java.io 115
3.3.1. Lớp InputStream 115
3.3.2. Lớp OutputStream 117
3.3.3. Vào ra mảng byte 117
3.3.4. Vào ra tập tin 119
3.3.5. Nhập xuất lọc 121
3.3.6. Vào ra có sử dụng bộ đệm 122
3.3.7. Lớp Reader và Writer 125
3.3.8. Nhập xuất chuỗi 125
3.3.9. Lớp PrinterWriter 128
3.3.10. Giao diện DataInput 129
3.3.11. Giao diện DataOutput 129
3.3.12. Lớp RandomAccessFile 130
3.4. Gói java.awt.print 132
Câu hỏi và bài tập chương 3 133
CHƯƠNG 4: LẬP TRÌNH ĐỒ HOẠ AWT 136
4.1. Giới thiệu về AWT 136
4.2. Container (vật chứa) 137
4.2.1. Giới thiệu 137
4.2.2. Frame 137
4.2.3. Panel 138
4.2.4. Dialog 139
4.3. Thành phần (Component) 140
4.3.1. Giới thiệu 140
4.3.2. Nhãn 140
4.3.3. Ô văn bản 142
4.3.4. Vùng văn bản 144
4.3.5. Nút 145
4.3.6. Checkbox và Radio Button 147
4.3.7. Danh sách lựa chọn 149
4.4. Quản lý cách trình bày 151
4.4.1. FlowLayout manager 152
4.4.2. BorderLayout Manager 153
4.4.3. Card Layout Manager 154
4.4.4. GridLayout Manager 156
4.4.5. GridBagLayout Manager 158
4.5. Xử lý các sự kiện 163
4.6. Thực đơn 169
Câu hỏi và bài tập chương 4 173
CHƯƠNG 5: JAVA APPLET VÀ SWING 175
5.1. Java Applet 175
5.1.1. Giới thiệu về Applet 175
5.1.2. Cấu trúc của một Applet 175
5.1.3. Chu trình sống của một Applet 178
5.1.4. Truyền tham số cho Applet 179
5.1.5. Lớp Graphics 181
5.1.6. Điều khiển màu 190
5.1.7. Điều khiển Font 191
5.1.8. Lớp FontMetrics 192
5.1.9. Chọn chế độ để vẽ 196
5.2. Java Swing 198
5.2.1 Giới thiệu về Swing 198
5.2.2. Các biểu tượng và nhãn 199
5.2.3. Các trường văn bản 200
5.2.4. Nút nhấn 201
5.2.5. Lớp JButton 202
5.2.6. Hộp kiểm tra 202
5.2.7. Radio Button 203
5.2.8. ComboBox 203
5.2.9. Tabbed Pane 203
5.2.10. Scroll Pane 204
5.2.11. Cây 205
5.2.12. Bảng 207
Câu hỏi và bài tập chương 5 210
CHƯƠNG 6: LẬP TRÌNH ĐA LUỒNG 224
6.1. Giới thiệu về lập trình luồng 224
6.2. Luồng và đa luồng 224
6.3. Tạo và quản lý luồng 225
6.4. Vòng đời của luồng 228
6.5. Trạng thái của luồng và các phương thức của lớp Thread 228
6.6. Thời gian biểu luồng 229
6.7. Luồng chạy ngầm 231
6.8. Đa luông với Applet 232
6.9. Nhóm luồng 233
6.10. Sự đồng bộ luồng 234
6.10.1. Đồng bộ mã 235
6.10.2. Sử dụng khối đồng bộ (Synchronized Block) 237
6.10.3. Ưu điểm của các phương thức đồng bộ 240
6.11. Cơ chế đợi thông báo 240
6.12. Khoá chết (Deadlock) 244
6.13. Thu dọn rác 246
Câu hỏi và bài tập chương 6 250
TÀI LIỆU THAM KHẢO 254
DANH MỤC CÁC HÌNH VẼ
Bảng 1.1. Bảng các ký hiệu ghi chú 18
Bảng 1.2. Các từ khóa của Java 20
Bảng 1.3. Các kiểu số nguyên 21
Bảng 1.4. Các phép toán trên kiểu số nguyên 21
Bảng 1.5. Các loại số thực 22
Bảng 1.6. Các phép toán trên kiểu số thực 22
Bảng 1.7. Giá trị mặc định 23
Bảng 1.8. Hằng số nguyên 25
Bảng 1.9. Các hằng số thực 26
Bảng 1.10. Toán tử 2 ngôi 30
Bảng 1.11. Danh sách các toán tử đơn 30
Bảng 1.12. Danh sách các toán tử gán 31
Bảng 1.13. Danh sách các toán tử trên kiểu số thực 31
Bảng 1.14. Danh sách các phép toán logic 31
Bảng 2.1. Một ví dụ về hai phương pháp giải quyết OOP và Structured 47
Bảng 2.2. Sử dụng các bổ nghĩa 54
Bảng 2.3. Các exception thường gặp 83
Bảng 2.4. Các phương thức thông dụng của Throwable 84
Bảng 3.1. Truy cập đến các thành phần của lớp 99
Bảng 3.2. Các lớp trình bao bọc cho các kiểu dữ liệu nguyên thủy 99
Bảng 3.3. Lớp Runtime 110
Bảng 3.4. Lớp System 111
Bảng 3.5. Lớp Object. 114
Bảng 3.6. Các phương thức của lớp InputStream 116
Bảng 3.7. Các phương thức lớp OutputStream 117
Bảng 3.8. Các phương thức của giao diện DataInput 129
Bảng 3.9. Các phương thức của giao diện DataOutput 130
Bảng 4.1. Các phương thức của Label 141
Bảng 4.2. Các phương thức của TextField 143
Bảng 4.3. Các phương thức của TextArea 144
Bảng 4.4. Các biến thành viên của lớp GridBagConstraints 159
Bảng 4.5. Các biến thành viên dữ liệu tĩnh của biến fill 159
Bảng 4.6. các sự kiện của AWT 164
Bảng 5.1. Các phương thức của một applet 176
Bảng 5.2. Phạm vi giá trị của các thành phần màu 190
Bảng 5.3. Các giá trị RGB 190
Bảng 5.4. Các màu thường gặp 191
Bảng 5.5. Các lớp thành phần Swing 199
Bảng 5.6. Các hàm sử dụng của JLabel 200
Bảng 5.7. Các hằng số 205
Bảng 6.1. Các phương thức của một lớp luồng 229