1
MỤC LỤC
MỤC LỤC........................................................................................................................................2
Đề tài 0. Giới thiệu về Java............................................................................................................7
I. Lịch sử hình thành và phát triển ngơn ngữ lập trình Java.......................................................7
I.1. Giới thiệu về Java.............................................................................................................7
I.2 Tóm tắt lịch sử hình thành của Java ................................................................................. 7
II. Các đặc trưng của Java...........................................................................................................8
II.1. Tính đơn giản...................................................................................................................8
II.2. Tính hướng đối tượng..................................................................................................... 8
II.3. Tính phân tán.................................................................................................................... 8
II.4. Tính mạnh mẽ..................................................................................................................8
II.5. Tính an tồn...................................................................................................................... 8
II.6. Tính trung lập...................................................................................................................9
II.7. Tính di động..................................................................................................................... 9
II.8. Tính thơng dịch...............................................................................................................10
II.9. Tính thực thi cao.............................................................................................................10
II.10. Tính đa luồng................................................................................................................10
II.11. Tính động .....................................................................................................................10
III. Các loại ứng dụng của Java................................................................................................10
IV. Công cụ và môi trường lập trình Java................................................................................ 10
V. Cài đặt Java ..........................................................................................................................11
Đề tài 1. Ngơn ngữ mơ hình hóa UML......................................................................................... 14
I. Xây dựng hệ thống phần mềm theo hướng đối tượng........................................................14
I.1 Các khái niệm căn bản của công nghệ hướng đối tượng.............................................. 14
I.2 Quy trình chung phát triển hệ thống phần mềm.............................................................15
I.3 Những thách thức của ngành công nghiệp phần mềm hiện nay....................................15
II. Lịch sử phát triển ngơn ngữ mơ hình hóa UML...................................................................15
II.1. Tóm tắt lịch sử UML..................................................................................................... 15
II.2. Khái niệm về UML........................................................................................................16
II.3 Đặc trưng của UML........................................................................................................16
III. Ngôn ngữ UML....................................................................................................................17
III.1. Các thành phần của UML.............................................................................................17
III.2. Các hướng nhìn (view)..................................................................................................18
III.3 Ứng dụng UML trong quy trình làm phần mềm.......................................................... 25
IV. Quy trình Rational Unified Process (RUP) phát triển phần mềm dựa trên UML..............27
IV.1. Giới thiệu về RUP........................................................................................................27
IV.2. Các ngun tắc chính của RUP:...................................................................................27
IV.3. Vịng đời của phần mềm theo quy trình RUP.............................................................27
IV.4. Các cơng cụ của RUP...................................................................................................29
Bài tập........................................................................................................................................29
2
Đề tài 2. Nhập môn Java...............................................................................................................30
I. Viết và thực hiện một chương trình Java ............................................................................ 30
I.1 Tìm hiểu mã nguồn một chương trình đơn giản............................................................ 30
I.2. Thực hiện chương trình Java.......................................................................................... 30
I.3. Một số chú ý khi lập trình Java.......................................................................................31
I.4. Cấu trúc một chương trình Java..................................................................................... 31
II. Các kiểu dữ liệu trong Java..................................................................................................32
II.1 Các kiểu dữ liệu số nguyên............................................................................................32
II.2 Các kiểu số thực............................................................................................................. 33
II.3 Kiểu ký tự (character).....................................................................................................33
II.4 Kiểu logic (boolean)........................................................................................................33
II.5 Kiểu chuỗi.......................................................................................................................33
II.6 Chuyển đổi giữa các kiểu số..........................................................................................33
III. Khai báo biến và hằng trong Java.......................................................................................34
III.1 Quy tắc đặt tên biến......................................................................................................34
III.2 Khai báo biến................................................................................................................. 34
III.3 Biến kiểu mảng.............................................................................................................35
III.4 Hằng số (literal).............................................................................................................36
III.5 Phạm vi hoạt động của hằng và biến:......................................................................... 37
IV. Các toán tử và biểu thức..................................................................................................... 37
IV.1 Các toán tử và thứ tự ưu tiên.........................................................................................37
IV.2 Biểu thức....................................................................................................................... 38
V. Các lệnh điều khiển rẽ nhánh..............................................................................................39
V.1 Lệnh if.............................................................................................................................39
V.2. Lệnh switch …case........................................................................................................ 39
VI. Các lệnh lặp.........................................................................................................................40
VI.1. Vòng lặp for..................................................................................................................40
VI.2. Vòng lặp while..............................................................................................................41
VI.3. Vòng lặp do... while......................................................................................................42
VI.4. Phép nhảy......................................................................................................................42
VII. Vào dữ liệu từ bàn phím và xuất dữ liệu ra màn hình..................................................... 43
VII.1. Lấy giá trị nhập vào từ bàn phím............................................................................... 43
VII.2 Kết xuất dữ liệu ra màn hình..................................................................................... 44
Bài tập........................................................................................................................................45
Đề tài 3. Lập trình hướng đối tượng trong Java.......................................................................... 47
I. Khái niệm lập trình hướng đối tượng (Object-Oriented Programming - OOP)...................47
I.1. Khái niệm OOP............................................................................................................... 47
I.2 Cơ sở lý luận của OOP....................................................................................................47
I.3 Trừu tượng hóa.................................................................................................................47
II. Tính đóng gói trong Java....................................................................................................... 49
II.1 Khái niệm tính đóng gói..................................................................................................49
II.2 Mối quan hệ giữa các class.............................................................................................49
II.3 Một số gợi ý khi thiết kế class.......................................................................................49
IV. Sử dụng các Class xây dựng sẵn trong thư viện................................................................50
V. Xây dựng Class trong Java....................................................................................................51
V.1 Cấu trúc của class...........................................................................................................51
V.2 Các thuộc tính thành phần:............................................................................................. 52
3
V.3 Các phương thức thành phần......................................................................................... 53
V.4 Gọi và truyền tham số cho phương thức.......................................................................54
V.6 Các hàm và phương thức đặc biệt................................................................................. 54
V.7 Khai báo chồng các phương thức...................................................................................55
V.8 Lớp lồng nhau – lớp nội.................................................................................................56
VI. Tính kế thừa trong Java.......................................................................................................57
VI.1 Sự kế thừa các thuộc tính và phương thức.................................................................. 57
VI.2 Sự kế thừa đối với các constructor...............................................................................60
VII. Tính đa hình trong Java.......................................................................................................61
VII.1 Sự ép kiểu và gán tham chiếu đối tượng....................................................................61
VII.2 Sự ràng buộc động –Dynamic Binding .......................................................................62
VIII. Lớp Object.........................................................................................................................63
IX. Giao diện..............................................................................................................................63
IX.1 Cấu trúc của giao diện..................................................................................................63
IX.2 Các tính chất của giao diện...........................................................................................65
X. Package..................................................................................................................................65
X.1 Sử dụng các package trong thư viện Java......................................................................65
X.2 Đặt lớp vào package....................................................................................................... 66
Bài tập........................................................................................................................................66
Đề tài 4. Lớp và phương thức trừu tượng....................................................................................68
I. Khái niệm lớp trừu tượng......................................................................................................68
II. Cài đặt lớp và phương thức trừu tượng trong Java.............................................................68
Bài tập........................................................................................................................................69
Đề tài 5. Lưu trữ và xử lý đối tượng............................................................................................70
I. Lớp Vector và giao diện Enumeration...................................................................................70
I.1 Lớp Vector........................................................................................................................70
I.2 Giao diện Enumeration.....................................................................................................71
II. Mảng trong Java và lớp ArrayList........................................................................................73
II.1 Mảng trong Java..............................................................................................................73
II.2. Các thuật toán cơ bản trên mảng.................................................................................. 74
II.3 Class Arrays.....................................................................................................................75
III Danh sách trong java và giao diện Lists ..............................................................................77
Bài tập........................................................................................................................................78
Đề tài 6. Các luồng vào ra dữ liệu với file...................................................................................79
I. Khái niệm luồng vào ra (I/O stream).....................................................................................79
II. Lớp InputStream:...................................................................................................................80
III. Lớp OutputStream................................................................................................................81
IV. Lớp FileInputStream............................................................................................................81
V. Lớp FileOutputStream...........................................................................................................81
VI. Lớp File................................................................................................................................81
VII. Nhập xuất lọc ................................................................................................................... 83
VII.1 Lớp FilterInputStream: ................................................................................................ 83
VII.2 Lớp FilterOutputStream................................................................................................83
VIII. Vào/ra có sử dụng bộ đệm ..............................................................................................83
VIII.1 Lớp BufferedInputStream:.......................................................................................... 83
VIII.2 Lớp BufferedOutputStream.........................................................................................83
IX. Lớp RandomAccessFile ......................................................................................................86
4
X. Đối tượng System.in.............................................................................................................86
XI. Truy cập file ở chế độ tuần tự...........................................................................................86
XII. Truy cập file nhị phân........................................................................................................ 90
Bài tập .......................................................................................................................................91
Đề tài 7. Xử lý ngoại lệ................................................................................................................ 92
I. Các tình huống sử dụng ngoại lệ.......................................................................................... 92
II. Cơ sở quản lý ngoại lệ trong Java.......................................................................................92
III. Cấu trúc cây kế thừa các xử lý ngoại lệ............................................................................93
IV. Sử dụng ngoại lệ được kiểm soát......................................................................................94
V. Xây dựng một ngoại lệ........................................................................................................95
VI. Bài tập..................................................................................................................................96
Đề tài 8. Xử lý các sự kiện trong Java..........................................................................................97
I. Khái niệm và cơ sở xử lý sự kiện.........................................................................................97
II. Truy cập thông tin sự kiện................................................................................................. 103
III. Xử lý các sự kiện trên window......................................................................................... 104
IV. Các lớp thích nghi..............................................................................................................105
V. Xử lý các sự kiện chuột..................................................................................................107
Bài tập......................................................................................................................................108
Đề tài 9. Applet............................................................................................................................109
I. Xây dựng một Applet đơn giản...........................................................................................109
II. Cấu trúc cơ bản và vòng đời của một Applet................................................................... 109
III. An ninh và khả năng của Applet....................................................................................... 111
IV. Ứng dụng Applet với của sổ Popup................................................................................. 111
V. Các thẻ HTML của Applet................................................................................................. 112
VI. Các phương thức, lập trình đồ họa và bắt sự kiện của applet........................................113
Đề tài 10. Lập trình giao diện đồ họa GUI................................................................................115
I. Giới thiệu AWT .................................................................................................................. 115
II. Vật chứa (Container).......................................................................................................... 116
II.1 JFrame............................................................................................................................116
II.2 JPanel............................................................................................................................. 116
II.3 JDialog...........................................................................................................................117
II.4 JScrollPane.....................................................................................................................119
III. Giới thiệu về các thành phần GUI cơ bản.......................................................................119
III.1 Nút nhấn ......................................................................................................................119
III.2 Nhãn (Label).................................................................................................................119
III.3 Nút đánh dấu (checkbox).............................................................................................121
III.4 Nút chọn (radio button)................................................................................................123
III.5 Hộp thoại Combo ....................................................................................................... 123
III.6 Danh sách (Lists)..........................................................................................................124
III.7 Ô văn bản (text field) và vùng văn bản (text areas).................................................... 126
III.8 Thanh trượt (Scrollbar)................................................................................................ 129
IV. Thành phần Menu..............................................................................................................130
V. Bộ quản lý cách trình bày (Layout Manager).....................................................................133
V.1 Cách trình bày FlowLayout:.......................................................................................... 134
V.2 Cách trình bày GridLayout:...........................................................................................134
V.3 Cách trình bày BorderLayout........................................................................................ 134
VI. Các hộp thoại.....................................................................................................................134
5
Phụ lục A. Các từ khóa của Java
Từ khóa
Ý nghĩa
abstract
Một lớp hoặc phương thức trừu tượng
assert
Được sử dụng để định vị lỗi nội bộ chương trình
boolean
Kiểu boolean
break
Thốt khỏi lệnh switch hoặc các vòng lặp
byte
Số nguyên 1 byte
case
Một lựa chon của switch
catch
Một mệnh đề của khối Try để bắt một ngoại lệ
char
Kiểu ký tự Unicode
class
Định nghĩa một class
const
Không được sử dụng
continue
Tiếp tục tại vị trí cuối vịng lặp hiện thời
default
Mệnh đề mặc định của switch
do
Phần trên của vòng lặp do/while
double
Kiểu số thực floating-number 8 byte
else
Mệnh đề else của một lệnh if
extends
Xác định lớp cha của một lớp
final
Một hằng số, hoặc một lớp hay phương thức không thể bị khai báo chống.
finally
Một phần của khối try mà luôn được thực hiện
float
Số thực 4 byte
for
Một kiểu vịng lặp
goto
Khơng sử dụng
if
Một lệnh điều khiển rẽ nhánh
implements
Chỉ ra các interfaces mà lớp sẽ cài đặt.
import
Nhập một package
instanceof
Kiểm tra xem đối tượng có phải là biểu hiện của một lớp
int
Số nguyên 4 byte
interface
Một kiểu trừu tượng với các phương thức được cài đặt tại các class
long
Sô nguyên 8 byte
150
Từ khóa
Ý nghĩa
Native
a method implemented by the host system
new
Cấp phát vùng nhớ cho một đối tượng hoặc mảng mới
null
Một tham chiếu null
package
Một gói các lớp
private
a feature that is accessible only by methods of this class
protected
a feature that is accessible only by methods of this class, its children, and other
classes in the same package
public
a feature that is accessible by methods of all classes
return
returns from a method
short
the 16-bit integer type
static
a feature that is unique to its class, not to objects of its class
strictfp
Use strict rules for floating-point computations
super
the superclass object or constructor
switch
a selection statement
synchronized a method or code block that is atomic to a thread
this
the implicit argument of a method, or a constructor of this class
throw
throws an exception
tHRows
the exceptions that a method can throw
transient
marks data that should not be persistent
try
a block of code that traps exceptions
void
denotes a method that returns no value
volatile
ensures that a field is coherently accessed by multiple threads
while
a loop
Phụ lục B Một số hàm hay sử dụng
a) Hàm toán học, lớp java.lang.Math; {java.math.*;}
1. abs(number x): lấy |x|, x có thể là các kiểu long, int, float, double.
2. acos(double x) = arccos(x). x từ 0.0 ... PI
3. asin(double x) = arcsin(x). x từ -PI/2 ... PI/2
4. atan(double x) = arctag(x).
5. ceil(double x): làm cận trên hoặc cận dưới của số x.
6. cos(double x) = cos(x). x là radian.
7. exp(double x) = ex.
8. log(double x) = Ln(x).
151
9. max(number x, number y) = max{x, y}, trong đó x, y có th ể là ki ểu int, float,
double, long.
10. min(number x, number y) = min{x, y}, trong đó x, y có th ể là ki ểu int, float,
double, long.
11. pow(double x, double y) = xy.
12. random(): cho một số ngẫu nhiên trong [0.0, 1.0].
13. round(number x): làm tròn số x, nếu x là kiểu double thì thành ki ểu long, n ếu x
là kiểu float thì thành kiểu int.
14. sin(double x) = sin(x).
15. sqrt(double x) =
16. tan(double x) = tg(x).
Khi sử dụng ta phải dùng Math.tên_hàm.
b) Lớp String, khai báo java.lang.String;
1. String() : Khởi động một đối tượng chuỗi.
2. String(String s) : Khởi động một chuỗi bằng chuỗi s.
3. length() : trả về giá trị int là độ dài một chuỗi.
4. charAt(int i): trả về một ký tự thứ sau i.
5. indexOf(int ch): trả về vị trí trước của ký tự ch đầu tiên tìm thấy.
6. concat(String str): nối thêm chuỗi str vào sau.
7. toLowerCase(): thay đổi chuỗi thành chữ thường.
8. toUpperCase(): chuyển đổi chuỗi thành chữ HOA.
Lớp Date khai báo java.util.Date;
1. Date(): cho thứ, tháng, ngày, giờ, năm.
2. getDate(): trả về giá trị của ngày trong tháng.
3. getDay(): trả về giá trị int là thứ trong tuần, 0 = CN, 1 = mon, ..., 6 = Sat.
4. getMonth(): trả về giá trị int là tháng trong năm (0..11).
5. getYear(): trả về giá trị int là năm. Lấy mốc là 1900, năm th ực = date.getYear()
+1900.
6. getTime(): trả về là một số được tính theo giây đồng hồ.
7. getHours(): trả về giá trị int chỉ giờ trong ngày.
8. getMinutes(): trả về giá trị int chỉ phút trong giờ.
9. getSeconds(): trả về giá trị int chỉ giây đồng hồ trong phút.
10. setDate(int date) đặt lại ngày trong biến. date lấy giá trị từ 1..31
11. setMonth(int month): thay đổi giá trị tháng trong biến date. month có giá trị 0..11.
12. setYear(int year): thay đổi giá trị năm trong biến date. (year + 1900).
13. setHours(int hour): thay đổi giá trị giờ trong biến date.
14. setMinutes(int i): thay đổi giá trị phút trong biến date.
15. setSeconds(int i): thay đổi giá trị giây trong biến date.
Tài liệu tham khảo
[1] Deitel & Associates (2001), “Java, How to program”, fourth edition.
[2] Cay S. Horstmann, Gary Cornell (2004), “Core Java™ 2”, volume 1,2, Prentice Hall PTR
[3] David Reilly, Michael Reilly (2002), “Network Programming and Distributed Computing”,
Addison Wesley
152