Professional Documents
Culture Documents
1
Nội dung chính
4
1. Giới thiệu (tiếp)
• Đơn giản:
• Xây dựng từ C và C++, bỏ đi những phức tạp của
C.
• Bộ biên dịch có kích thước nhỏ (bản 1.4 chỉ
6MB).
• Hướng đối tượng:
• Chương trình Java viết hoàn toàn HĐT.
• Mọi khai báo đều trong một lớp.
5
1. Giới thiệu (tiếp)
• Phân tán (distributed):
• Hỗ trợ các ứng dụng phân tán qua lập trình
mạng.
• Một chương trình Java có thể kết hợp từ nhiều
chương trình khác nhau trên Internet.
• Thông dịch (Interpreter) và biên dịch (compiler):
• Một chương trình Java được biên dịch (sang
mã bytecode) sau đó thông dịch để thực thi.
6
1. Giới thiệu (tiếp)
• Mạnh mẽ (robust):
• Java có hệ thống thư viện lớn.
• Ràng buộc người lập trình chặt chẽ.
• Bảo mật (security):
• Các bước kiểm tra trước khi thực hiện chương
trình rất chặt chẽ.
• Java không dùng biến con trỏ nên không truy xuất
trực tiếp bộ nhớ.
7
1. Giới thiệu (tiếp)
• Khả chuyển:
• Khẩu hiệu của Java “Write Once, Run Anywhere”
nhờ máy ảo Java tương thích môi trường.
9
1. Giới thiệu (tiếp)
• Hiệu quả cao (High-performance):
• Tính hiệu quả chung so với C và C++.
• Tốc độ chương trình Java chậm.
• Đa tuyến (Multi-Thread):
• Cho phép lập trình tạo ra nhiều tiến trình đồng
thời.
• Linh động (flexible):
• Trong khi chạy có thể tự liên kết với các lớp mới
ở máy chủ ở xa trên Internet. 10
1. Giới thiệu (tiếp)
• Bộ công cụ JDK (Java Development Kit)
• Bộ công cụ phát triển trên môi trường Java bao
gồm:
• Chương trình dịch: javac.exe
• Trình thông dịch: java.exe
• Tạo tài liệu: javadoc.exe
• Thực thi applet: appletviewer.exe
• Các thư viện
•…
11
1. Giới thiệu (tiếp)
• Các ứng dụng Java:
• Ứng dụng Console: thực hiện từ DOS.
• Ứng dụng desktop giao diện đồ họa.
• Java Applet.
• Lập trình mạng.
• Lập trình ứng dụng Web: servlet, jsp.
• Lập trình CSDL: JDBC.
• JavaBean.
• Lập trình phân tán.
• Lập trình mobile.
12
Cơ bản về Ngôn ngữ lập trình Java
13
2. Bảng chữ cái và định danh
• Bảng chữ cái:
• Các chữ cái: A, B, .., Z, a, …, z.
• Các chữ số: 0, 1, …, 9.
• Các ký tự khác: +, -, …
• Định danh (Identifier):
• Bắt đầu bằng chữ cái hoặc _ hoặc $
• Có thể dùng chữ cái, chữ số, dấu _ trong định
danh.
• Phân biệt chữ hoa và chữ thường 14
3. Các kiểu dữ liệu nguyên thủy {1}
• Số nguyên:
Kiểu Kích thước Phạm vi
byte 1 byte -128->127
short 2 bytes -32768->32767
int 4 bytes -2 147 483 648 ->…
long 8 bytes -9,223,372,036,854,775,808
• Các phép toán: +, -, *, /, %, ++, --
15
3. Các kiểu dữ liệu nguyên thủy
• Ký tự:
• char
• 2bytes (dùng bảng mã unicode)
• Hằng ký tự: đặt giữa ‘’
• Các ký tự đặc biệt:
• \b xóa lùi
• \t tab
• \n xuống dòng
• \” “
• \’ ‘
• \\ \
• \uxxxx ký tự unicode
16
3. Các kiểu dữ liệu …(tiếp)
• Logic:
• boolean
• Giá trị: true, false.
• Các phép toán:
• !, &&, ||
17
3. Các kiểu dữ liệu … (tiếp)
• Số thực:
Kiểu Kích thước Phạm vi
float 4 bytes 1.40129846432481707e-45
3.40282346638528860e+38
double 8 bytes 4.94065645841246544e-324
1.79769313486231570e+308
• Các phép toán: +,-,*,/,%,++,--
• Các hằng: NaN (không phải số), Infinity (vô cùng).
18
3. Các kiểu dữ liệu … (tiếp)
• Khai báo biến:
• Kiểu dữ liệu <ds biến>;
• Ví dụ: int x, y;
• Phép gán:
• biến = <biểu thức>;
• Kết quả phép gán trả về giá trị biểu thức.
• Được phép gán: a = b = c;
• Các phép gán mở rộng: +=, -=, *=, /=, %=
19
3. Các kiểu dữ liệu …(tiếp)
• Chuyển đổi kiểu dữ liệu:
• Hằng xác định kiểu dữ liệu:
• 1.2 double
• 1.2f float
• 123l long
• Chuyển đổi kiểu tự động:
• byte->short->int->long->float->double.
• Ép kiểu: (kiểu)<biểu thức>
• Ví dụ: int x = (int) 123.45; //x=123
20
Thứ tự ưu tiên các phép toán
• [] ,., (params), expr++, expr—
• ++expr, –expr, +expr, –expr !
• */%
• +-
• <, >, <=, >=
• ==, !=
• &&
• ||
• ?:
• =, +=, -=, *=, /=, %=
21
4. Chương trình Java
• Chú thích:
• Trên 1 dòng: //Chú thích
• Nhiều dòng:
/*
Các dòng chú thích
*/
• Lệnh đơn: kết thúc bằng ;
• Khối lệnh: { }
22
4. Chương trình Java (tiếp)
• Cấu trúc 1 chương trình Java đơn giản:
import <gói thư viện>;
class <TênLớp>
{
public static void main(String args[])
{
Các lệnh
}
}
• Các lệnh trong hàm main sẽ được thực hiện khi thực thi
chương trình. 23
4. Chương trình Java (tiếp)
25
Biên dịch và thông dịch chương
trình Java
26
4. Chương trình Java (tiếp)
class Chao2
{
public static void main(String args[])
{
System.out.print("Chao " + args[0]);
}
}
28
Thực hiện chương trình
29
5. Cấu trúc điều khiển
• Rẽ nhánh:
if (<điều kiện>)
<Công việc 1>;
[else
<Công việc 2>;]
• Nếu <điều kiện> đúng thì thực hiện <Công việc
1>, ngược lại thực hiện <Công việc 2> (nếu có).
30
5. Cấu trúc điều khiển (tiếp)
• Lựa chọn:
switch (<biểu thức>)
{
case gt1: CV1;
case gt2: CV2;
…
case gtn: CVn;
default: CVn+1;
}
• Nếu giá trị <biểu thức> trùng với giá trị (gt) nào thì thực
hiện các công việc (CV) từ đó đến hết khối.
• Để dừng khi thực hiện 1 CV thì dùng lệnh break;
31
Ví dụ
• Chương trình đọc số từ 0..9 thành chữ. Số đưa vào từ dòng lệnh.
class DocSo{
public static void main(String args[]){
byte so = Byte.parseByte(args[0]);
switch (so)
{
case 0: System.out.println(“Khong”);break;
…
case 9: System.out.println(“Chin”);break
}
}
}
32
5. Cấu trúc điều khiển (tiếp)
• Lặp for:
for (<lệnh 1>;<điều kiện>;<lệnh 2>)
<Công việc lặp>;
• Thực hiện <lệnh 1>
• Nếu <điều kiện> đúng thì thực hiện <Công việc
lặp>
• Thực hiện <lệnh 2>
• Quay lại kiểm tra <điều kiện>
• Lặp đến khi <điều kiện> sai.
33
Ví dụ
• Chương trình tính tổng các số đưa vào từ tham số.
class TinhTong{
public static void main(String args[]){
int tong=0,i;
for(int i=0; i<args.length; i++)
tong+=Integer.parseInt(args[i]);
System.out.println(“Tong = ”+tong);
}
}
Thực hiện: java TinhTong 1 3 4 5 2
34
5. Cấu trúc điều khiển (tiếp)
• Lặp while:
while(<điều kiện>)
<Công việc lặp>;
• Thực hiện <Công việc lặp> khi <điều kiện>
còn đúng.
• do .. while:
do{
<Công việc lặp>;
} while (<điều kiện>);
35
5. Cấu trúc điều khiển (tiếp)
• Lệnh break:
• Ra khỏi 1 cấu trúc chuyển đến lệnh ngay sau
cấu trúc đó.
• Lệnh continue:
• Quay lại đầu vòng lặp.
36
6. Mảng
40
6. Mảng (tiếp)
• Mảng 2 chiều:
• Là mảng của mảng 1 chiều.
• Khai báo:
• Kiểu biến[][];
• Cấp phát ô nhớ: biến=new kiểu[m][n];
• Khởi tạo: int m[][]={{1,2,3},{4,5,6}};
• Thao tác: biến[i][j]
41
Ví dụ
42
43
7. Nhập dữ liệu từ bàn phím
import java.io.*;
class Input
{
public static int inputInt()
{ String str=null;
DataInputStream stream = new
DataInputStream(System.in);
try{str = stream.readLine();
} catch(IOException e){}
return Integer.valueOf(str).intValue();
}
44
Nhập số thực
47
Bài thực hành số 1
48