Xem mẫu
- ỦY BAN NHÂN DÂN TỈNH AN GIANG
TRƢỜNG CAO ĐẲNG NGHỀ AN GIANG
GIÁO TRÌNH
MÔ ĐUN: Lập Trình Java
NGÀNH/NGHỀ: LẬP TRÌNH MÁY TÍNH
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành theo Quyết định số: /QĐ-CĐN, ngày tháng năm 20
của Hiệu trưởng trường Cao đẳng nghề An Giang)
An Giang, Năm ban hành:
- TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc
phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.
LỜI GIỚI THIỆU
Ngôn ngữ lập trình java ra đời và đƣợc các nhà nghiên cứu của Công ty
Sun Microsystem giới thiệu vào năm 1995. Sau khi ra đời không lâu, ngôn
ngữ lập trình này đã đƣợc sử dụng rộng rãi và phổ biến đối với các lập trình
viên chuyên nghiệp cũng nhƣ các nhà phát triển phần mềm. Gần đây ngôn
ngữ lập trình, công nghệ java đã đƣợc đƣa vào giảng dạy ở các cơ sở đào tạo
lập trình viên chuyên nghiệp. Tài liệu này sẽ giúp chúng ta tìm hiểu về java và
cách viết một ứng dụng bằng ngôn ngữ này.
An Giang, ngày tháng năm 20…
Tham gia biên soạn
1. Ths. Vũ Trường Duy
2……………
3. ………….
2
- MỤC LỤC
LỜI GIỚI THIỆU ...................................................................................................... 2
GIÁO TRÌNH MÔ ĐUN .......................................................................................... 5
BÀI 1: THIẾT LẬP MÔI TRƢỜNG LẬP TRÌNH JAVA ....................................... 8
I/ Cài đặt môi trƣờng lập trình Java. ...................................................................... 8
II/ Biên dịch, chạy chƣơng trình. ........................................................................... 9
Bài tập: ................................................................................................................. 10
BÀI 2: JAVA CƠ BẢN ........................................................................................... 11
I/ Cấu trúc cơ bản một chƣơng trình viết bằng Java. ........................................... 11
II/ Hằng, biến, kiểu dữ liệu, toán tử, từ khóa. ...................................................... 11
III/ Các cấu trúc điều khiển. ................................................................................. 15
IV/ Mảng và chuỗi trong Java. ............................................................................. 17
Bài tập: ................................................................................................................. 21
BÀI 3: HƢỚNG ĐỐI TƢỢNG TRONG JAVA ..................................................... 22
I/ Lớp trong Java .................................................................................................. 22
II/ Tính kế thừa..................................................................................................... 26
III/ Các ví dụ minh họa. ....................................................................................... 26
Bài tập: ................................................................................................................. 30
BÀI 4: LẬP TRÌNH GIAO DIỆN .......................................................................... 32
I/ Giới thiệu thiết kế giao diện trong Java............................................................ 32
II/ Các thành phần (Component).......................................................................... 32
III/ Các đối tƣợng khung chứa (Containers). ....................................................... 41
IV/ Các bộ quản lý trình bày (Layout managers). ............................................... 44
Bài tập: ................................................................................................................. 50
BÀI 5: LẬP TRÌNH SỰ KIỆN ............................................................................... 51
I/ Các ví dụ mở đầu. ............................................................................................. 51
II/ Mô hình xử lý sự kiện trong Java .................................................................... 54
III. Các bộ lắng nghe sự kiện. .............................................................................. 56
IV. Các thành phần component nâng cao. ........................................................... 58
3
- V/ Xử lý sự kiện chuột. ........................................................................................ 59
VI/ Xử lý sự kiện bàn phím.................................................................................. 59
Bài tập: ................................................................................................................. 60
BÀI 6: XỬ LÝ NGOẠI LỆ ..................................................................................... 61
I/ Xử lý lỗi trong Java. ......................................................................................... 61
II. Các lớp ngoại lệ (Exceptions). ........................................................................ 61
III/ Xây dựng một lớp ngoại lệ. ........................................................................... 62
Bài tập: ................................................................................................................. 63
BÀI 7: KẾT NỐI CƠ SỞ DỮ LIỆU ....................................................................... 64
I/ Các trình điều khiển JDBC. .............................................................................. 64
II/ Các bƣớc lập trình truy xuất cơ sở dữ liệu. ..................................................... 65
III/ Các đối tƣợng trong lập trình cơ sở dữ liệu. .................................................. 65
IV/ Xử lý và trình bày dữ liệu. ............................................................................. 66
Bài tập: ................................................................................................................. 68
CÁC THUẬT NGỮ CHUYÊN MÔN .................................................................... 70
4
- GIÁO TRÌNH MÔ ĐUN
Tên mô đun : LẬP TRÌNH JAVA
Mã mô đun: MĐ23
Thời gian thực hiện mô đun: 75 giờ (Lý thuyết: 20 giờ, thực hành, thí nghiệm,
thảo luận: 53giờ, bài tập: ..... giờ, kiểm tra: 2 giờ).
I. VỊ TRÍ, TÍNH CHẤT CỦA MÔ ĐUN
1. Vị trí: thuộc nhóm Mô đun chuyên môn nghề
2. Tính chất: Là Mô đun chuyên môn bắt buộc trong ngành lập trình máy tính
hệ Cao đẳng
3. Ý nghĩa và vai trò của mô đun:
Mô đun này cung cấp cho sinh viên các kiến thức cơ bản về lập trình Java,
bao gồm: các kiểu dữ liệu, các phép toán, các cấu trúc điều khiển, khái niệm về lập
trình hƣớng đối tƣợng, tạo và sử dụng lớp.
Mô đun cũng bao gồm các kiến thức để viết các ứng dụng giao diện ngƣời
dùng, truy xuất cơ sở dữ liệu.
II. MỤC TIÊU CỦA MÔ ĐUN
1. Kiến thức:
+ Hiểu biết về ngôn ngữ lập trình Java, lập trình hƣớng đối tƣợng trong Java.
+ Trình bày đƣợc các mô hình lập trình giao diện, xử lý sự kiện ừong Java.
+ Trình bày đƣợc các bƣớc lập trinh truy xuất cơ sở dữ liệu.
2. Kỹ năng:
+ Sử dụng đƣợc một ngôn ngữ lập trình hƣớng đối tƣợng cụ thể (Java).
+ Sử dụng đƣợc môi trƣờng phát triển phần mềm tích họp (IDE) phục vụ cho
việc lập trình bang Java.
+ Có đƣợc các kỹ năng sử dụng ngôn ngữ Java để lập trình dòng lệnh, lập
trình giao diện đồ họa, lập trình sự kiện, lập trình truy xuất cơ sở dữ liệu.
3. Năng lực tự chủ và trách nhiệm.
+ Cẩn thận, tỉ mỉ, tự giác học tập và nghiên cứu.
III. NỘI DUNG MÔ ĐUN
Thời gian (giờ)
Số Thực hành, thí
Tên các bài trong mô đun Tổng Lý Kiểm
TT nghiệm, thảo
số thuyết tra
luận, bài tập
1 Bài mở đầu: 4 1 3
Bài 1: Thiết lập môi trƣờng lập
trình Java
1. Cài đặt môi trƣờng lập trình
Java.
2. Biên dịch, chạy chƣơng
trình.
5
- 2 Bài 2: Java cơ bản 12 3 9
1. Cấu trúc cơ bản một chƣơng
trình viết bằng Java.
2. Hằng, biến, kiểu dữ liệu,
toán tử, từ khóa.
3. Các cấu trúc điều khiển.
4. Mảng và chuỗi trong Java.
3 Bài 3: Hƣớng đối tƣợng trong 12 3 9
Java
1. Lớp trong Java.
2. Tính kế thừa.
3. Các ví dụ minh họa.
4 Bài 4: Lập trình giao diện 16 4 12
1. Giới thiệu thiết kế giao diện
trong Java.
2. Các thành phần (component).
3. Các đối tƣợng khung chứa
(containers).
4. Các bộ quản lý trình bày
(layout managers).
5 Bài 5: Lập trình sự kiện 16 4 11 1
1. Các ví dụ mở đầu.
2. Mô hình xử lý sự kiện trong
Java
3. Các bộ lắng nghe sự kiện.
4. Các thành phần component
nâng cao.
5. Xử lý sự kiện chuột.
6. Xử lý sự kiện bàn phím.
6 Bài 6: Xử lý ngoại lệ 4 1 3
1. Xử lý lỗi trong Java.
2. Các lớp ngoại lệ
(exceptions).
3. Xây dựng một lớp ngoại lệ.
7 Bài 7: Kết nối cơ sở dữ liệu 8 3 4 1
1. Các trình điều khiển JDBC.
2. Các bƣớc lập trình truy xuất
cơ sở dữ liệu.
4. Các đối tƣợng trong lập trình
cơ sở dữ liệu.
5. Xử lý và trình bày dữ liệu.
6
- 8 Ôn tập 3 1 2
Cộng 75 20 53 2
7
- BÀI 1: THIẾT LẬP MÔI TRƢỜNG LẬP TRÌNH JAVA
Mục tiêu:
- Cài đặt đƣợc môi trƣờng lập trình Java.
- Biên dịch và chạy đƣợc một chƣơng trình Java.
Nội dung chính:
I/ Cài đặt môi trƣờng lập trình Java.
1/ Các phần mềm cần chuẩn bị:
- JDK 1.6 (jdk-6u11-windows-i586-p)
- JDK DOC 1.6 (jdk-6u10-docs)
Tải về từ trang web: http://java.sun.com/javase/downloads/index.jsp
- JCreator 4.5
Tải về từ trang web: http://www.jcreator.com/download.htm
- Nếu không dùng một IDE nhƣ JCreator để soạn thảo, dịch và thực thi thì ta
có thể dùng trình soạn thảo văn bản nhƣ NotePad để soạn thảo.
2/ Trình tự cài đặt:
Nên cài đặt theo trình tự sau:
- Cài JDK 1.6
- Thiết lập biến môi trƣờng PATH, CLASPATH
- Cài JDK Doc 1.6
- JCreator 4.5
- Thiết lập cho JCreator chỉ vào bộ JDK Doc 1.6 đã cài đặt
Cài JDK 1.6
- Phần này hƣớng dẫn cài trong hệ điều hành Windows 7 (đối với các hệ điều
hành khác của hãng Microsoft thì cách cài cũng tƣơng tự).
- Tạo thƣ mục C:\Java để cài. Nếu không thì để JDK cài ngầm định vào
C:\Program Files\Java\jdk1.6.0_11
- Nhấp đúp vào source JDK 1.6 để cài.
- Thiết lập biến môi trƣờng PATH chỉ đến thƣ mục BIN của thƣ mục mà ta
mới cài JDK.
- Thiết lập biến môi trƣờng CLASSPATH chỉ đến thƣ mục chƣa các lớp của
ngƣời dùng. Từ bản JDK 1.4 về sau, ta không cần quan tâm đến biến
CLASSPATH nữa.
Thiết lập biến môi trƣờng Path
Trong Windows, nhấp Start/run gõ vào sysedit. Trong cửa sổ
AUTOEXEC.BAT gõ chuỗi “set PATH=“ chỉ đến thƣ mục BIN của JDK mới cài
đặt.
Ví dụ: set PATH=C:\Program Files\Java\jdk1.6.0_11\bin
Sau đó save và đóng cửa sổ sysedit lại rồi khởi động lại máy.
Cài đặt JDK DOC
JDK Doc là là tài liệu trợ giúp tra cứu các lớp và các phƣơng thức của Java.
JDK Doc cũng trợ giúp tra hàm và lớp khi soạn thảo trong JCreator. Source của
JDK Doc ở dạng file nén. Ta tiến hành giải nén nó vào cùng thƣ mục đã cài JDK.
Cài đặt JCreator 4.5
Sau khi download source JCreator và ta tiến hành cài đặt nó.
8
- II/ Biên dịch, chạy chƣơng trình.
1/ Viết một chƣơng trình đơn giản
Dùng JCreator viết và thực thi chƣơng trình có tên là HelloWorldApp
Bƣớc 1: Tạo một empty project
Trên menu của JCreator chọn File/New/Project/Empty Project/Next
Đặt tên cho project ở ô Name.
Chọn thƣ mục chứa project ở ô Location. Nhấn Finish.
9
- Bƣớc 3: Soạn thảo mã nguồn, dịch và thực thi
Bài tập:
Hãy cài đặt môi trƣờng lập trình Java.
10
- BÀI 2: JAVA CƠ BẢN
Mục tiêu:
- Trình bày đƣợc cấu trúc cơ bản của một chƣơng trình viết bằng Java.
- Mô tả đƣợc hằng và biến dùng trong chƣơng trình.
- Sử dụng đƣợc quy tắc cú pháp của ngôn ngữ lập trình.
- Vận dụng đƣợc các cấu trúc điều khiển, cấu trúc lặp vào lập trình.
- Sử dụng đƣợc mảng và chuỗi trong lập trình Java.
Nội dung chính:
I/ Cấu trúc cơ bản một chƣơng trình viết bằng Java.
Phƣơng thức main(): là điểm bắt đầu thực thi một ứng dụng.
- Mỗi ứng dụng Java phải chứa một phƣơng thức main có dạng nhƣ sau:
public static void main(String[] args)
- Phƣơng thức main chứa ba bổ từ đặc tả sau:
public: chỉ ra rằng phƣơng thức main có thể đƣợc gọi bởi bất kỳ đối tƣợng
nào.
static: chỉ ra rằng phƣơng thức main là một phƣơng thức lớp.
void: chỉ ra rằng phƣơng thức main sẽ không trả về bất kỳ một giá trị nào.
II/ Hằng, biến, kiểu dữ liệu, toán tử, từ khóa.
1/ Từ khóa (keyword)
- Từ khóa cho các kiểu dữ liệu cơ bản: byte, short, int, long, float, double,
char, boolean.
- Từ khóa cho phát biểu lặp: do, while, for, break, continue.
- Từ khóa cho phát biểu rẽ nhánh: if, else, switch, case, default, break.
11
- - Từ khóa đặc tả đặc tính một method: private, public, protected, final, static,
abstract, synchronized.
- Hằng (literal): true, false, null.
- Từ khóa liên quan đến method: return, void.
- Từ khoá liên quan đến package: package, import.
- Từ khóa cho việc quản lý lỗi: try, catch, finally, throw, throws.
- Từ khóa liên quan đến đối tƣợng: new, extends, implements, class,
instanceof, this, super.
2/ Định danh (identifier)
- Định danh là dùng biểu diễn tên của biến, của phƣơng thức, của lớp.
- Trong Java, định danh có thể sử dụng ký tự chữ, ký tự số và ký tự dấu.
- Ký tự đầu tiên phải là ký tự chữ, dấu gạch dƣới (_), hoặc dấu dollar ($).
- Có sự phân biệt giữa ký tự chữ hoa và chữ thƣờng.
Ví dụ: Hello, _prime, var8, tvLang
3/ Biến (variable)
- Biến là vùng nhớ dùng để lƣu trữ các giá trị của chƣơng trình.
- Mỗi biến gắn liền với một kiểu dữ liệu và một định danh duy nhất gọi là tên
biến.
- Tên biến thông thƣờng là một chuỗi các ký tự (Unicode), ký số.
- Tên biến phải bắt đầu bằng một chữ cái, một dấu gạch dƣới hay dấu dollar.
- Tên biến không đƣợc trùng với các từ khóa (xem lại các từ khóa trong java).
- Tên biến không có khoảng trắng ở giữa tên.
- Trong java, biến có thể đƣợc khai báo ở bất kỳ nơi đâu trong chƣơng trình.
- Cách khai báo
;
= ;
- Gán giá trị cho biến
= ;
- Biến công cộng (toàn cục): là biến có thể truy xuất ở khắp nơi trong chƣơng
trình, thƣờng đƣợc khai báo dùng từ khóa public, hoặc đặt chúng trong một class.
- Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh nó khai báo
4/ Kiểu dữ liệu (data type)
Gồm các kiểu dữ liệu sau:
• Kiểu dữ liệu cơ sở (Primitive data type)
• Kiểu dữ liệu tham chiếu hay dẫn xuất (reference data type)
• Kiểu dữ liệu cơ sở của Java bao gồm các nhóm sau: số nguyên, số thực, ký
tự, kiểu luận lý (logic)
• Kiểu dữ liệu tham chiếu là các kiểu dữ liệu đối tƣợng. Ví dụ nhƣ: String,
Byte, Character, Double, Boolean, Integer, Long, Short, Font,… và các lớp do
ngƣời dùng định nghĩa.
- Kiểu dữ liệu cơ sở
Kiểu số nguyên
• Bốn kiểu số nguyên khác nhau là: byte, short, int, long
• Kiểu mặc định của các số nguyên là kiểu int
• Không có kiểu số nguyên không dấu
12
- • Không thể chuyển biến kiểu int và kiểu boolean nhƣ trong ngôn ngữ C/C++
Ví dụ:
int x = 0;
long y=100;
int a=1,b,c;
Kiểu dấu chấm động:
• Kiểu float có kích thƣớc 4 byte và giá trị mặc định là 0.0f
• Kiểu double có kích thƣớc 8 byte và giá trị mặc định là 0.0d
• Khai báo và khởi tạo giá trị cho các biến kiểu dấu chấm động:
Ví dụ:
float x = 100.0/7;
double y = 1.56E6;
Kiểu ký tự
• Biểu diễn các ký tự trong bộ mã Unicode
• 216 = 65536 ký tự khác nhau : từ '\u0000' đến '\uFFFF'
Kiểu luận lý (boolean)
• Hai giá trị: true hoặc false
• Giá trị mặc định: false
• Không thể chuyển thành kiểu nguyên và ngƣợc lại
- Toán tử ép kiểu:
= (kiểu_dữ_liệu) ;
Ví dụ:
float fNum = 2.2;
int iCount = (int) fNum
• Ép kiểu rộng (widening conversion): từ kiểu nhỏ sang kiểu lớn (không mất
mát thông tin)
• Ép kiểu hẹp (narrow conversion): từ kiểu lớn sang kiểu nhỏ (có khả năng
mất mát thông tin)
4/ Hằng (literal)
- Hằng là một giá trị bất biến trong chƣơng trình
- Tên hằng đƣợc đặt theo qui ƣớc giống nhƣ tên biến
- Tiếp vĩ ngữ: l, L, f, F, d, D
Ví dụ:
int i=1;
long i=1L;
- Hằng ký tự: là một ký tự đơn nằm giữa 2 dấu nháy đơn.
- Hằng chuỗi: là tập hợp các ký tự đƣợc đặt giữa hai dấu nháy kép “”. Một
hằng chuỗi không có ký tự nào là một hằng chuỗi rỗng.
Ví dụ: “Hello Wolrd”
5/ Toán tử (operator)
- Toán tử số học
13
- Toán tử Ý nghĩa
+ Cộng
- Trừ
* Nhân
/ Chia nguyên
% Chia dƣ
++ Tăng 1
-- Giảm 1
- Toán tử quan hệ & logic
Toán tử Ý nghĩa
== So sánh bằng
!= So sánh khác
> So sánh lớn hơn
< So sánh nhỏ hơn
>= So sánh lớn hơn hay bằng
14
- Ví dụ:
int x = 10;
int y = 20;
int Z = (x
- public class TestSwitch
{
public static void main(String[] args)
{ char c;
String str=JOptionPane.showInputDialog(null,"Nhap vao ky tu?");
c = str.charAt(0);
switch(c)
{
case 'a': case 'e': case 'i': case 'o': case 'u':
System.out.println("Ky tu nay la nguyen am");
break;
default:
System.out.println("Ky tu nay la phu am");
}
System.exit(0); // kết thúc chƣơng trình
}
}
3/ Vòng lặp while
while ()
;
Ví dụ:
// Tính tổng các số lẻ từ 1 đến 100
int tong = 0, i = 1;
while (i
- } while (i
- class ArrayDemo
{
public static void main(String args[])
{
int arrInt[] = new int[10];
int i;
for(i = 0; i < 10; i = i+1)
arrInt[i] = i;
for(i = 0; i < 10; i = i+1)
System.out.println("This is arrInt[" + i +"]: " + arrInt[i]);
}
}
Ví dụ 3: Tìm phần tử có giá trị nhỏ nhất (Min) và lớn nhất (Max) trong một
mảng.
class MinMax2
{ public static void main(String args[])
{ int nums[] = { 99, -10, 100123, 18, -978, 5623, 463, -9, 287, 49 };
int min, max;
min = max = nums[0];
for(int i=1; i < 10; i++)
{
if(nums[i] < min) min = nums[i];
if(nums[i] > max) max = nums[i];
}
System.out.println("Min and max: " + min + " " + max);
}
}
Ví dụ 4: Nhập và xuất giá trị của các phần tử trong một mảng hai chiều.
class TwoD_Arr
{ public static void main(String args[])
{ int t, i;
int table[][] = new int[3][4];
for(t=0; t < 3; ++t)
{ for(i=0; i < 4; ++i)
{ table[t][i] = (t*4)+i+1;
System.out.print(table[t][i] + “ ");
18
- }
System.out.println();
}
}
}
2/ Chuỗi trong java (string)
- Trong những ngôn ngữ lập trình khác (C chẳng hạn), một chuỗi đƣợc xem
nhƣ một mảng các ký tự.
- Trong java thì khác, java cung cấp một lớp String để làm việc với đối tƣợng
dữ liệu chuỗi cùng các thao tác trên đối tƣợng dữ liệu này.
- Tạo đối tƣợng chuỗi
class StringDemo
{
public static void main(String args[])
{
// Tao chuoi bang nhieu cach khac nhau
String str1 = new String("Chuoi trong java la nhung Objects.");
String str2 = "Chung duoc xay dung bang nhieu cach khac nhau.";
String str3 = new String(str2);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
}
}
- Minh họa một số thao tác cơ bản trên chuỗi
// Chuong trinh minh hoa cac thao tac tren chuoi ky tu
class StrOps
{
public static void main(String args[])
{ String str1 = "Java la chon lua so mot cho lap trinh ung dung Web.";
String str2 = new String(str1);
String str3 = "Java ho tro doi tuong String de xu ly chuoi";
int result, idx;
char ch;
System.out.println("str1:" + str1);
System.out.println("str2:" + str2);
System.out.println("str3:" + str3);
System.out.println("Chieu dai cua chuoi str1 la:" + str1.length());
// Hien thi chuoi str1, moi lan mot ky tu.
System.out.println();
for(int i=0; i < str1.length(); i++)
System.out.print(str1.charAt(i));
System.out.println();
19
- if(str1.equals(str2))
System.out.println("str1 == str2");
else
System.out.println("str1 != str2");
if(str1.equals(str3))
System.out.println("str1 == str3");
else
System.out.println("str1 != str3");
result = str1.compareTo(str3);
if(result == 0)
System.out.println("str1 = str3 ");
else
if(result < 0)
System.out.println("str1 < str3");
else
System.out.println("str1 > str3");
// Tao chuoi moi cho str4
String str4 = "Mot Hai Ba Mot";
idx = str4.indexOf("Mot");
System.out.println("str4:" + str4);
System.out.println(
"Vi tri xuat hien dau tien cua chuoi con 'Mot' trong str4: "
+ idx);
idx = str4.lastIndexOf("Mot");
System.out.println("Vi tri xuat hien sau cung cua
chuoi con 'Mot' trong str4:" + idx);
}
}
- Lấy chuỗi con của một chuỗi
class SubStr
{
public static void main(String args[])
{
String orgstr = "Mot Hai Ba Bon";
// Lay chuoi con dung ham
// public String substring(int beginIndex, int
// endIndex)
String substr = orgstr.substring(4, 7);
System.out.println("Chuoi goc: " + orgstr);
System.out.println("Chuoi con: " + substr);
}
}
- Mảng các chuỗi
class StringArray
{
20
nguon tai.lieu . vn