... dụng.
5
Kin trỳc ca Java
ã
Java Platform
ã
Java Virtual Machine (Java VM)
ã
Java Application Programming Interface (Java API)
Hardware-Platform
Java VM
Java API
myProgram .java
Java Platform
Mã nguồn
... ni dung ng (web applet)
ã
Hin nay, Java c s dng phát triển nhiều
loại ứng dụng khác nhau: cơ sở dữ liệu, mạng,
Internet, viễn thông
1
Lập trìnhJavacơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, ... ca Java
ã
Java Development Kit JDK
ã
B cụng c phát triển Java (jdk) gồm
trình biên dịch, thông dịch, tr giỳp, son
ti liu v cỏc th vin chun
ã
Ngoi ra còn một số thư viện khác như
JSP, JavaMail,...
... );
postorder( node.rightNode );
System.out.print( node.data + " " );
}
}
1
Lập trìnhJavacơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
19
Sử dụng Stack
public ... System.out.println(names);
}
}
43
Giao tip Map
ã
Giao tip Map cung cp cỏc thao tỏc xử lý
trên các bảng ánh xạ (Bảng ánh xạ lưu các
phần tử theo khoá và không được có 2 khoỏ
trựng nhau).
ã
Mt s phng ... c;
Iterator it = c.iterator();
50
Ví dụ 1: TreeSet
// This program sorts a set of names
import java. util.*;
public class TreeSetTest1
{
public static void main(String[] args)
{
SortedSet...
... lastNode
(b)
5
new ListNode
7
1
Lập trìnhJavacơ bản
Cao Đức Thông Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
50
Ví dụ 1: TreeSet
// This program sorts a set of names
import java. util.*;
public class TreeSetTest1
{
public static void main(String[] args)
{
SortedSet names = new TreeSet();
names.add(new String("Minh Tuan"));
names.add(new String("Hai Nam"));
names.add(new String("Anh Ngoc"));
names.add(new String("Trung Kien"));
names.add(new String("Quynh Chi"));
names.add(new String("Thu Hang"));
System.out.println(names);
}
}
...
... ném ra. Chương trình
dừng lại ngay lập tức, toàn bộ phn
mó phớa sau s khụng c thc thi.
ã
Java h trợ cách thức để xử lý ngoại lệ
(exception handling) tuỳ theo nhu cầu
của chương trình.
30
Nộm ... methodeX()
Exception in thread "main" java. lang.NullPointerException
at MyArray.methodeX(MyArray .java: 14)
at MyArray.main(MyArray .java: 7)
Giải thích: Hệ thống đã tung ra một exception ... thì phải xử lý ngoại lệ này trong A()…Quá trình này gọi là lan truyền
ngoại lệ.
Nếu đến main() cũng không xử lý ngoại lệ được tung từ C() thì
chương trình sẽ phải dừng lại.
7
Kết quả thực thi...
...
(extends) từ một lớp.
1
Lập trìnhJavacơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn
23
Ví dụ về kế thừa trong Java
// File InheritanceTest .java
public class InheritanceTest
{
... Time .java. Nú cha
cỏc nh ngha v thi gian.
ã
Lp TimeTest nm trong file TimeTest .java.
Nó dùng để kiểm tra lớp Time. Lp TimeTest
cha hm main.
ã Khi chy ch cn gừ:
ã
javac TimeTest .java
ã
java ... 36
Java vs C++
8. Java không có con trỏ.
9. Java không có huỷ tử (destructor), nó chỉ có phương
thức finalize() được gọi bởi Garbage Collector.
10. Java không hỗ trợ đối số mặc định.
11. Java...
... (overloading)
ã
Mi phng thc phi cú mt phm vi
nht định
35
Java vs C++
1. Một chương trìnhJava chạy chậm hơn so với một
chương trình C tương ứng khoảng 20 lần.
2. Java không có kiểu liệt kê (enum), kiểu cấu ... 36
Java vs C++
8. Java không có con trỏ.
9. Java không có huỷ tử (destructor), nó chỉ có phương
thức finalize() được gọi bởi Garbage Collector.
10. Java không hỗ trợ đối số mặc định.
11. Java ... (Unicode).
5. Biểu thức logic trong Java chỉ nhận giá trị boolean.
6. Trong Java, mọi biến không thuộc kiểu nguyên thuỷ
đều phải tạo ra bằng từ khoá new.
7. Java không có tiền xử lý (preprocessor)
...
... "main" java. lang.ArithmeticException: / by zero
at MyDivision.C(MyDivision .java: 14)
at MyDivision.B(MyDivision .java: 11)
at MyDivision.A(MyDivision .java: 8)
at MyDivision.main(MyDivision .java: 4)
Giải ...
ném ra. Chương trình dừng lại ngay lập tức,
toàn bộ phn mó phớa sau s khụng c
thc thi.
ã
Java h trợ cách thức để xử lý ngoại lệ
(exception handling) tuỳ theo nhu cầu của
chương trình.
21
Hai ... 4
Xử lý lỗi và ngoại lệ
⇒
Mã lệnh và mã xử lý lỗi nằm xen kẽ khiến
lập trình viên khó theo dõi được thuật toán
chính của chương trình.
⇒
Khi một lỗi xảy ra tại hàm A, tất cả các lời
gọi hàm lồng...
... System.out.println(tong);
5
Kin trỳc ca Java
ã
Java Platform
ã
Java Virtual Machine (Java VM)
ã
Java Application Programming Interface (Java API)
Hardware-Platform
Java VM
Java API
myProgram .java
Java Platform
Mã nguồn
... …
}
Hello .java
Biên dịch
Thông dịch
Hello.class
(bytecode)
javac Hello .java
java Hello
01001011
6
Kin trỳc ca Java
ã
Java Development Kit JDK
ã B cụng cụ phát triển Java (jdk) gồm
trình ... “Chao\tmung\nban\nden\tvoi\nlap trinh
Java\ n" );
}
}
Chao mung
ban
den voi
lap trinh Java
10
Mt chng trỡnh Java c bn
ã
Biờn dch chng trỡnh
ã Vo ch Console ca Windows
ã
Gừ cõu lnh javac Hello .java
ã
Nu khụng...
... trong Java chỉ nhận giá trị boolean.
6. Trong Java, mọi biến không thuộc kiểu nguyên thuỷ đều
phải tạo ra bằng từ khoá new.
7. Java không có tiền xử lý (preprocessor)
1
Lập trìnhJavacơ bản
Cao ... file TimeTest .java.
Nó dùng để kiểm tra lớp Time. Lớp TimeTest
cha hm main.
ã
Khi chy ch cn gừ:
ã
javac TimeTest .java
ã
java TimeTest
ã
Java sẽ tự động tìm và dịch file Time .java
26
a hỡnh ... && second < 60 ) ? second : 0 );
}
13
ã
javac TimeTest .java
ã
java TimeTest
Chy TimeTest
36
Java vs C++
8. Java không có con trỏ.
9. Java không có huỷ tử (destructor), nó chỉ có phương...
...
UDP một cách dễ dàng, về lậptrình web phía máy khách javacó công nghệ java
applet, về lậptrình web phía máy khách javacó công nghệ servlet/JSP, về lập
trình phân tán javacó công nghệ RMI, ... lại.
V. Chương trìnhJAVA đầu tiên
Để có thể biên dịch và chạy các chương trìnhjava ta phi ci
ã JRE (Java Runtime Enviroment) mụi trường thực thi của java, nó bao gồm:
JVM (Java Virtual Machine) ... chương trìnhjava sang mã byte code ta dùng lệnh
C:\JDK1.4\BIN\javac TênTệp .java
- Để thông dịch và chạy chương trình ta sử dụng lệnh
C:\JDK1.4\BIN \java TênTệp
Để biên dịch và chạy chương trình...
... tham chiu, khụng thụng
qua kiu khai bỏo ca tham chiu.
ã Trong Java, các phương thức luôn mang
tính đa hình.
26
LậptrìnhJavacơ bản
Cao Đức Thông - Trần Minh Tuấn
cdthonq@ifi.edu.vn, tmtuan@ifi.edu.vn
... import Transport.*;
Ví dụ 3: import java. awt.Point;
Point p = new Point(l,2);
ã s dng package - cách 2: sử dụng trực tiếp
java. awt.Point p = new java. awt.Point(l,2);
javax.swing JOptionPane.showMessageDialog( ... Các phương pháp lập trình
Procedural Programming
Thiết kế top-down.
Chương trình c chia
thnh cỏc hm, th tc.
ã Pascal, c
Hn ch: dùng dữ liệu...
... trỏi trờn n
gúc phi di ca mn hỡnh
ã Hm thiết lập
setLayout(new FlowLayout())
setLayout(new FlowLayout(
FlowLayout.RIGHT))
20/25
Quản lý cách trình bày
Cỏc lp thớch nghi (Event Adapters)
ã ... dựng tng tỏc GUI
ã Thụng tin về sự kiện được chứa trong các đối tượng
thừa kế từ lớp java. awt.event hoặc or
javax.swing.event
Event (sự kiện): l tng tỏc ca ngi dựng
ã Vớ d: di chuyn chuột, nhấn ... BorderLayout())
ã Thờm thành phần vào layout
add(b1,BorderLayout.NORTH);
21/25
Quản lý cách trình bày
Bảng sau đây chỉ ra các sự kiện khác nhau và
mô tả về chúng
33/25
Xử lý sự kiện
Danh sách...