... );
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 ... theo kiểu LIFO (Last
In First Out), phần tử vào sau cùng sẽ
được lấy ra trước.
•
Hai thao tác cơbản trên Stack
•
Chèn phần tử: Luôn chèn vào đỉnh Stack
(push)
•
Lấy ra phần tử: Luôn lấy ra ... System.out.println(names);
}
}
43
Giao tiếp Map
•
Giao tiếp Map cung cấp 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).
•
Một số phương...
... " );
}
}
}
Hãy cho biết kết quả của chương trình trên?
Bài tập 10
class WhileStruct
{
{
int n=10;
while(true){
if(n>0){
JAVA CƠ BẢN
Mã sinh viên:
Họ và tên:
Lớp học phần:
Ngày nộp ... today.get(Calendar.YEAR) - 1985;
System.out.println(tuoi);
}
}
Hãy cho biết kết quả của chương trình trên? Từ bài trên, hãy viết chương
trình cho nhập năm sinh và cho biết tuổi?
Bài tâp 4
class Demo
{
public static ... z);
System.out.println(x + " " + X);
}
}
2.1 Cho biết kết quả của chương trình trên? Liệt kê các biến trong
chương trình? Cho biết các biến có khai báo final có ý nghĩa gì?
Bài tập 5
class...
... 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);
}
}
31
Bài tập tại lớp
•
Bài 1: Dùng Stack để viết chương trình in ra
dạng nhị phân của một số nguyên dương cho
trước.
•
Bài 2: Cài đặt phương thức search trong lớp
Tree để tìm một phần tử có giá trị cho trước.
7
Cài đặt Linked List
// Dinh nghia mot node trong linked list ... nó có thể tung ra ngoại lệ
UnsupportedOperationException.
49
Mô tả các cài đặt
•
HashMap: Bảng băm (cài đặt của Map).
•
LinkedHashMap: Bảng băm kết hợp với linked list
nhằm đảm bảo thứ tự các phần tử (cài đặt của
Map).
•
TreeMap: Cây đỏ đen (cài đặt của Map).
17
Stack
•
Stack là một cấu trúc theo kiểu LIFO (Last In
First Out), phần tử vào sau cùng sẽ được lấy ra
trước.
•
Hai thao tác cơbản trên Stack
•
Chèn phần tử: Luôn chèn vào đỉnh Stack (push)
•
Lấy ra phần tử: Luôn lấy ra từ đỉnh Stack (pop)
11
Cài đặt Linked List
public boolean isEmpty()
{
return (firstNode == null);
}
public void print()
{
ListNode node = firstNode;
while (node != null)
{
... nó có thể tung ra ngoại lệ
UnsupportedOperationException.
49
Mô tả các cài đặt
•
HashMap: Bảng băm (cài đặt của Map).
•
LinkedHashMap: Bảng băm kết hợp với linked list
nhằm đảm bảo thứ tự các phần tử (cài đặt của
Map).
•
TreeMap: Cây đỏ đen (cài đặt của Map).
17
Stack
•
Stack là một cấu trúc theo kiểu LIFO (Last In
First Out), phần tử vào sau cùng sẽ được lấy ra
trước.
•
Hai thao tác cơbản trên Stack
•
Chèn phần tử: Luôn chèn vào đỉnh Stack (push)
•
Lấy ra phần tử: Luôn lấy ra từ đỉnh Stack (pop)
11
Cài đặt Linked List
public boolean isEmpty()
{
return (firstNode == null);
}
public void print()
{
ListNode node = firstNode;
while (node != null)
{
...
... ra. Chương trình
dừng lại ngay lập tức, toàn bộ phần
mã phía sau sẽ không được thực 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 ... nên sử dụng ngoại lệ thay cho các
luồng điều khiển trong chương trình.
• Ví dụ: Kiểm tra delta trong chương trình giải
phương trình bậc 2.
•
Nên thiết kế và sử dụng ngoại lệ một
cách thống ... người dùng nhập lại.
5
Xử lý lỗi và ngoại lệ
• Trong Java, việc xử lý lỗi có thể được cài đặt
trong một nhánh độc lập với nhánh chính của
chương trình.
• Lỗi được coi như những trường hợp ngoại...
...
(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
{
... nhật.
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 ... các thực thể
• Dễ phát triển, mở rộng
chương trình
Object A
Object C
Object B
Object D
3
Các phương pháp lập trình
•
Step-by-Step Programming
• Lậptrình từng bước
•
Machine Language, Assembly...
... dụng.
5
Kiến trúc của 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
3
Giới ... dung động (web applet)
•
Hiện nay, Java được sử dụng để 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, ... dụng Java
•
Hai loại ứng dụng Java
•
Application: Ứng dụng độc lập
•
Applet: Ứng dụng chạy trên Web
•
Thư viện lớp Java
•
Bộ JDK bao gồm rất nhiều lớp chuẩn đã
được xây dựng sẵn.
•
Lập trình...
... phương thức phải có một phạm vi
nhất đị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 ... nó.
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 ... OOP trong Java
•
Các phương pháp lập trình
•
Giới thiệu về OOP
•
Kế thừa (Inheritance)
•
Đa hình (Polymorphism)
•
Giao tiếp (Interface)
•
Lớp trừu tượng (Abstract)
• Gói (Packages)
•
Java vs C++
•
Bài...
... Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trìnhLậptrình căn bản – dành cho hệ TCCN Trang 20
không thể dùng lệnh gán (=) như các kiểu dữ liệu cơ sở. Đoạn chương trình sau minh hoạ việc
khai báo, ... trình
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trìnhLậptrình căn bản – dành cho hệ TCCN Trang 26
Chương 4
Các lệnh và hàm cơ bản
1. Lệnh rẽ nhánh
1.1. Lệnh If
o Một dòng lệnh:
If ... Gòn Khoa Công Nghệ Thông Tin
Giáo trìnhLậptrình căn bản – dành cho hệ TCCN Trang 4
3. Cài đặt Visual Basic
Sử dụng chương trình Setup để cài đặt VB6.
Chương trình Setup này còn cài đặt...
... "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 ... ra. Chương trình dừng lại ngay lập tức,
toàn bộ phần mã phía sau sẽ không được
thực 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 ... tập
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...
... c.getCircum());
• }
•
}
2
Bài 1. Tổng quan lậptrình Java
•
Giới thiệu ngôn ngữ Java
•
Kiến trúc của Java
•
Nội dung một chương trìnhJavacơ bản
•
Các kiểu dữ liệu cơbản & toán tử
•
Các cấu trúc ...
5
Kiến trúc của 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
27
Ví ... “Chao\tmung\nban\nden\tvoi\nlap trinh
Java\ n" );
}
}
Chao mung
ban
den voi
lap trinh Java
10
Một chương trìnhJavacơ bản
•
Biên dịch chương trình
• Vào chế độ Console của Windows
•
Gõ câu lệnh javac Hello .java
•
Nếu...
... 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
chứa hàm main.
•
Khi chạy chỉ cần 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
Chạy 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, ...
V. Chương trìnhJAVA đầu tiên
Để có thể biên dịch và chạy các chương trìnhjava ta phải cài
• JRE (Java Runtime Enviroment) môi trường thực thi của java, nó bao gồm:
JVM (Java Virtual ... 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...
... mới của Java2
2.1 Giới thiệu Java
Java là một ngôn ngữ lậptrình ñược Sun Microsystems giới thiệu vào tháng 6
năm 1995. Từ ñó, nó ñã trở thành một công cụ lậptrình của các lậptrình viên ... Nhận biết các cấu trúc lậptrìnhcơbản
3.1 Cấu trúc một chương trìnhJava
Phần ñầu của một chương trìnhJava xác ñịnh thông tin môi trường. ðể làm ñược
việc này, chương trình ñược chia thành ... (Java
Development Kit)
Sun Microsystem ñưa ra ngôn ngữ lậptrìnhJava qua sản phẩm có tên là Java
Development Kit (JDK). Ba phiên bản chính là:
Java 1.0 - Sử dụng lần ñầu vào năm 1995
Java...